【Web】WordPressを3倍高速化する方法

このブログの読み込みが異常に遅かったので、
高速化してみました。
ただブログのトップ画面を表示するだけで11秒もかかっていました。

VPS環境

さくらVPSのメモリ512MBのプランを利用しており、
1GBにスケールアップするのが手っ取り早かったのですが、
何となく負けた気がするので設定を弄ってみました。

利用VPS メモリ
さくらVPS 512MB

環境情報について

Apacheを利用していたのですが、
話題のNginxに切り替えてみました。

変更前後の環境については以下の通りです。

Webサーバ PHP種類
変更前 Apache php
変更後 Nginx php-fpm

作業内容

以下の作業を行うだけです。

Eginxのインストール

yum install nginx
vim /etc/nginx/conf.d/wordpress.conf
server {
    root    /var/www/html;
    index   index.php;

    listen  80 default_server;

    try_files $uri $uri/ /index.php?$args;

    location ~ \.php$ {
        fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include         fastcgi_params;
    }
}

Apache停止/Nginx起動

/etc/init.d/httpd stop
service nginx start

php-fpmのインストール

yum install php-fpm

php-fpm設定変更

vim /etc/php-fpm.d/www.conf
[www]
user = nginx
group = nginx
pm = static
pm.max_children = 5
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

php-fpmサービスの起動

/etc/init.d/php-fpm start

MySQL設定変更

vim /etc/my.cnf
[mysqld]
character_set_server=utf8
default-storage-engine=InnoDB
innodb_buffer_pool_size=64M
query_cache_size=128M
query_cache_limit=2M
query_cache_min_res_unit=4k
query_cache_type=1
tmp_table_size=128M
max_heap_table_size=128M
table_open_cache=1024
read_buffer_size=256K
read_rnd_buffer_size=256K
join_buffer_size=256K
thread_cache=256
wait_timeout=60

動作確認

ここでWordPressにアクセスして通常通りアクセスできればOKです。

自動起動設定更新

あとはサービスの自動起動設定を設定/変更するだけです。

sudo chkconfig httpd off
sudo chkconfig php-fpm on
sudo chkconfig nginx on

これでサーバを再起動後も問題なく動作してくれます。

変更前後の比較

変更前後でWordPressの表示速度を計測してみた所、
11秒かかっていたロード時間も3秒まで短縮できました。

Webサーバ PHP種類 読み込み速度
変更前 Apache php 11s
変更後 Nginx php-fpm 3s

仕組みを替えるだけでここまで早くなるものなのか…と実感しました。(:3_ヽ)_
旅に出たいけど雨が続いてる…

追記

Nginxユーザに権限を設定されていなかったので、
WordPress更新時にエラーが表示されていました。
以下の記事で対象方法にまとめました。

【WordPress】FTP情報入力画面が表示された時の対処

1 COMMENT

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です