こんにちは(○´∀`○)田です。
前回の突撃!となりのエンジニアでは、GMOクラウドの開発エンジニアである宮島さんに、Nginx(エンジンエックス)とは何か分かりやすく教えていただきました。
前回は触れることができなかったのですが、Nginxを使ったWordPressの高速化も注目されているようです。
せっかくですので、今回は宮島さんがWeb上に上がっている情報を参考にしながら、Nginxのインストール方法からWordPressのインストール・簡単な初期設定まで紹介していきます。
>前回記事:Nginxとは?Apacheとの違いについてエンジニアに聞いてみた
Ⅰ.Nginxのインストール
rootでサーバーにログイン後、まずは、NginxのサイトからyumコマンドでNginxをインストールできるように設定自体をインストールします。
rpmパッケージを以下のようにyumコマンドでインストールしておきましょう。
【出力内容】ーーーーーーーーーーーーーーーーーー
Loaded plugins: fastestmirror
nginx-release-centos-7-0.el7.ngx.noarch.rpm | 4.6 kB 00:00:00
Examining /var/tmp/yum-root-oHB0O1/nginx-release-centos-7-0.el7.ngx.noarch.rpm: nginx-release-centos-7-0.el7.ngx.noarch
Marking /var/tmp/yum-root-oHB0O1/nginx-release-centos-7-0.el7.ngx.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package nginx-release-centos.noarch 0:7-0.el7.ngx will be installed
--> Finished Dependency Resolution
Dependencies Resolved
・
・
・
Installed:
nginx-release-centos.noarch 0:7-0.el7.ngx
Complete!
続けて、下記のコマンドで実際にNginxをインストールします。
【出力内容】ーーーーーーーーーーーーーーーーーー
Loaded plugins: fastestmirror
nginx | 2.9 kB 00:00:00
nginx/x86_64/primary_db | 14 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.10.1-1.el7.ngx will be installed
--> Finished Dependency Resolution
Dependencies Resolved
・
・
・
Installed:
nginx.x86_64 1:1.10.1-1.el7.ngx
Complete!
無事インストールが完了したら、Nginxを起動させましょう。
また、下記コマンドを使えば、OS側にハードウェアの起動時に同時に起動させるサービスとして登録させることもできますので、設定しておいても良いと思います。
Nginxの起動が完了したら、ブラウザーからアクセスできる状態になるので、IPアドレスをたたいてみるとこのような画面が確認できます。このページは、Nginxの初期設定ページですね。
Nginxが使えるようになるまで、たったの3コマンドで完了しますので、何も難しいことはないですね。
Ⅱ.WordPressのインストール
まず初めにWordPressのインストールをしていきたいところですが、WordPressを動かすには、phpが必要です。
前回も少し触れましたが、Nginxにはphpの処理機能がついていないので、nginxでphpを動かせるようにするためにwp以外に必要なソフトウェアもインストールしておきましょう。
・php
・php-fpm(fastCGI)
・mariaDB(データベース)
・WordPress本体
まずは、以下の通りphpをインストールしていきます。ここでは、必要そうなモジュールも同時に指定しています。
【出力内容】ーーーーーーーーーーーーーーーーーー
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
No package php-mcrypt available.
Resolving Dependencies
・
・
・
Installed:
php.x86_64 0:5.4.16-36.1.el7_2.1 php-fpm.x86_64 0:5.4.16-36.1.el7_2.1
php-mbstring.x86_64 0:5.4.16-36.1.el7_2.1 php-mysql.x86_64 0:5.4.16-36.1.el7_2.1
php-pear.noarch 1:1.9.4-21.el7
Dependency Installed:
apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7
httpd.x86_64 0:2.4.6-40.el7.centos.1 httpd-tools.x86_64 0:2.4.6-40.el7.centos.1
libxslt.x86_64 0:1.1.28-5.el7 libzip.x86_64 0:0.10.1-8.el7
mailcap.noarch 0:2.1.41-2.el7 php-cli.x86_64 0:5.4.16-36.1.el7_2.1
php-common.x86_64 0:5.4.16-36.1.el7_2.1 php-pdo.x86_64 0:5.4.16-36.1.el7_2.1
php-process.x86_64 0:5.4.16-36.1.el7_2.1 php-xml.x86_64 0:5.4.16-36.1.el7_2.1
Complete!
WordPressを利用するためには、データベースも必須となりますので、続けてデータベースもインストールしていきます。
【出力内容】ーーーーーーーーーーーーーーーーーー
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
・
・
・
Installed:
mariadb.x86_64 1:5.5.47-1.el7_2 mariadb-server.x86_64 1:5.5.47-1.el7_2
Dependency Installed:
libaio.x86_64 0:0.3.109-13.el7 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBD-MySQL.x86_64 0:4.023-5.el7
perl-DBI.x86_64 0:1.627-4.el7 perl-IO-Compress.noarch 0:2.061-2.el7
perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7
Complete!
データベースをインストールしたら、続けて設定をしていきます。
まずは、いったんデータベースサーバーを起動してインストールが正しく行われたか確認します。
正常に起動した場合はありません。 もし、なにか出るようであれば、ログファイルなどを見て何が悪いのかを確認する作業となります
次に、mariaDBの設定をします。mariaDBはmysql互換のデータベースソフトウェアで、CentOS7から mysqlに変わり標準のデータベース・サーバーソフトウェアになりました。互換があるので、 インストールされるコマンドもmysqlのものと同じになっています。
【出力内容】ーーーーーーーーーーーーーーーーーー
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
・
・
・
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
ここの出力内容には、一部設定の入力をするところがありますが。内容的にはパスワードの設定や初期データベースファイルの削除と言ったセキュリティー回りのものになっています。言葉で「必要な項目に答えます」みたいな内容でも、直接nginxやWordPressの話ではないので、入力しなくても大丈夫だと思います。
データベースで使用する文字コードの設定。
データベースで使用する文字コードをutf-8に設定します。
ここでは、設定を変更する前にいったん元のファイルはバックアップしていますが、必須ではありません。
コマンドは以下の通りです。
[root@nginx-dev ~]# cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.orig
## エディター起動。文字コードの設定を追加
[root@nginx-dev ~]# vim /etc/my.cnf.d/server.cnf
## データベースサーバーの再起動
[root@nginx-dev ~]# systemctl restart mariadb
次に、WordPressで使うデータベースの設定をします。WordPress用のユーザーと、領域(データベース)を作成します。
【出力内容】ーーーーーーーーーーーーーーーーーー
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.47-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
## wordpress01 という名前のデータベースを作成します。ピンク字は「作成するデータベース名」
MariaDB [(none)]> CREATE DATABASE wordpress01;
-----------
Query OK, 1 row affected (0.00 sec)
## wpdb_userユーザーを作成します。ピンク字は左から「作成したデータベース名」「データベースのユーザー名」「ユーザーのパスワード」
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress01.* TO "wpdb_user"@"localhost" IDENTIFIED BY "C0PESP8jd3hgHLP";Query OK, 0 rows affected (0.00 sec)
※上記のピンクの部分は任意に変更してください。
設定を反映させます。
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> \q
Bye
続けて、php-fpm(fastCGI)の設定を行います。大きな変更は無く、実行ユーザーがApache向けなので、そこをNginxユーザーに書き換える程度です。 また、Nginxの設定もfastCGIへの通信を行うように変更します。
コマンドは以下の通りです。
[root@nginx-dev ~]# cd /etc/nginx/conf.d
## nginxの設定を変更
[root@nginx-dev conf.d]# vim default.conf
## php-fpmの設定ファイル保存場所に移動
[root@nginx-dev conf.d]# cd /etc/php-fpm.d/
## 念のため、設定ファイルのコピーを作成
[root@nginx-dev php-fpm.d]# cp www.conf www.conf.orig
## 設定を編集し保存
[root@nginx-dev php-fpm.d]# vim www.conf
## php-fpmサービスを起動
[root@nginx-dev php-fpm.d]# systemctl start php-fpm
## nginxを再起動し設定ファイルを再度読み込を行う
[root@nginx-dev php-fpm.d]# systemctl restart nginx
さて、最後にWordPress本体のダウンロードを行います。
今回はインストールしたnginxのドキュメントルート(公開ファイルの置き場)に 一つディレクトリを作成しwordpressをインストールして、そこを新しいドキュメントルートとして公開してみました。
コマンドは以下の通りです。
[root@nginx-dev php-fpm.d]# cd /usr/share/nginx/html/
## WordPress用のディレクトリを作成
[root@nginx-dev html]# mkdir wp_contents
## 作成したディレクトリに移動
[root@nginx-dev html]# cd wp_contents/
## WordPressをダウンロード
[root@nginx-dev wp_contents]# wget https://ja.wordpress.org/latest-ja.tar.gz
【出力内容】ーーーーーーーーーーーーーーーーーー
--2016-06-03 15:25:23-- https://ja.wordpress.org/latest-ja.tar.gz
Resolving ja.wordpress.org (ja.wordpress.org)... 66.155.40.250, 66.155.40.249
Connecting to ja.wordpress.org (ja.wordpress.org)|66.155.40.250|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8249839 (7.9M) [application/octet-stream]
Saving to: ‘latest-ja.tar.gz’
100%[=================================================>] 8,249,839 1.07MB/s in 7.5s
2016-06-03 15:25:31 (1.05 MB/s) - ‘latest-ja.tar.gz’ saved [8249839/8249839]
アーカイブを展開していきます。
【出力内容】ーーーーーーーーーーーーーーーーーー
wordpress/
wordpress/wp-mail.php
wordpress/xmlrpc.php
・
・
・
wordpress/wp-config-sample.php
wordpress/wp-blog-header.php
wordpress/wp-links-opml.php
展開したら、内容を確認してみましょう。
latest-ja.tar.gz wordpress
僕の場合は、WordPressを展開して、wp-contentというディレクトリを使っているのがわかったので、勘違いを起こさないように置き場の名前を変更しました。
[root@nginx-dev html]# mv wp_contents/ wp-test/
[root@nginx-dev html]# ls
50x.html index.html wp-test
続けて、Nginxユーザーに先ほど作成した作ったWordPressディレクトリにアクセスできるように変更します。
[root@nginx-dev wp-test]# ls -l
total 8076
-rw-r--r-- 1 root root 8249839 May 7 12:29 latest-ja.tar.gz
drwxr-xr-x 5 nginx nginx 4096 May 7 09:12 wordpress
Ⅲ.WordPressの初期設定
WordPressの初期設定をしていきます。
[root@nginx-dev wordpress]# vim wp-con
wp-config.php wp-config-sample.php wp-content/
[root@nginx-dev wordpress]# vim wp-config.php
最後にブラウザーからインストールを開始します。
インストールが正常に完了すると、管理者ページヘのログイン画面が表示されます。
インストーラーで設定した管理者アカウントでログインしてください。
WordPressの初期ページは以下のようになってますので、問題なく表示されているかIPアドレスもしくはドメインをブラウザーでたたいてみてください。問題なく表示されていれば、WordPressのインストール&初期設定は無事完了です。
Ⅳ.まとめ
ここまでが、NginxのインストールおよびNginxを使ったWordPress導入に必要な作業になります。
みなさん無事WordPressの管理者ページにログインできましたか?
冒頭でも少し触れましたが、動的にコンテンツを提供しているWordPressですが、近頃はNginxを使った高速化が話題になっています。
そのため、本記事ではNginxを使ったWordPressの導入について、書いてみました。
高速化についてここでは多くは語りませんが、調べたところ、通常のサイト運用ではリアルタイムの記事編集などはほとんど行わないことを前提に、キャッシュを作成しそのキャッシュを返信させることにより高速化ができるようです。静的ファイルの配信に強いnginxならではの利用法だと思います。興味のある方はぜひ調べてみてください。
本記事が少しでもお役に立てれば幸いです。