お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第7回目。前回はMySQLをインストールしWordPress用にチューニングするところまでやりました。
-
お名前.com VPS にMySQLをインストールしWordPress用にチューニング
お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第6回目。前回はApa ...
続きを見る
今回は、お名前.com の VPS に PHP をインストールします。mbstring の設定、APC の設定、PHP の Session を memcached に格納する設定を行います。PHP エラーログを logrotate する方法にも触れます。
目次
- PHP をインストール
- PHP.ini 設定
- mbstring 設定
- APC 設定
- PHP の Session を memcached に入れる
- Session が memcached に入っているか確認
- PHP ログを logrotate する
PHP をインストール
CentOS 標準リポジトリの PHP は 5.3 と少々古いので、remi リポジトリから 5.4 をインストールします。remi リポジトリのセットアップが済んでいない方は お名前.com VPS で EPEL RPMforge remi リポジトリを利用する をどうぞ。PHP と一緒に mbstring、MySQL接続ドライバ、APC も一緒に入れます。PHP の Session を memcached に入れるので、memcached も入れておきます。
# yum --enablerepo=remi install php php-mysql php-mbstring php-pecl-apc memcached php-pecl-memcached
記事の執筆時点ではバージョン 5.4.15 がインストールされました。Apache ドキュメントルートに phpinfo.php を作成して動作確認します。
# echo '<?php phpinfo(); ?>' > /var/www/html/phpinfo.php
ブラウザで次のようにアクセスします。http://vXXX.XXX.XXX.XXX.myvps.jp/phpinfo.php (XXX.XXX.XXX.XXX はご自身の IP アドレスに置き換えてください)
PHP.ini 設定
PHP.ini のデフォルトからの変更点です。
/etc/php.ini
expose_php = Off
error_reporting = E_ALL | ~E_STRICT
error_log = /var/log/php.log
default_charset = "UTF-8"
date.timezone = Asia/Tokyo
session.cookie_httponly = 1
session.hash_function = 1
mbstring 設定
mbstring.ini のデフォルトからの変更点です。
/etc/php.d/mbstring.ini
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.strict_detection = Off
mbstring.http_output_conv_mimetype=
APC 設定
apc.ini のデフォルトからの変更点です。
/etc/php.d/apc.ini
apc.shm_size=128M
apc.ttl = 3600
apc.user_ttl = 3600
apc.gc_ttl = 7200
APC の状況を確認するため、パッケージに付属している apc.php を Apache のドキュメントルートにコピーします。APC のバージョン番号は適宜置き換えてください。
cp /usr/share/doc/php-pecl-apc-3.1.15/apc.php /var/www/html/
ブラウザで次のようにアクセスします。http://vXXX.XXX.XXX.XXX.myvps.jp/apc.php
apc の設定値はほとんどの場合デフォルトで問題ありませんが、apc.php を見ながら稼働状況に応じて調節します。詳細はPHP マニュアルをご確認ください。
PHP の Session を memcached に入れる
PHP の Session のデフォルトの保存先はファイルですが、memcached に入れるように変更します。
まずは memcached の設定変更から。デフォルトの状態だと、どこからでもアクセスできるので、-l オプションで localhost からのみアクセス可能にします。11211ポートを開けていないのであまり気にしなくてもよさそうですが。
/etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1"
memcached 起動
# /etc/init.d/memcached start
netstat コマンドで動作確認します。
# netstat -nlp | grep memcached
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 3443/memcached
udp 0 0 127.0.0.1:11211 0.0.0.0:* 3443/memcached
次に /etc/php.d/memcache.ini を以下のように変更し、セッションの保存先を memcached に変更します。
/etc/php.d/memcache.ini
session.save_handler=memcached
session.save_path="localhost:11211"
memcache.ini のコメントに書かれているように、/etc/httpd/conf.d/php.conf に Session の保存先が書かれているのでコメントアウトします。
# php_value session.save_handler "files"
# php_value session.save_path "/var/lib/php/session"
apache 再起動
# /etc/init.d/httpd start
サーバ起動時に memcached も起動するように
# chkconfig memcached on
# chkconfig --list memcached
memcached 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Session が memcached に入っているか確認
以下のような簡単なプログラムで Session が memcached に入るか確認します。
# vi /var/www/html/session.php
<?php
session_start();
$_SESSION["count"]++;
echo $_SESSION["count"];
ブラウザからアクセスして、リロードのたびに数字がカウントアップされれば OK です。
memcached の中身を確認するには memcached-tool を使います。
# memcached-tool localhost dump
Dumping memcache contents
Number of buckets: 3
Number of items : 3
Dumping bucket 3 - 1 total items
add memc.sess.key.h7e2g18t0gqhiu86ppe10n673msa15jr 0 1370835768 10
count|i:3;
Dumping bucket 6 - 1 total items
Dumping bucket 8 - 1 total items
count|i:3; のように memcached に Session の値が入っているのが確認できます。
memcached と PHP の詳細については PHP マニュアルをご確認ください。
PHP ログを logrotate する
PHP のエラーログが /var/log/php.log に出力されるので rotate するように設定します。
# vi /etc/logrotate.d/php
/var/log/php.log {
daily
rotate 4
missingok
notifempty
create 640 root root
}
デバッグモードで実行して動作確認します。
# logrotate -dv /etc/logrotate.d/php
Handling 1 logs
rotating pattern: /var/log/php.log after 1 days (4 rotations)
終わりに
お名前.com VPS に PHP をインストールし、mbstring、APC、memcached を設定しました。次回はさくらレンタルサーバのWordPressをお名前.com VPS に引越しする手順を紹介します。
-
さくらレンタルサーバのWordPressをお名前.com VPS に引越しする手順
お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第8回目。前回は PH ...
続きを見る