CentOS7でNginx・MariaDB・PHP7(LEMP環境)によるWordPressの構築

今回は、CentOS 7でNginx・MariaDB・PHP7を用いた環境(LEMP環境)でのWordPressの構築を実施する。
まず、対象のサーバにLEMP環境が導入されていることが前提となるのだが、それについては下の内容を参照してもらいたい。

CentOS7でNginx・MariaDB・PHP7(LEMP環境)を導入する

1.Nginxの設定変更

まず、NginxでVirtualHostの設定を行う。
今回の場合、テストとしてローカルネットワーク内で構築をするため、以下のような設定となる。

  • server_name : bs-pub-wordpress-01.blacknon.local
  • listen : 80
  • Document root : /usr/share/nginx/wordpress
  • access_log : /var/log/nginx/wordpress/access.log
  • error_log : /var/log/nginx/wordpress/error.log

● /etc/nginx/conf.d/wordpress.conf

server {
    listen 80;
    server_name bs-pub-wordpress-01.blacknon.local;

    access_log /var/log/nginx/wordpress/access.log;
    error_log /var/log/nginx/wordpress/error.log;

    location / {
        root /usr/share/nginx/wordpress;
        index index.php index.html index.htm;

        if (-f $request_filename) {
            expires 30d;
            break;
            }

        if (!-e $request_filename) {
            rewrite ^(.+)$ /index.php?q=$1 last;
            }
        }

    location ~ .php$ {
        fastcgi_pass   localhost:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   /usr/share/nginx/wordpress/$fastcgi_script_name;
        fastcgi_param  PATH_INFO         $fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
        }
}

次に、先ほどの設定ファイルで指定したDocumentRootとログの出力ディレクトリについて作成する。

mkdir /usr/share/nginx/wordpress
mkdir /var/log/nginx/wordpress/
chown -R nginx:nginx /usr/share/nginx/wordpress/

Nginxの設定ファイルについてテストを行う。
問題がなければ下のような出力がされる。

nginx -t
[root@BS-PUB-WORDPRESS-01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

問題がなかったら、以下のコマンドでサービスの再起動を実施する。

systemctl restart nginx.service
systemctl restart php-fpm.service

2.MariaDBでのデータベース作成

次に、MariaDBでWordPress用のデータベースを作成する。
以下のコマンドを実行する。

mysql -u root -p <<EOF
CREATE DATABASE wordpress;
CREATE USER 'ユーザ名'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON wordpress.* TO 'ユーザ名'@'localhost';
EOF
[root@BS-PUB-WORDPRESS-01 ~]# mysql -u root -p < CREATE DATABASE wordpress;
> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'wordpress';
> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
> EOF
Enter password:

3.WordPressのインストール・初期設定

Nginxなどの設定が完了したら、WordPressのインストール、初期設定を行う。
まず、以下のコマンドでカレントディレクトリにWordPressのアーカイブファイルを取得して展開する。

wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz

展開後、以下のコマンドを実行してDocument Rootにファイルを移動する。

mv wordpress/* /usr/share/nginx/wordpress/
rmdir wordpress

wp-config.phpのサンプルファイルをコピーして設定ファイルを作成する。

cp /usr/share/nginx/wordpress/wp-config{-sample,}.php

コピーして作成したwp-config.phpファイルで、以下の項目を編集する。

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpress');

/** MySQL database password */
define('DB_PASSWORD', 'wordpress');

/** MySQL hostname */
define('DB_HOST', 'localhost');

設定ファイル編集後、DocumentRoot配下の所有者をnginxに変更する。

chown -R nginx:nginx /usr/share/nginx/wordpress

最後に、ブラウザからWordPressにアクセスする。
なお、このとき普通に「http://サーバ名」のみだと、なぜか「http://サーバ名/index.php/wp-admin/install.php」というリダイレクトがされてしまう。
なので、「http://サーバ名/wp-admin/install.php」を直接指定してやるといいだろう。

インストール画面が表示されたら、日本語を選択して「続ける」。

作成するブログの情報を記録して「WordPressをインストール」をクリックする。

インストールが完了したら、あとは先ほど設定したID/PWでログインするだけだ。

以上でインストールは完了。