このブログの読み込みが異常に遅かったので、
高速化してみました。
ただブログのトップ画面を表示するだけで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更新時にエラーが表示されていました。
以下の記事で対象方法にまとめました。
[…] 【Web】WordPressを3倍高速化する方法 […]