wordpressの高速化まとめ

自宅サーバへのお引っ越し後第1弾は、wordpressの高速化についてです。
実はうちのサーバ、5年前に買ったお世辞にも良いとは言えない代物でして、お引っ越し直後はかなりモッサリでした。
うちのファンキーなサーバ。こいつが世界とつながっているわけですな。
このままでは、今までの苦労が無駄に終わると思い、いろいろ試行錯誤した結果、多少マシになったので、その時の一部始終をまとめてみます。
サーバサイドのチューニング
・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 &amp;quot;access plus 3 days&amp;quot;
[/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
まとめ
というわけで、サーバ、クライアント両方でできるチューニングをご紹介してみました。いろいろ苦労したんですけど、うまくいって効果がでたときはやっぱりうれしいもんです。
それと、サーバをいじれるというのも自宅鯖の魅力。電気代かかるとか騒音が、な話もありますが、なんつっても自分が心血注いだものなので愛着が沸きます。
自宅鯖、おすすめです。