前の記事をPOSTしたら、結果じゃなくて手順を書けと言われてしまいました(´・ω・`)
と言うわけで簡単にWordpressの高速化について書きます。
まずは、Server側について。
Webサーバー
最近はサーバーも回線も強力ですので、深く考えずに設定しても十分な性能が発揮できます。
ですが、送信するデータ量を減らしたほうが望ましいことは確かです。
と言うわけで送信データ量を減らすため、Expiresヘッダの追加とGzip圧縮を導入しました。
Expiresヘッダの追加により、ブラウザ側でコンテンツのキャッシュが働き送信データの減少が行えます。
画像ファイル(jpg,png,gif,ico)とCSS、JavascriptにExpiresヘッダを付加することにしました。
さらにGzip圧縮を行うことにより送信データ量を減らします。
圧縮率の高いテキストデータにのみGzip圧縮を行うこととします。
うちのサーバーはNginxを使っているので、こんな感じでgzipとExpiresの設定を行っています。
Apacheは設定は適当にググってください。
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
directio 8m;
keepalive_timeout 10;
gzip on;
gzip_http_version 1.1;
gzip_types text/plain
text/xml
text/css
application/xml
application/xhtml+xml
application/rss+xml
application/atom_xml
application/javascript
application/x-javascript ;
gzip_disable "MSIE [1-6]\." "Mozilla/4";
gzip_comp_level 1;
gzip_proxied off;
gzip_vary on;
gzip_buffers 4 8k;
gzip_min_length 1000;
server {
listen 80;
server_name mmio.net;
location / {
root /home/www/blog/ ;
index index.php;
location ~* \.(jpg|jpeg|gif|css|png|js|ico)$ {
expires 14d;
}
}
location ~ \.php$ {
fastcgi_pass unix:/tmp/php.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/blog/$fastcgi_script_name;
include fastcgi_params;
}
}
}
PHP
元から高速化設定の導入済みのため、今回の作業とは直接の関係はありませんが……
PHP実行時に毎回毎回スクリプトのコンパイルが行われるのは効率が悪いため、
このサーバーではPHPアクセラレータAPC(Alternative PHP Cache)を導入しています。
APCを簡単に説明すると、
PHP実行時にコンパイル済みのバイナリをキャッシュし、再実行時はコンパイル無しで高速実行するというものです。
有名なモジュールですので導入方法とかは割愛します。
うちのサーバーではこんな感じの設定になっています。
apc.enabled = 1 apc.shm_size = 96M apc.ttl = 3600 apc.user_ttl = 3600 apc.gc_ttl = 7200 apc.mmap_file_mask = /dev/zero apc.max_file_size = 8M
WordPress本体については後ほど書きます。