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

無事ファイルがダウンロードできました。

wp41

次にファイルを解凍します。

$ tar xzf latest-ja.tar.gz

wordpressディレクトリが作成されましたね。
ストレージ容量があんまりないのでアーカイブは削除しておきましょう。

PHPインストール

次にPHPをインストールします。
WordPressはPHPで動いているので、これがないとうんともすんともです。

$ yum -y install php

Complete!
が表示されればOKです。

php install complete!!

次に「PHP-FPM」をインストールします。
今回はnginxも入れる予定なので必須となります。
FastCGI Process Manager と呼ばれるPHP標準のアプリケーションサーバで、名前にもあるFastCGIと呼ばれるプロトコルでnginxとやりとりします。

これもyumでインストール可能です。

$ yum -y install php-fpm

Complete!
が表示されればOKです。

nginxインストール

デフォルトのyumリポジトリだと、最新版のnginxがインストールできません。
確認してみましょう。

$ yum list | grep nginx
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
yumの再確認

表示内容は増えましたが、バージョンが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リスト、3度目の正直

再度yumリストを表示してみると…
最新版の1.15.8が表示されました!やったぜ!!

nginxをインストールします。

$ yum install nginx -y

無事インストールが完了しました。
Complete!

nginxインストール完了

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/ にファイルを置くことでブラウザから表示できるようになりました。

はじめてのphp

WordPressの設定

どうやらこの企画も定軍山を迎えたようだ…
最後にWordPressの設定を行います。

まずはAlibaba Cloudの管理コンソール上からWordPress用のデータベースを作成します。
適当にDB名を決めてアカウントを作ってあげます。

WordPressDB作成

作成したら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」を表示をすると初期設定画面が表示されます。

ようこそWordPressへ!!

無事表示されました。
お疲れ様でした。

全4回にわけて構築してきたWordpressですが、いかがだったでしょうか?
次回は今回作ったWordpressにドメインを付け、SSLの設定を行います。

ではまた相見える時まで。

アディオス・アミーゴ!