Alibaba Cloud で CentOS7 + nginx + WordPress を動かそう、その④ ~WordPress起動!!~
長かった連載企画も今回で最終回、今回は盛りだくさんでいきますよ。
ということで GOD EATER3買ったけど一緒にやる人いなくて積みゲー化してしまった ネクストスケープ太田 (@jutao0510) です。
WordPressのダウンロード
まずはECSにログインします、VNCでもPutty等のTerminalアプリでもOKです。
WordPressの最新版をダウンロードします。
場所はとりあえず、rootのhomeディレクトリにしておきます。
$ wget https://ja.wordpress.org/latest-ja.tar.gz
無事ファイルがダウンロードできました。

次にファイルを解凍します。
$ tar xzf latest-ja.tar.gz
wordpressディレクトリが作成されましたね。
ストレージ容量があんまりないのでアーカイブは削除しておきましょう。
PHPインストール
次にPHPをインストールします。
WordPressはPHPで動いているので、これがないとうんともすんともです。
$ yum -y install php
Complete!
が表示されればOKです。

次に「PHP-FPM」をインストールします。
今回はnginxも入れる予定なので必須となります。
FastCGI Process Manager と呼ばれるPHP標準のアプリケーションサーバで、名前にもあるFastCGIと呼ばれるプロトコルでnginxとやりとりします。
これもyumでインストール可能です。
$ yum -y install php-fpm
Complete!
が表示されればOKです。
nginxインストール
デフォルトのyumリポジトリだと、最新版のnginxがインストールできません。
確認してみましょう。
$ yum list | grep nginx

現在(2019年2月12日)のnginxの最新版は1.15なのですがyumでインストールできるのは1.12のようです。
1.12で困るわけでは無いのですが、どうせなら最新版って事でリポジトリの設定を行います。
/etc/yum.repos.d にリポジトリ情報が格納されているので、ここに新しいリポジトリを追加します。
$ vi /etc/yum.repos.d/nginx.repo
エディタが表示されましたね。
ファイルには以下の情報を書き込みます。
$ [nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
リポジトリ情報を追加したら、再度確認してみます。
$ yum list | grep nginx

表示内容は増えましたが、バージョンが1.14ですね。
今回は1.15をインストールしたいので、まだ何かが足りないです。
原因はリポジトリ情報のキャッシュのようです。
なのでキャッシュを削除します。
$ rm -rf /var/lib/rpm/__db.00?
$ rpm --rebuilddb
$ rm -rf /var/cache/yum/x86_64/7/
$ yum clean all
なんかキレイになったよ!的なメッセージが表示されます。
$Loaded plugins: fastestmirror
Cleaning repos: base epel extras nginx updates
再度yumのリストを表示してみましょう。
$ yum list | grep nginx

再度yumリストを表示してみると…
最新版の1.15.8が表示されました!やったぜ!!
nginxをインストールします。
$ yum install nginx -y
無事インストールが完了しました。
Complete!

PHP-FPMの設定
次にPHP-FPMの設定をデフォルトのApache向けからnginx向けのものに変更します。
設定ファイルを修正します。
$ vi /etc/php-fpm.d/www.conf
user と group が「apache」になっているので、これを「nginx」に変更してあげます。
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
↓
; ; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
次にPHP-FPMからmysqlに接続するための拡張機能をインストールします。
$ yum -y install php-mysql
インストール完了後、PHP-FPMを再起動します。
$ systemctl restart php-fpm
nginxの設定
では次にnginxの設定ファイルをWordPress用に書き換えていきましょう。
$ vi /etc/nginx/conf.d/default.conf
設定ファイルのlocationのindexにindex.phpを追加します。
これでファイルを省略した際にindex.phpがあれば読み込まれます。
location ~ .php$ ブロックのコメントアウトをはずします。
rootをlocationのrootとあわせて、fastcgi_paramのパスを$document_root$fastcgi_script_name;に変更します。
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
nginxで一度にPOSTできるサイズを10MBに増やしてあげます。
これをしないとWordPressで色々やる時にサイズオーバーで怒られます。
client_max_body_size 10M;
終わったらnginxを起動します。
$ systemctl restart nginx
設定した、 /usr/share/nginx/html/ にファイルを置くことでブラウザから表示できるようになりました。

WordPressの設定
どうやらこの企画も定軍山を迎えたようだ…
最後にWordPressの設定を行います。
まずはAlibaba Cloudの管理コンソール上からWordPress用のデータベースを作成します。
適当にDB名を決めてアカウントを作ってあげます。

作成したらTerminalアプリに戻ります。
WordPressのディレクトリ内に設定ファイルのサンプルがあるので、コピーして編集します。
$ cp wordpress/wp-config-sample.php wordpress/wp-config.php
$ vi wordpress/wp-config.php
以下のように修正します。
define('DB_NAME', 'RDSで作ったデータベース名');
define('DB_USER', RDS作ったユーザ名);
define('DB_PASSWORD', '設定したパスワード');
define('FS_METHOD','direct');
AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALTにはランダムな文字列を設定します。
自分で考えるのが面倒、という人は以下のサイトで生成されたものを使ってください。
https://api.wordpress.org/secret-key/1.1/salt/
設定ファイルの修正が完了したら、最初に展開したWordPressディレクトリをnginx配下に配置します。
$ mv wordpress /usr/share/nginx/html/
WordPressのWEB管理画面から修正できるようにコンテンツが入っているディレクトリのパーミッションを変更します。
$ chmod -R 757 /usr/share/nginx/html/wordpress/wp-content
ブラウザで「http://IPアドレス/wordpress/wp-config.php」を表示をすると初期設定画面が表示されます。

無事表示されました。
お疲れ様でした。
全4回にわけて構築してきたWordpressですが、いかがだったでしょうか?
次回は今回作ったWordpressにドメインを付け、SSLの設定を行います。
ではまた相見える時まで。
アディオス・アミーゴ!