WordPressをFascCGI Cacheで爆速仕様にする際の注意点【Nginxインストール編】

FastCGIで爆速のWordPress

Nginxはyumでインストールしない

まず一番最初にすることはNginxのダウンロードです。NginxのFascCGI cacheを使うことでサイトのレスポンスを高めます。

※なぜFascCGIで高速化が可能になるのかは下記サイトを参考にしてください。
参考:Nginxを使ったもう一歩進んだWordPressチューニング

しかしながら、yumであっさりとNginxをインストールしてはいけません。

なぜyumでインストールしてはいけないのか

理解できない

理由は、あるモジュールをNginxインストール時に追加したいからです。

キャッシュを利用するとサイトのレスポンスは速くなりますが、度々キャッシュが邪魔をして、更新が反映されるのに時間がかかることがあります。それを防ぐにはNginx HelperなどのWordPressプラグインを使って意図的にキャッシュを消去しなければなりません。(後述)

このFastCGIを使用したキャッシュの削除を行うためにはngx_cache_purge」という第3者製のモジュールが必要となるのですが、yumでインストールしたNginxには組み込まれません。

これがyumを使ってNginxをインストールしてはいけない理由です。

【参考】Nginx 3rd Party Modules – Nginx第3者製のモジュール一覧

Nginxをインストールする際には

上述の理由から、yumを使わずにソースコードからビルドしてサーバーにインストールします。

Nginxのソースコードと上述の「ngx_cache_purge」モジュールをダウンロードしていきましょう。

ngx_cache_purgeモジュールを忘れずに

nginx: download

上記リンク先から欲しいバージョンのNginxを入手します。今回は安定版の最新となる1.10.3(2017年3月現在)を落としました。

※これからの作業はすべてroot権限で実行しました。

# cd /usr/local/src
# wget https://nginx.org/download/nginx-1.10.3.tar.gz
# tar -xvzf nginx-1.10.3.tar.gz

それからngx_cache_purgeモジュールのダウンロードも忘れずに

nginx / ngx_cache_purge

# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
# tar -xvzf ngx_cache_purge-2.3.tar.gz

configure時に「–add-module」でモジュールを追加

これを忘れるとすべて意味がなくなりますので忘れないようにしましょう。

インストール先のパスなどを設定します。少し長いですが、がんばって打ちます。下のサイトなどを参考にさせていただきました。

参考:ngx_cache_purge module + WordPressプラグインでNginx proxy_cacheを快適に

ちなみに下記のconfigureは、yumでNginxをインストールした際に使用される設定とまったく同じです(add-module以外)。

このために、「いったんyumでNginxをインストールして、どういう設定が使われているか確かめる」と、いう二度手間まがいのことをしたので間違いないです。

# cd nginx-1.10.3/
# ./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib64/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-threads \
--with-ipv6 \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-mail \
--with-mail_ssl_module \
--with-stream \
--with-stream_ssl_module \
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' \
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pipe' \
--add-module=/usr/local/src/ngx_cache_purge-2.3

最後の「–add-module」でngx_cache_purgeモジュールを追加しています。

Configureオプションの詳細は下記リンクを参照してください。

Nginx: Installation and Compile-Time Options

他に足りないモジュールがある場合はyumで

./configureすると、モジュールが足りない場合に警告が出て処理がキャンセルされます。例えばこのように。

module-not-found

足りないモジュールは、yumでガンガンインストールしてやります。

# yum install -y GeoIP-devel

そしてもう一度./configureを実行します。無事makeファイルが作成されたら、ビルド&インストールです。

# make && make install

これでNginxがインストールされました!確認してみましょう。

# nginx -v
nginx version: nginx/1.10.3

このように表示されれば問題なくインストールされています。

起動スクリプトを作成

インストールできたので、早速Nginxを動かそうとしましたが起動できません。というか起動スクリプトが見当たらないと言われました。なので、作成します。

/etc/init.d/nginxを作成して、下記リンク先のスクリプトを丸々コピペします。

Nginx: Red Hat NGINX Init Script

起動ファイルが作成できたら、実行権限を与え、Nginxを起動させます。

# chmod a+x /etc/init.d/nginx
# /etc/init.d/nginx start
[or]
# service nginx start

chkconfigをonにしようとしたら、登録する必要があるとのことなので、言われたとおりに登録しておきます。

# chkconfig nginx on
サービス nginx は chkconfig をサポートしますが実行レベルで参照されていません (run 'chkconfig --add nginx')
# chkconfig --add nginx
# chkconfig nginx on

ソースコードからインストールしたNginxをアップデートするには

ソースコードからのNginxアップデートは、ひとつの記事にまとめました。そちらをご覧ください。

ソースコードからNginxをアップデートする

長くなったので次回につづく

次回につづく

yumを使わずないでNginxをインストールするのはこれでひと通り終わりました。

さらにこれからWordPress用にNginxの設定ファイルをイジる必要がありますが、ここまでの段階で結構長くなったので次のエントリーにまとめたいと思います。

次回に続く: WordPressをFastCGI Cacheで爆速仕様にする際の注意点【Nginx設定編】

“WordPressをFascCGI Cacheで爆速仕様にする際の注意点【Nginxインストール編】” への2件の返信

コメントは受け付けていません。