WordPress インストールメモ(CentOS)

Linux
Linuxクラウド
スポンサーリンク

WordPress(ワードプレス)は、無料で使えるブログソフトウェアです。サイトをデザインするテンプレートや、色々な機能を追加するプラグインが豊富なことが特徴で、簡単にブログサイトを作ることが出来ます。また、単なるブログだけではなく、企業サイトやニュースサイトでも WordPress が使われているのを、よく見かけるようになりました。「全世界のサイトの4分の1はWordPressで作られている」とも言われているようです。そこで今回は、CentOS に WordPress をインストールする手順をメモしておきました。

WordPress 日本語版の推奨動作環境

WordPress 日本語版の推奨動作環境は以下の通りです。(2016年9月7日時点)

  • PHP バージョン 5.6 以上
  • MySQL バージョン 5.6 以上 または MariaDB バージョン 10.0 以上

WordPress は、人気があるがゆえにサイバー攻撃の標的にされることも多いです。セキュリティ対策のためにも、推奨動作環境にインストールすることをオススメします。WordPress の公式サイトでも注意を呼びかけています。

古い PHP や MySQL しか利用できないレガシーな環境でも、PHP 5.2.4 以上、かつ MySQL 5.0 以上であれば WordPress は動作しますが、公式サポートは終了しており、サイトがセキュリティの脆弱性にさらされる危険があります。

https://ja.wordpress.org/ より引用

CentOSにLAMP環境をインストール

まず初めに CentOSに、Apache、MySQL、PHP をインストールしておきます。(いわゆるLAMP環境です)下の記事はCentOSにLAMP環境をインストールした時のメモです。よければご参照ください(WordPressの推奨動作環境に対応しています)

ドメイン名 と ドキュメントルート

今回インストールする WordPress のドメイン名とドキュメントルートは、以下で設定しています。ご自分の環境に合わせて読み替えてください。

  • ドメイン名:blog.example.com
  • ドキュメントルート:/var/www/blog/

WordPress のダウンロードと配置

概要

WordPress は、PHPで作られていますので、WEBサーバーのドキュメントルート以下に配置するだけで動作します。今回はドキュメントルート直下に配置していますが、サブディレクトリに配置して http://www.example.com/blog/ のようにすることも可能です。

また、WordPress の管理画面から、テーマやプラグインを編集したり、画像をアップロードしたりしますので、WEBサーバーの実行ユーザーが、配置した WordPress のディレクトリやファイルに、書き込みできることが必要です。

ダウンロードと配置

最新の WordPress 日本語版をダウンロードします。(下記のURLで常に最新版をダウンロードできます)

wget https://ja.wordpress.org/latest-ja.tar.gz

解凍します。

tar xvzf latest-ja.tar.gz

解凍すると「wordpress」というディレクトリができますので、ディレクトリ名を変更し、ドキュメントルートとなる場所へ移動します。

mv -i wordpress blog
sudo mv -i blog /var/www/

ドキュメントルート以下のオーナーを、WEBサーバーの実行ユーザーに変更します。CentOSでApacheをパッケージからインストールしている場合は「apache」が実行ユーザーです。

sudo chown -R apache /var/www/blog

以上で WordPress の配置は完了です。

MySQL データベースとユーザーの作成

MySQLに WordPress 用のデータベースとユーザーを作成します。

MySQLサーバーに接続します。

mysql -u root -p
Enter password: <MySQLのrootユーザーのパスワードを入力>

データベースを作成します。下の場合「wordpress」がデータベース名になります。データベース名はなんでも構いませんが、使えない文字もありますので、英数小文字のみで作成することをオススメします。

CREATE DATABASE wordpress;

MySQLのユーザーを作成します。こちらも「wordpress」がユーザー名になりますが、なんでも構いません。ここで設定するパスワードは日常的に入力するものではありません。思い切って複雑なパスワードを設定しましょう。

GRANT ALL ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY '<パスワード>';

MySQLとの接続を終了します。

exit

続いて、ここで作成したデータベースとユーザーの名前と、設定したパスワードを WordPress の設定ファイルに入力します。

WordPress の設定ファイルの編集

設定ファイルのサンプル(wp-config-sample.php)の名前を変更して、そのまま設定ファイル(wp-config.php)として利用します。

cd /var/www/blog/
sudo mv -i wp-config-sample.php wp-config.php

・設定ファイルを編集します。
sudo vi wp-config.php

define('DB_NAME', 'database_name_here');
 ↓
define('DB_NAME', 'wordpress');
 
define('DB_USER', 'username_here');
 ↓
define('DB_USER', 'wordpress');
 
define('DB_PASSWORD', 'password_here');
 ↓
define('DB_PASSWORD', '<パスワード>');

・認証用ユニークキーの設定
WordPress.org の秘密鍵サービス https://api.wordpress.org/secret-key/1.1/salt/ にアクセスし、表示されたユニークキーを WordPress の設定ファイルにコピペします。

sudo vi wp-config.php

define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
 ↓
https://api.wordpress.org/secret-key/1.1/salt/ で表示されたユニークキーををコピペ

設定ファイルに、MySQLのパスワードを入力していますので、WEBサーバーの実行ユーザー以外は読取りできないようにしておきます。

sudo chmod 600 wp-config.php

以上で、WordPress の設定ファイルの編集は終了です。

Apache httpd バーチャルホストの設定

他のWEBサイトと同居するため、今回はバーチャルホストを設定しました。Apache httpd バージョン2.2 と 2.4 で少しだけ設定方法が異なります

httpd 2.2 の場合

sudo vi /etc/httpd/conf/httpd.conf

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName blog.example.com
    DocumentRoot "/var/www/blog"

    <Directory "/var/www/blog">
        Options FollowSymLinks
        AllowOverride All
    </Directory>

    SetEnvIf    Request_URI "\.(gif|jpg|png|css|js)$" nolog
    ErrorLog    logs/blog.example.com_error_log
    CustomLog    logs/blog.example.com_access_log combined env=!nolog
</VirtualHost>

httpd 2.4 の場合

バージョン2.4の場合は「NameVirtualHost *:80」は不要です。また、アクセス制限の記述「Require all granted」が無い場合は全ての接続が拒否されてしまいます。

sudo vi /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
    ServerName blog.example.com
    DocumentRoot "/var/www/blog"

    <Directory "/var/www/blog">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
	
	SetEnvIf    Request_URI "\.(gif|jpg|png|css|js)$" nolog
    ErrorLog    logs/blog.example.com_error_log
    CustomLog   logs/blog.example.com_access_log combined env=!nolog
</VirtualHost>

httpd の再起動

バーチャルホストの設定が終わったら、httpd を再起動します。

CentOS6の場合

sudo service httpd restart

CentOS7の場合

sudo systemctl restart httpd

WordPress の初期設定

WEBブラウザで http://blog.example.com/ (URLはご自分の環境に読み替えてください)を開くと、WordPress の初期設定画面が表示されます。各項目を入力して「WordPress をインストール」をクリックしてください。(ユーザー名は「admin」や「root」など、推測しやすいユーザー名は避けた方が良いでしょう)

「成功しました !」の画面が表示されれば、WordPress の初期設定終了です。「ログイン」をクリックします。

初期設定画面で入力した、ユーザー名とパスワードでログインします。

[ダッシュボード]→[更新] をクリックして、更新できるプラグインやテーマなどをすべて更新します。

続いて、最低限必要なプラグインを有効化します。

プラグインの有効化

[プラグイン]→[インストール済プラグイン] をクリックします。

WP Multibyte Patch は必須

「WP Multibyte Patch」の「有効化」をクリックします。日本語のサイトの場合このプラグインは必須です。

Akismet について

WordPress で運営しているサイトには、かなりのコメントスパムやトラックバックスパムが投稿されますので、コメント欄を使う場合は、Akismetプラグインも有効にすることをオススメします。このブログの場合、20,000件以上ものスパムがあったようですが、ほぼブロックしてくれています。

説明にもありますが、Akismetプラグインを有効にするには、ユーザー登録(無料)が必要です。私は2年ほどAkismetプラグインを使っていますが、トラブルも無く安心して使えるプラグインだと思います。

Hello Dolly について

謎のプラグイン(笑)とされてきましたが、どうも WordPress プラグインの書き方を学ぶためのサンプルのようです。

プラグインの書き方の基本について学ぶには、上手に書かれたプラグインの PHP ソースコードを眺めると良いでしょう。例えば、Hello Dolly のように WordPress に同梱されているプラグインがその一例です。

プラグインの作成 - WordPress Codex 日本語版 より引用

ジャズミュージシャン Louis Armstrong(ルイ・アームストロング)のファンの方には申し訳ないのですが、必要がなければ削除しても構わないと思います。私はなにか深い意味があるような気がして削除していませんでした(^^;)

終わりに(WordPressのセキュリティ対策について)

記事の中でも書きましたが、WordPress は多くのWEBサイトで使われているため、サイバー攻撃の標的とされる可能性が高いと言われています。WordPress に限りませんが、今や安全なWEBサイトを運営するためには、セキュリティ対策が必要になります。次回は WordPress のセキュリティ対策について調べてみたいと思います。 

コメント

タイトルとURLをコピーしました