【WordPress】Apacheで動いているWordPressをNginxに変えよう

※ サーバーへSSHで操作したことのある、経験者向け記事です

こんにちは、昨晩unitopiのサーバーをお引っ越ししまして、ついでにApache+mod_PHPからNginx+FastCGIに変更したので手順をまとめておきたいと思います。

注意点

  • サーバー内の操作等が含まれますので、記事を参考にする場合は自己責任でお願いします
  • 設定により、頭にsudoを付ける必要がある場合もあります
  • CentOS6.6環境です

Apacheを止める

service httpd stop

色々入れる

yum install php php-fpm mysql-server php-mysql php-mbstring php-gd -y

おそらくWordPressが動いていたのであれば、入っているものが多いと思います。
php-fpmはNginxでWordPressを動かすために必要なので、導入しましょう。

Nginxのインストール

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install nginx -y

nginxのインストールです。

nginx -v

nginx version: nginx/1.6.2 等返ってくるはずです。

PHP-fpmの設定を変更

vi /etc/php-fpm.d/www.conf

apacheと書かれているところを、nginxに変更します。おそらく3箇所ほど。

:%s/apache/nginx/gcと打って「y」を押してれば置換できます。

Nginxのconfを変更

cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.back
vi /etc/nginx/conf.d/default.conf
server {
    listen 80;
    server_name localhost;

    #charset koi8-r;
    #access_log /var/log/nginx/log/host.access.log main;

    root /var/www/wp;
    index index.php;
    try_files $uri $uri/ /index.php?q=$uri&$args;

    #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;
        fastcgi_param SCRIPT_FILENAME /var/www/wp$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_busy_buffers_size 32k;
        fastcgi_temp_file_write_size 256k;
    }
}

2箇所Webrootを書いているところ(サンプルでは/var/www/wp)は変更してください。

PHPセッションを有効

chown -R nginx.nginx /var/lib/php/session/

webrootのオーナー変更

chown -R nginx.nginx /var/www/wp

※自身の設定したいWebrootに対して行ってください↑

起動

service php-fpm start
service nginx start

自動起動させたい場合は、

chkconfig nginx on

などでOKです。Apacheは消しておきましょう。

まとめ

移したばかりでまだ高速化検証等はできていませんが、リバースプロキシの設定をしてこそ爆速になる!とのことなので、次回の記事ではリバースプロキシの設定についてまとめてみたいと思います!

フォローして続編をチェック

@universionsをフォロー