さくらの共用サーバから、め組のVPSに移行した際に設定した項目のメモです。
大まかにはこんな感じ
- Apache の設定変更
- mod_deflate, mod_expires の有効化
- VirturlHost の設定
- MySQL の設定変更
- クエリキャッシュの設定
- ソートバッファ等の設定
- PHP の設定変更
- APC のインストール
- memcached のインストール
- PECL :: Package :: memcache の導入
- WordPress への Memcached Object Cache Plugin の導入
- DB Cache Reloaded プラグインの改造
Apache, MySQL の設定は飛ばします。
APC のインストール
APC のインストールは、PECL で一発です。
# pecl install apc
あとは、php.ini に設定を追加してやればOK。
僕の設定は、とりあえずこんな感じです。
[apc] extension=apc.so apc.enabled=1 apc.optimization=1 apc.ttl=3600 apc.gc_ttl=3600 apc.shm_size=64M apc.num_files_hint=100
Apache をリブート後、apc が php で利用できるようになったかチェックする。
# /etc/rc.d/init.d/httpd restart # php -r 'phpinfo();' | grep apc apc apc.cache_by_default => On => On apc.canonicalize => On => On apc.coredump_unmap => Off => Off apc.enable_cli => Off => Off apc.enabled => On => On apc.file_md5 => Off => Off apc.file_update_protection => 2 => 2 apc.filters => no value => no value apc.gc_ttl => 3600 => 3600 apc.include_once_override => Off => Off apc.lazy_classes => Off => Off apc.lazy_functions => Off => Off apc.max_file_size => 1M => 1M apc.mmap_file_mask => no value => no value apc.num_files_hint => 100 => 100 apc.preload_path => no value => no value apc.report_autofilter => Off => Off apc.rfc1867 => Off => Off apc.rfc1867_freq => 0 => 0 apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS apc.rfc1867_prefix => upload_ => upload_ apc.rfc1867_ttl => 3600 => 3600 apc.shm_segments => 1 => 1 apc.shm_size => 64M => 64M apc.slam_defense => On => On apc.stat => On => On apc.stat_ctime => Off => Off apc.ttl => 3600 => 3600 apc.use_request_time => On => On apc.user_entries_hint => 4096 => 4096 apc.user_ttl => 0 => 0 apc.write_lock => On => On
memcached のインストール
まずは libevent をインストールしましょう。
# wget http://www.monkey.org/~provos/libevent-1.4.14-stable.tar.gz # tar zxvf libevent-1.4.14-stable.tar.gz -C /usr/local/src # cd /usr/local/src/libevent-1.4.14-stable/ # ./configure # make # make install
続いて、memcached のインストール。
# wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz # tar zxvf memcached-1.4.5.tar.gz -C /usr/local/src # cd /usr/local/src/memcached-1.4.5/ # ./configure # make # make install
memcached 用のユーザーの作成。
# groupadd memcached # useradd -g memcached -s /sbin/nologin -d /nonexistent memcached
起動スクリプト( /etc/rc.d/init.d/memcached )の作成。
#!/bin/bash # # memcached # # chkconfig: 345 80 20 # description: memcached TARGET=memcached DST_BIN=/usr/local/bin/${TARGET} EXEC_USER=memcached CACHE_SIZE=64 export LD_LIBRARY_PATH=/usr/local/lib/ start() { echo -n "Starting ${TARGET}: " ${DST_BIN} -d -u ${EXEC_USER} -m ${CACHE_SIZE} echo } stop() { echo -n "Shutting down ${TARGET}: " killall ${TARGET} echo } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: `basename $0` {start|stop|restart}" >&2 exit 1 esac exit 0
保存したら、「chmod 755 /etc/rc.d/init.d/memcached」 を忘れずに。
memcached の動作チェック
# /etc/rc.d/init.d/memcached start # telnet localhost 11211 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
と表示されたら「stats」と入力して、何か表示されれば memcached の動作OK。
「quit」と入力すれば、通常のコンソールに戻ります。
memcached がサービスとして自動起動するように chkconfig で設定。
# chkconfig --add memcached # chkconfig memcached on
登録されたかチェックする。
# chkconfig --list memcached memcached 0:off 1:off 2:on 3:on 4:on 5:on 6:off
と、表示されれば登録OK。
pecl で、memcached モジュールをインストール。
# pecl install memcache
php.ini に以下を追加。
[memcache] extension=memcache.so
Apache をリブート後、memcache が php で利用できるようになったかチェックする。
# /etc/rc.d/init.d/httpd restart # php -r 'phpinfo();' | grep memcache memcache memcache support => enabled memcache.allow_failover => 1 => 1 memcache.chunk_size => 8192 => 8192 memcache.default_port => 11211 => 11211 memcache.default_timeout_ms => 1000 => 1000 memcache.hash_function => crc32 => crc32 memcache.hash_strategy => standard => standard memcache.max_failover_attempts => 20 => 20
と、表示されれば登録OK。
WordPress で、オブジェクトキャッシュが使えるように object-cache.php を、WordPress インストールディレクトリ下の wp-content にコピー。
DB Cache Reloaded プラグインの改造は、次回のお楽しみ。