2016.07.21

Nginx(エンジンエックス)をインストールした環境で、WordPressを導入してみた。

難易度
2
カテゴリー
やってみよう!
タグ
Web開発
サーバー設定

160721_nginx_mv

こんにちは(○´∀`○)田です。

前回の突撃!となりのエンジニアでは、GMOクラウドの開発エンジニアである宮島さんに、Nginx(エンジンエックス)とは何か分かりやすく教えていただきました。

前回は触れることができなかったのですが、Nginxを使ったWordPressの高速化も注目されているようです。

せっかくですので、今回は宮島さんがWeb上に上がっている情報を参考にしながら、Nginxのインストール方法からWordPressのインストール・簡単な初期設定まで紹介していきます。

>前回記事:Nginxとは?Apacheとの違いについてエンジニアに聞いてみた

今回の利用環境:
サービス・・・GMOクラウドVPS
テンプレート名:CentOS 7.1 x64

Ⅰ.Nginxのインストール

rootでサーバーにログイン後、まずは、NginxのサイトからyumコマンドでNginxをインストールできるように設定自体をインストールします。
rpmパッケージを以下のようにyumコマンドでインストールしておきましょう。

[root@nginx-dev ~]# yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
【出力内容】ーーーーーーーーーーーーーーーーーー
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をインストールします。

[root@nginx-dev ~]# yum install --enablerepo=nginx 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を起動させましょう。

[root@nginx-dev ~]# systemctl start nginx

また、下記コマンドを使えば、OS側にハードウェアの起動時に同時に起動させるサービスとして登録させることもできますので、設定しておいても良いと思います。

[root@nginx-dev ~]# systemctl enable nginx

Nginxの起動が完了したら、ブラウザーからアクセスできる状態になるので、IPアドレスをたたいてみるとこのような画面が確認できます。このページは、Nginxの初期設定ページですね。
160721_nginxinstall_scr01
Nginxが使えるようになるまで、たったの3コマンドで完了しますので、何も難しいことはないですね。


Ⅱ.WordPressのインストール

まず初めにWordPressのインストールをしていきたいところですが、WordPressを動かすには、phpが必要です。
前回も少し触れましたが、Nginxにはphpの処理機能がついていないので、nginxでphpを動かせるようにするためにwp以外に必要なソフトウェアもインストールしておきましょう。

【インストールするソフトウェア一覧】
・php
・php-fpm(fastCGI)
・mariaDB(データベース)
・WordPress本体

まずは、以下の通りphpをインストールしていきます。ここでは、必要そうなモジュールも同時に指定しています。

[root@nginx-dev ~]# yum install php php-mbstring php-pear php-fpm php-mcrypt php-mysql
【出力内容】ーーーーーーーーーーーーーーーーーー
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を利用するためには、データベースも必須となりますので、続けてデータベースもインストールしていきます。

[root@nginx-dev ~]# yum install mariadb mariadb-server
【出力内容】ーーーーーーーーーーーーーーーーーー
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!

データベースをインストールしたら、続けて設定をしていきます。
まずは、いったんデータベースサーバーを起動してインストールが正しく行われたか確認します。

[root@nginx-dev ~]# systemctl start mariadb

正常に起動した場合はありません。 もし、なにか出るようであれば、ログファイルなどを見て何が悪いのかを確認する作業となります

次に、mariaDBの設定をします。mariaDBはmysql互換のデータベースソフトウェアで、CentOS7から mysqlに変わり標準のデータベース・サーバーソフトウェアになりました。互換があるので、 インストールされるコマンドもmysqlのものと同じになっています。

[root@nginx-dev ~]# mysql_secure_installation
【出力内容】ーーーーーーーーーーーーーーーーーー
/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用のユーザーと、領域(データベース)を作成します。

[root@nginx-dev ~]# mysql -u root -p
【出力内容】ーーーーーーーーーーーーーーーーーー
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)

※上記のピンクの部分は任意に変更してください。

設定を反映させます。

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> \q
Bye

続けて、php-fpm(fastCGI)の設定を行います。大きな変更は無く、実行ユーザーがApache向けなので、そこをNginxユーザーに書き換える程度です。 また、Nginxの設定もfastCGIへの通信を行うように変更します。

コマンドは以下の通りです。

## nginxの設定ファイル保存場所に移動
[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]

アーカイブを展開していきます。

[root@nginx-dev wp_contents]# tar xvfz latest-ja.tar.gz
【出力内容】ーーーーーーーーーーーーーーーーーー
wordpress/
wordpress/wp-mail.php
wordpress/xmlrpc.php



wordpress/wp-config-sample.php
wordpress/wp-blog-header.php
wordpress/wp-links-opml.php

展開したら、内容を確認してみましょう。

[root@nginx-dev wp_contents]# ls
latest-ja.tar.gz wordpress

僕の場合は、WordPressを展開して、wp-contentというディレクトリを使っているのがわかったので、勘違いを起こさないように置き場の名前を変更しました。

[root@nginx-dev wp_contents]# cd ../
[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]# chown -R nginx: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]# cp wp-config-sample.php wp-config.php
[root@nginx-dev wordpress]# vim wp-con
wp-config.php wp-config-sample.php wp-content/
[root@nginx-dev wordpress]# vim wp-config.php

最後にブラウザーからインストールを開始します。

http://[サーバーのIPアドレス、もしくはドメイン名]/wp-admin/install.php

インストールが正常に完了すると、管理者ページヘのログイン画面が表示されます。
インストーラーで設定した管理者アカウントでログインしてください。
160721_nginxinstall_scr02
WordPressの初期ページは以下のようになってますので、問題なく表示されているかIPアドレスもしくはドメインをブラウザーでたたいてみてください。問題なく表示されていれば、WordPressのインストール&初期設定は無事完了です。
160721_nginxinstall_scr03


Ⅳ.まとめ

ここまでが、NginxのインストールおよびNginxを使ったWordPress導入に必要な作業になります。
みなさん無事WordPressの管理者ページにログインできましたか?
冒頭でも少し触れましたが、動的にコンテンツを提供しているWordPressですが、近頃はNginxを使った高速化が話題になっています。
そのため、本記事ではNginxを使ったWordPressの導入について、書いてみました。
高速化についてここでは多くは語りませんが、調べたところ、通常のサイト運用ではリアルタイムの記事編集などはほとんど行わないことを前提に、キャッシュを作成しそのキャッシュを返信させることにより高速化ができるようです。静的ファイルの配信に強いnginxならではの利用法だと思います。興味のある方はぜひ調べてみてください。
本記事が少しでもお役に立てれば幸いです。

この記事を書いた人

GMOクラウド田(でん)

GMOクラウド田(でん)

GMOクラウド株式会社マーケティング部所属。
2012年に総合職として入社後、お客様サービス部や技術部に所属し、
多くの時間を技術関連の部署で過ごしてきました。
これまで培ってきた知識を、マーケティング業務に生かしてまいります!
プライベートでは、音楽をやったり、webデザイン(html,css,jQueryなど)の勉強をしたりしています(。・ω・。)
ちなみに、お酒はカクテルしか飲めませんが、いつかは日本酒を熱く語れる大人の女性になりたいです。

インタビュー記事

この記事を書いた人

GMOクラウド田(でん)

GMOクラウド田(でん)

GMOクラウド株式会社マーケティング部所属。
2012年に総合職として入社後、お客様サービス部や技術部に所属し、
多くの時間を技術関連の部署で過ごしてきました。
これまで培ってきた知識を、マーケティング業務に生かしてまいります!
プライベートでは、音楽をやったり、webデザイン(html,css,jQueryなど)の勉強をしたりしています(。・ω・。)
ちなみに、お酒はカクテルしか飲めませんが、いつかは日本酒を熱く語れる大人の女性になりたいです。

IoTの窓口

docker-tips_bnr

writer