CentOSのPHPを5.2にする。ついでにAPCも入れてみました。
投稿者: miztaka, カテゴリ: PHP, tags: centos, php, wordpress, yum概要
CentOS5はyumでPHPをインストールすると標準では5.1.6が入ります。WordPressで使いたいプラグインが5.2以上を要求していたので、yumでPHP5.2を入れる方法を探してみました。
ついでにPHPの中間コードキャッシュ「APC」を導入してサイトの速度向上を計ってみました。
環境:
- ServersMan@VPS のEntryプラン
- CentOS 5.4
PHP5.2のインストール
まず古いPHPを削除します。私の環境では以下のものを削除しました。(/var/log/yum.log で後日確認)
php php-mbstring php-pdo php-common php-cli php-mysql gnupg curl
次に取得先のGPG-KEYをインポートします。
rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
リポジトリの設定をします。
$ vi /etc/yum.repos.d/utterramblings.repo (以下の内容を入力) [utterramblings] name=Jason's Utter Ramblings Repo baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
後は普通にyumで必要なパッケージをインストールします。
$ yum install php php-mbstring php-pdo php-pdo-mysql ...
インストールが終わったら、yum update でこのリポジトリが使われないように enabled=1のところを enabled=0に書き換えておきます。
apcのインストール
上記で追加した「Jason’s Utter Ramblings Repo」には php-apcも用意されていたので、普通に
$ yum install php-apc
で完了でした。
標準の5.1.6にインストールするには peclを使う方法、他のリポジトリを追加してyumでインストール方法などが紹介されていました。(下部の参考リンクを参照。)
ベンチマーク
Apacheを再起動してベンチマークしてみます。
APCなしの場合
Concurrency Level: 5 Time taken for tests: 103.595070 seconds Complete requests: 50 Failed requests: 0 Write errors: 0 Total transferred: 1881150 bytes HTML transferred: 1869950 bytes Requests per second: 0.48 [#/sec] (mean) Time per request: 10359.507 [ms] (mean) Time per request: 2071.901 [ms] (mean, across all concurrent requests) Transfer rate: 17.73 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 2 8.8 0 32 Processing: 1749 10192 22227.7 4236 103562 Waiting: 1198 8469 21650.1 2593 102240 Total: 1749 10194 22232.4 4236 103594
APCあり(shm 32M)の場合
Concurrency Level: 5 Time taken for tests: 66.140733 seconds Complete requests: 50 Failed requests: 0 Write errors: 0 Total transferred: 1881150 bytes HTML transferred: 1869950 bytes Requests per second: 0.76 [#/sec] (mean) Time per request: 6614.073 [ms] (mean) Time per request: 1322.815 [ms] (mean, across all concurrent requests) Transfer rate: 27.77 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 1.1 0 6 Processing: 3831 6405 1900.1 6155 13822 Waiting: 1797 3599 1741.1 3355 10780 Total: 3831 6405 1899.9 6155 13822
およそ40%ほどスピードアップしているようです。
ちなみに /etc/php.d/apc.ini にapc関連の設定があって共有メモリのサイズ(apc.shm_size)を128に増やしてベンチマークしてみましたが特に有意差はありませんでした。
キャッシュされるソースコードの量が増えてくるとこのパラメータが効いてくるようです。
参考
以下のサイトを参考にさせていただきました。ありがとうございます。