WordPressをCentOS上にnginx + PHP 7 + fastcgi_cacheで構築
CentOS 7 (1511)、PHP 7.0.2、nginx 1.9.9を使い、fastcgi_cacheを使ったWordPressを構築してみたので、手順を残しておきたいと思います。
目次
構成
使ったソフトウェアとバージョンは以下の通りです。
- CentOS 7 (1511)
- PHP 7.0.2
- nginx 1.9.9
- ngx_cache_purge 2.3
- MySQL Community Edition 5.7
CentOS 7
まず戸惑ったのが、CentOSに関してですが、バージョンが7になって変わっている点があります。サービスを起動するときに service nginx start とか打っていたと思うのですが、これがバージョン7になると systemctl start nginx.service もしくは、うしろの service を外して systemctl start nginx とかいうコマンドになります。これに伴い、いままで起動スクリプトを書いていた部分がUnitファイルを書くようになります。
PHP 7.0.2
PHPは最新版を使いたかったので、7.0.2をダウンロードしてビルドしました。リポジトリでも提供されているものもあるのですが、ディレクトリー名がphp70とかになったりして、ちょっと個人的に嫌だったのでビルドしたものを使うことにしたのです。
nginxとngx_cache_purge
nginxはリポジトリからインストールすれば早いのですが、今回はngx_cache_purgeというサードパーティー製のモジュールを利用したかったので、このモジュールを組み込んでビルドする必要がありました。
nginxを利用する場合は、ほとんどの人はキャッシュを目的としていると思うのですが、nginxには2通りの方法でキャッシュを実現できます。
- リバースプロキシによるproxy_cache
- FastCGIによるfastcgi_cache
リバースプロキシの方式ですと、nginxをふたつ起動し、ポート80番で待ち受けるものをキャッシュサーバーとして、そのうしろに8080番でWebサーバーが待ち受ける構成となります。この場合、WebサーバーはApacheなどでもよかったりしますが、最初からnginxで構成する場合は冗長に思えます。
fastcgi_cacheを使えば、キャッシュサーバーの役割をfastcgi_cacheが担ってくれますので、Webサーバー単体でよくなり単純な構成で構築できます。無駄もなくなり、設定するときにconfファイルを書くのも楽になります。
今回はfastcgi_cacheを利用します。そこで、キャッシュファイルを効率よく削除するために必要になってくるのがngx_cache_purgeというモジュールです。これはサードパーティー製のモジュールですので、ビルドするときに一緒に組み込む必要があります。リポジトリで提供されているnginxを利用しないのはこのためです。
MySQL Community Edition 5.7
これはリポジトリからインストールします。特に何もする必要はないですし、公式でリポジトリが用意されていますので、それを利用して構築します。インストールは簡単なものです。
各ソフトウェアのインストール
OSはテキトーにインストールしちゃってください。isoファイルがありますので、ダウンロードしてから、いまだと多分、ほとんどの場合が仮想環境を利用すると思いますので、VMwareなりHyper-Vなり、何なり利用してインストールしていまいましょう。ウィザードに従ってインストールすれば何も問題はありません。ちなみに、CentOSの場合、メモリーを多めに設定してあげないとGUIのインストーラーが出てこなかったので要注意です。あと、インストールは最小構成でいいです。
インストールし終わったら、一応アップデートしておきましょう。
yum -y update
あと、よく使うのでwgetを入れておきます。
yum -y install wget
あと、gccも入れておきます。
yum -y install gcc
OSに関してはこんなものですかね。
nginxのインストール
nginxは先に書いた通りngx_cache_purgeのモジュールを組み込みますので、リポジトリからのインストールではなく、ビルドします。なので、nginxをダウンロードしてくるところから始まります。
ダウンロードしたら解凍もしちゃってください。
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar -xzvf nginx-1.9.9.tar.gz
次にngx_cache_purgeのモジュールをFRiCKLE Labsからダウンロードします。こちらもダウロードしたら解凍しておきましょう。
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar -xzvf ngx_cache_purge-2.3.tar.gz
あと、ビルドするときにPCREとOpenSSLが必要なので、それらもインストールしておきます。
yum -y install pcre-devel
yum -y install openssl openssl-devel
nginxのディレクトリーに移動します。
cd nginx-1.9.9
configureはこんな感じで作り込みます。
./configure --prefix=/etc/nginx
--sbin-path=/usr/sbin/nginx
--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/run/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-http_ssl_module
--with-http_realip_module
--with-http_addition_module
--with-http_sub_module
--with-http_dav_module
--with-http_flv_module
--with-http_mp4_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_random_index_module
--with-http_secure_link_module
--with-http_stub_status_module
--with-http_auth_request_module
--with-threads
--with-stream
--with-stream_ssl_module
--with-http_slice_module
--with-mail
--with-mail_ssl_module
--with-file-aio
--with-ipv6
--with-http_v2_module
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic'
--add-module=/tmp/ngx_cache_purge-2.3
これをもとにMakeしてインストールします。
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --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/run/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-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --add-module=/tmp/ngx_cache_purge-2.3
make
make install
nginx単体で動作を確認
インストールまで終わったら、まずは単体で動作するかを確認しておきます。他のソフトウェアをインストールして、すべての設定が終わってからだと、問題が発生した場合の切り分けが難しくなりますので、まずは単体で動くことを確かめておきます。
confファイルを書き換えますので、念のためconfファイルのバックアップを取っておきます。
cd /etc/nginx
cp nginx.conf nginx.conf.backup
cd conf.d
cp default.conf default.conf.backup
バックアップが取れたらnginx.confの内容を書き換えます。
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/default.conf;
}
次にdefault.confファイルを書き換えます。
server {
listen 80;
server_name _; #localhost;
charset utf-8;
access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
logディレクトリーの権限変更とアクセスログ用のディレクトリーの作成を行います。
cd /var/log
chown nginx:nginx -R nginx
cd nginx
mkdir log
chown nginx:nginx log
Firewallのhttp(80)とhttps(443)のポートを開けます。
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
nginxのサービスとして起動させるための準備を行います。
/usr/lib/systemd/system/nginx.service を作成します。
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
ビルドした場合はユーザーが存在しませんので、nginxのユーザーを作ります。
useradd --shell /sbin/nologin nginx
nginxを起動します。
systemctl daemon-reload
systemctl enable nginx
systemctl start nginx
ブラウザーでアクセスしてデフォルトのWelcomeページが表示されることを確認します。
MySQLのインストール
MySQL CommunityのダウンロードサイトからMySQL Yum Repositoryを選択し、Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Packageのダウンロードボタンをクリック。
LoginするかSign Upするよう求められるので、下のほうにあるNo thanks, just start my download.のリンクをコピーします。このリンクがrpmのリンクです。
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
rpmを設定したらインストールします。
yum -y install mysql-community-server
自動起動に設定してサービスを起動します。
systemctl enable mysqld.service
systemctl start mysqld.service
初期ユーザーのパスワードを探します。
grep 'temporary password' /var/log/mysqld.log
パスワードが出てきたらコピーしておきます。MySQLにrootでログインし、パスワードを変更しておきましょう。
mysql -uroot -p
mysql> のプロンプトが表示されたらSQLでパスワードを更新します。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password';
PHPのインストールとPHP-FPMの設定
PHPはバージョン7を利用します。先で述べた理由でビルドから行いますので、まずはダウンロードから始めます。ダウンロードしたら解凍まで行います。
wget -O php-7.0.2.tar.gz http://jp2.php.net/get/php-7.0.2.tar.gz/from/this/mirror
tar zxf php-7.0.2.tar.gz
ビルドに必要なものをインストールしておきます。
yum install -y libxml2 libxml2-devel
yum -y install mysql-devel
yum -y install curl-devel
ビルドしましょう。
cd php-7.0.2
./configure --enable-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-curl --with-zlib --enable-mbstring --with-openssl --enable-sockets
make
make test
make install
make すると make test も忘れないでねって言われますので、 make test も実行しておきました。ちなみに make test を実行したらコーヒータイムになります。
インストールしたらコンフィグファイルを準備して設定していきます。
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
/usr/local/php/php.ini を編集しましょう。3箇所です。
cgi.fix_pathinfo=0
extension=php_curl.dll
extension=php_openssl.dll
次に /usr/local/etc/php-fpm.conf を編集します。
pid = run/php-fpm.pid
daemonize = yes
include=/usr/local/etc/php-fpm.d/*.conf
まあ、ほぼコメントアウトを消すだけの作業ですけどね。
www.confを準備します。
cd /usr/local/etc/php-fpm.d
cp www.conf.default www.conf
準備した /usr/local/etc/php-fpm.d/www.conf を編集します。
user = nginx
group = nginx
ここまできたら、一度起動させてみます。
/usr/local/bin/php-fpm
find / -name php-fpm.pid でPIDファイルが作成されていることを確認したらプロセスを停止させます。
ps aux | grep php
kill <php-fpm: master processのPIDを指定する>
/lib/systemd/system/php-fpm.service を作成します。
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/usr/local/var/run/php-fpm.pid
ExecStart=/usr/local/sbin/php-fpm --nodaemonize --fpm-config /usr/local/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
php-fpmをサービスとして起動できるようにします。
systemctl daemon-reload
systemctl enable php-fpm
systemctl start php-fpm
nginxでFastCGIを実行してみる
ここまできたら、nginxでFastCGIを利用できるか確認してみましょう。
nginxの default.conf を編集してFastCGIを使えるようにします。
server {
listen 80;
server_name _; #localhost;
root /var/www/vhosts/html;
index index.html index.htm index.php;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
#root /var/www/html; # /usr/share/nginx/html;
#index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; # /scripts$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
ドキュメントルートのディレクトリー /var/www/vhosts/html を用意します。
cd /var
mkdir www
cd www
mkdir vhosts
cd vhosts
mkdir html
ドキュメントルート /var/www/vhosts/html に確認用ファイル index.php を準備します。
<?php phpinfo(); ?>
この段階でブラウザーからIPアドレスでアクセスしてみるとエラーが表示されます。そこで、SELinuxの設定を行います。
まずはSELinux関連ツールをインストールします。
yum -y install policycoreutils-python
nginxの権限を確認してみます。
cat /var/log/audit/audit.log | grep nginx | audit2allow -m nginx
いろいろ出てきますので、nginxの権限を設定します。
cat /var/log/audit/audit.log | audit2allow -M nginx
semodule -i nginx.pp
権限を設定したら、一度SELinuxを無効化してから再び有効化します。
setenforce 0
setenforce 1
ブラウザーでアクセスしてphpinfoの実行結果が表示されていることを確認しましょう。
fastcgi_cacheを設定
fastcgi_cache関連の設定を進めていきます。
まずはキャッシュ用ディレクトリーを準備します。
mkdir /var/run/nginx-cache
chown nginx:nginx /var/run/nginx-cache
mkdir cache_temp
chown nginx:nginx cache_temp
nginx.conf の設定を変更していきます。
user nginx nginx;
worker_processes auto;
worker_rlimit_nofile 10240;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 8192;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush off;
keepalive_timeout 0;
client_max_body_size 4M;
client_body_buffer_size 256k;
if_modified_since before;
gzip on;
gzip_http_version 1.0;
gzip_types text/plain
text/xml
text/css
application/xml
application/xhtml+xml
application/rss+xml
application/atom_xml
application/javascript
application/x-javascript
application/x-httpd-php;
gzip_disable "MSIE [1-6]\.";
gzip_comp_level 6;
gzip_vary on;
gzip_proxied any;
gzip_buffers 4 8k;
proxy_buffering on;
fastcgi_buffer_size 8k;
fastcgi_buffers 100 8k;
fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:15m inactive=7d max_size=1000m;
fastcgi_temp_path /var/cache/nginx/cache_temp 1 2;
fastcgi_connect_timeout 60;
fastcgi_read_timeout 90;
fastcgi_send_timeout 60;
fastcgi_cache_valid 200 2h;
fastcgi_cache_valid 302 2h;
fastcgi_cache_valid 301 4h;
fastcgi_cache_valid any 1m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
include /etc/nginx/conf.d/default.conf;
}
default.conf も変更します。
server {
listen 80;
server_name _; #localhost;
root /var/www/vhosts/html;
index index.html index.htm index.php;
access_log /var/log/nginx/log/host.access.log;
error_log /var/log/nginx/log/host.error.log;
set $do_not_cache 0;
if ($request_method != GET) {
set $do_not_cache 1;
}
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $do_not_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $do_not_cache 1;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri /index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
fastcgi_cache_bypass $do_not_cache;
fastcgi_no_cache $do_not_cache;
fastcgi_cache WORDPRESS;
fastcgi_cache_valid 200 1d;
fastcgi_cache_valid any 10d;
}
location ~ /purge(/.*) {
fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
}
location ~ .*\.(html?|jpe?g|gif|png|css|js|ico|woff) {
access_log off;
expires 10d;
}
location = /robots.txt {
access_log off;
log_not_found off;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
}
nginxを再起動します。
systemctl restart nginx.service
ブラウザーで表示を確認してみましょう。
WordPressのインストール
いよいよWordPressのインストールです。長かったぁ〜。
WordPressをダウンロードします。日本語の最新版はWordPress.org 日本語から入手します。
wget https://ja.wordpress.org/wordpress-4.4.1-ja.tar.gz
ダウンロードしたWordPressの圧縮ファイルを解凍し、ドキュメントルートディレクトリーがある階層と同じところである /var/www/vhosts に移動させて、権限をnginxに変更します。
tar -xzf wordpress-4.4.1-ja.tar.gz
mv wordpress /var/www/vhosts
cd /var/www/vhosts
chown -R nginx.nginx wordpress
nginxの default.conf に設定しているドキュメントルートをWordPressのディレクトリーに変更します。
server {
listen 80;
server_name _; #localhost;
root /var/www/vhosts/wordpress;
index index.html index.htm index.php;
access_log /var/log/nginx/log/host.access.log;
error_log /var/log/nginx/log/host.error.log;
set $do_not_cache 0;
if ($request_method != GET) {
set $do_not_cache 1;
}
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $do_not_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $do_not_cache 1;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri /index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
fastcgi_cache_bypass $do_not_cache;
fastcgi_no_cache $do_not_cache;
fastcgi_cache wordpress;
fastcgi_cache_valid 200 1d;
fastcgi_cache_valid any 10d;
}
location ~ /purge(/.*) {
fastcgi_cache_purge wordpress "$scheme$request_method$host$1";
}
location ~ .*\.(html?|jpe?g|gif|png|css|js|ico|woff) {
access_log off;
expires 10d;
}
location = /robots.txt {
access_log off;
log_not_found off;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
}
MySQLでWordPress用のユーザーとデータベースを作成します。
mysql -u root -p
create database wordpress;
grant all on wordpress.* to 'wpadmin'@'localhost' identified by 'Password';
今回、データベースはwordpressとして、管理権限のあるデータベースのユーザーはwpadminとしました。
ここまで設定しら、ブラウザーからアクセスしてWordPressのセットアップを進めていきます。手動でwp-config.phpを設定することもできますが、画面からウィザードにしたがってやっていったほうが楽です。
データベースの項目についての質問に関しては、以下のように入力しました。
項目 | 値 |
---|---|
データベース名 | wordpress |
ユーザー名 | wpadmin |
パスワード | Password |
データベースのホスト名 | localhost:/var/lib/mysql/mysql.sock |
テーブル接頭辞 | wp_ |
パスワードは本当にPasswordって設定しちゃダメですよ。一瞬でハッキングされることを保証します。
あとはWordPressのウィザードにしたがって必要な情報を入力していけば完成です。
WordPressのインストールが完了したらNginx Helperプラグインをインストールしましょう。WordPressのプラグインのメニューから検索すれば出てきますので、インストールします。
このNginx Helperをインストールすることによって、ngx_cache_purgeでキャッシュファイルを削除することができます。記事を投稿したり、更新したりすることでキャッシュを削除したり、手動ですべてのキャッシュを削除したりすることもできます。
これで、nginxでfastcgi_cacheを使った高速なWordPressのサイトを立ち上げることができました。