wordpressの高速化まとめ
自宅サーバへのお引っ越し後第1弾は、wordpressの高速化についてです。
実はうちのサーバ、5年前に買ったお世辞にも良いとは言えない代物でして、お引っ越し直後はかなりモッサリでした。

うちのファンキーなサーバ。こいつが世界とつながっているわけですな。
このままでは、今までの苦労が無駄に終わると思い、いろいろ試行錯誤した結果、多少マシになったので、その時の一部始終をまとめてみます。
サーバサイドのチューニング
・APC導入
APCとは、PHPアクセラレータのこと。これを入れることで、キャッシュとかとってPHP動作レベルで高速化が図られるらしいので早速導入。といってもdebian系ならphp-apcを入れるだけ。簡単ですね。
sudo apt-get install php-apc
その後はちゃんと動いているか、確認。下のコードでphpinfo()をブラウザで見てみて、apc云々という項目があったら、OKです。
<php? phpinfo(); ?>
・apacheチューニング
apacheでもいろいろとチューニングできます。まずはdeflateでgzip圧縮の有効化
sudo a2enmod deflate
/etc/apache2/mods-enabled/deflate.confに以下のように記述
<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>
お次は、expiresでキャッシュの有効期限を教えてあげる。
sudo a2enmod expires
/etc/apache2/mods-enabled/expires.confに以下のように記述
LoadModule expires_module modules/mod_expires.so ExpiresActive On ExpiresDefault &amp;quot;access plus 3 days&amp;quot;
・mysqlのキャッシュ
mysqlにもキャッシュがあります。こっちでもキャッシュを作ります。
まずは次のように打ち込む。
mysql -u myuhe -p show variables like 'query_cache_%';
ここで、query_cache_sizeが0の場合は、/etc/my.cnfを開いて[mysqld]の項目の中にあるquery_cache_sizeを適当な容量(24Mくらい??)に設定して
/etc/init.d/mysqld restart
します。
クライアントサイドのチューニング
・wp-super-cacheプラグインの導入
かなり有名なプラグイン。静的生成されたキャッシュを作って高速化させようというもの。一時はk-tai styleと相性が悪いとか言われていましたが、今ではほとんど問題ないです。
・header cleanerプラグインの導入
こちらは、wp-super-cacheとはまったく違うアプローチで高速化を図るプラグイン。jsの場所を下に持ってきたり、cssを上に持ってきたり、ソースの書式を整えたりして、クライアント側で高速化を図ろうというものだそうです。
んなんですが、導入したところ、cssが崩れたり、jsが読み込まれなくなったり、と設定でかなり苦しみ導入は見送りました。
ref:Head Cleaner (仮) で、なぜ速くなるのか? : dogmap.jp
まとめ
というわけで、サーバ、クライアント両方でできるチューニングをご紹介してみました。いろいろ苦労したんですけど、うまくいって効果がでたときはやっぱりうれしいもんです。
それと、サーバをいじれるというのも自宅鯖の魅力。電気代かかるとか騒音が、な話もありますが、なんつっても自分が心血注いだものなので愛着が沸きます。
自宅鯖、おすすめです。
