wordpressの高速化まとめ


自宅サーバへのお引っ越し後第1弾は、wordpressの高速化についてです。

実はうちのサーバ、5年前に買ったお世辞にも良いとは言えない代物でして、お引っ越し直後はかなりモッサリでした。

IMGP5971
うちのファンキーなサーバ。こいつが世界とつながっているわけですな。

このままでは、今までの苦労が無駄に終わると思い、いろいろ試行錯誤した結果、多少マシになったので、その時の一部始終をまとめてみます。

サーバサイドのチューニング

・APC導入
APCとは、PHPアクセラレータのこと。これを入れることで、キャッシュとかとってPHP動作レベルで高速化が図られるらしいので早速導入。といってもdebian系ならphp-apcを入れるだけ。簡単ですね。

[cpp]sudo apt-get install php-apc[/cpp]

その後はちゃんと動いているか、確認。下のコードでphpinfo()をブラウザで見てみて、apc云々という項目があったら、OKです。

[php]
<php? phpinfo(); ?>
[/php]

・apacheチューニング
apacheでもいろいろとチューニングできます。まずはdeflateでgzip圧縮の有効化

[cpp]
sudo a2enmod deflate
[/cpp]

/etc/apache2/mods-enabled/deflate.confに以下のように記述

[cpp]
<IfModule mod_deflate.c>
DeflateCompressionLevel 5
AddOutputFilterByType DEFLATE text/html text/plain text/xml
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|zip|gz)$ no-gzip dont-vary
</IfModule>
[/cpp]

お次は、expiresでキャッシュの有効期限を教えてあげる。

[cpp]
sudo a2enmod expires
[/cpp]

/etc/apache2/mods-enabled/expires.confに以下のように記述

[cpp]
LoadModule expires_module modules/mod_expires.so
ExpiresActive On
ExpiresDefault "access plus 3 days"
[/cpp]

・mysqlのキャッシュ
mysqlにもキャッシュがあります。こっちでもキャッシュを作ります。
まずは次のように打ち込む。

[cpp]
mysql -u myuhe -p
show variables like ‘query_cache_%’;
[/cpp]

ここで、query_cache_sizeが0の場合は、/etc/my.cnfを開いて[mysqld]の項目の中にあるquery_cache_sizeを適当な容量(24Mくらい??)に設定して

[cpp]/etc/init.d/mysqld restart[/cpp]

します。

クライアントサイドのチューニング

・wp-super-cacheプラグインの導入
かなり有名なプラグイン。静的生成されたキャッシュを作って高速化させようというもの。一時はk-tai styleと相性が悪いとか言われていましたが、今ではほとんど問題ないです。

・header cleanerプラグインの導入
こちらは、wp-super-cacheとはまったく違うアプローチで高速化を図るプラグイン。jsの場所を下に持ってきたり、cssを上に持ってきたり、ソースの書式を整えたりして、クライアント側で高速化を図ろうというものだそうです。
んなんですが、導入したところ、cssが崩れたり、jsが読み込まれなくなったり、と設定でかなり苦しみ導入は見送りました。
ref:Head Cleaner (仮) で、なぜ速くなるのか? : dogmap.jp

まとめ

というわけで、サーバ、クライアント両方でできるチューニングをご紹介してみました。いろいろ苦労したんですけど、うまくいって効果がでたときはやっぱりうれしいもんです。
それと、サーバをいじれるというのも自宅鯖の魅力。電気代かかるとか騒音が、な話もありますが、なんつっても自分が心血注いだものなので愛着が沸きます。
自宅鯖、おすすめです。

Ubuntuサーバ構築ガイド