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のサイトを立ち上げることができました。

Follow me!

Feedlyで新着記事をチェックしよう!

Feedlyでフォローしておけば、新着記事をチェックすることができます。ぜひ、この機会にFeedlyに追加しておきましょう。