MySQLのパフォーマンスチューニングに続き、WordPressの記述言語であるPHPのパフォーマンス向上策を施します。
PHPのバージョンは 5.3.6 です。
検討結果からお話しすると、最も手軽で、それなりの効果実績と、開発プロジェクトがしっかり動いているという観点から、eAccelerator を導入することにしました。
1.パッケージの検索
さて、eAccelerator のホームページ http://www.eaccelerator.net/ ではソースからのインストールになっています。
rpmもしくはyumでインストールできないかと思い、早速remiに探しに行ったところ、あるじゃないですか。
yumコマンドでパッケージ情報を確認してみると、次の通りeAccelerator のパッケージで間違いないことが分かります。
[root ~]# yum info --enablerepo=remi php-eaccelerator Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * addons: www.ftp.ne.jp * base: www.ftp.ne.jp * epel: ftp.iij.ad.jp * extras: www.ftp.ne.jp * remi: remi-mirror.dedipower.com * rpmforge: ftp-stud.fht-esslingen.de * updates: www.ftp.ne.jp remi | 2.6 kB 00:00 3899 packages excluded due to repository priority protections Available Packages Name : php-eaccelerator Arch : i386 Epoch : 1 Version : 0.9.6.1 Release : 5.el5.remi Size : 120 k Repo : remi Summary : PHP accelerator, optimizer, encoder and dynamic content cacher URL : http://eaccelerator.net/ License : GPLv2+ and Zend Description: eAccelerator is a further development of the MMCache PHP : Accelerator & Encoder. It increases performance of PHP scripts by : caching them in compiled state, so that the overhead of compiling : is almost completely eliminated.
2.インストール
[root ~]# yum install --enablerepo=remi php-eaccelerator Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * addons: ftp.tsukuba.wide.ad.jp * base: ftp.tsukuba.wide.ad.jp * epel: ftp.kddilabs.jp * extras: ftp.tsukuba.wide.ad.jp * remi: rpms.famillecollet.com * rpmforge: ftp-stud.fht-esslingen.de * updates: ftp.tsukuba.wide.ad.jp 3899 packages excluded due to repository priority protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-eaccelerator.i386 1:0.9.6.1-5.el5.remi set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: php-eaccelerator i386 1:0.9.6.1-5.el5.remi remi 120 k Transaction Summary ================================================================================ Install 1 Package(s) Upgrade 0 Package(s) Total download size: 120 k Is this ok [y/N]: y Downloading Packages: php-eaccelerator-0.9.6.1-5.el5.remi.i386.rpm | 120 kB 00:01 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : php-eaccelerator 1/1 Installed: php-eaccelerator.i386 1:0.9.6.1-5.el5.remi Complete!
3.設定(eaccelerator.ini)
/etc/php.d/eaccelerator.ini の設定を変更します。変更箇所は2カ所。
(/etc/php.d/eaccelerator.ini の変更箇所)
eaccelerator.shm_size = "30" eaccelerator.allowed_admin_path = "/var/www/html/eaccelerator"
eaccelerator.shm_size はキャッシュメモリのサイズですが、注意が必要です。
“50”(50MB)にしてみたところ、httpd の再起動(起動)で失敗します。/var/log/httpd/error_log に次のメッセージが出力されます。
PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0
PHP Warning: Module ‘mysql’ already loaded in Unknown on line 0
eAccelerator: Could not allocate 52428800 bytes, the maximum size the kernel allows is 33554432 bytes. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shmmax.
PHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0
要するに、カーネルが30MB余りまでしかアロケートを許可していないということです。
よって、とりあえずは”30″で設定したというわけです。
eaccelerator.allowed_admin_path は管理Web機能を提供するhttpdのDirectoryです。ここに、/usr/share/doc/php-eaccelerator-0.9.6.1/control.php を配置します。phpを実行できる設定にする必要がありますので、注意してください。
4.アクセスパスワードの変更
[root ~]# vim /var/www/html/eaccelerator/control.php (略) /*** CONFIG ***/ $auth = true; // Set to false to disable authentication $user = "admin"; $pw = "eAccelerator"; ←これを任意のパスワードに変更します。 (略)
5.httpdの再起動
[root ~]# service httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
これで終わりです。