PHPアクセラレータ“ionCube PHP Accelerator”を使用してみる。(無料)
2005/01/26現在 Ver 1.3.3r2(intel)
なお、暗号化は有償のionCube PHP Encoder(58,000円)を用いるらしい。
他のアクセラレータソフトはTurck MMCache for PHPがある。(PHP5非対応、無償)こちらは暗号化も行えるらしい。倒産?後継ソフトeAcceleratorが出た模様。(PHP5対応、無償、Ver.0.9.2)
PHP Acceleratorでは以下の作業をキャッシュし高速化するよう。
よってrequire/includeを頻繁に使っているコードは高速化できるかも。
適当なディレクトリに展開する。
管理用コマンド phpa_cache_admin が使える。
# wget http://www.asial.co.jp/products/ioncube/accelerator/bin/php_accelerator-1.3.3r2_php-4.3.0_linux_i686-glibc2.1.tgz # tar xvfz php_accelerator-1.3.3r2_php-4.3.0_linux_i686-glibc2.1.tar.gz # cd php_accelerator-1.3.3r2_php-4.3.0_linux_i686-glibc2.1.3 # cp php_accelerator_1.3.3r2.so /usr/local/lib # chmod 755 /usr/local/lib/php_accelerator_1.3.3r2.so # cp phpa_cache_admin /usr/local/bin # chmod 700 /usr/local/bin/phpa_cache_admin
php.iniの最後に追加
# vi /etc/php.ini
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; PHP Accelerator Settings ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;; zend_extension = /usr/local/lib/php_accelerator_1.3.3r2.so phpa.shm_user = apache phpa.shm_group = apache ; Local Variables: ; tab-width: 4 ; End:
httpdの再起動
# service httpd restart
コマンドラインから。
# phpa_cache_admin -mv
成功:
shm size 8.0MB bytes mempool size 8.0MB mempool bytes allocated 64.6KB mempool max bytes allocated 1.8MB mempool bytes free 7.9MB mempool overhead 8.2KB cache enabled
失敗:
No shm cache available with key 0x0c0deb00. The cache may not exist or you may have insufficient permissions to access it.
webから。
phpinfo.php 等適当なファイルを作る。
<? phpinfo(); ?>
ブラウザでアクセスし、以下の記述があるか確認する。
Zend Technologies with the ionCube PHP Accelerator v1.3.3r2, Copyright (c) 2001-2002, by Nick Lindridge
phpinfo();では正常動作しているようにみえるが、「phpa_cache_admin -mv」ではエラーとなるので、正常動作していない。
アシアル社のサイトやPHPAに付属するドキュメントには、PHPAが使用する共有メモリの所有ユーザ/グループを指定するphpa.shm_userや phpa.shm_group の設定は、PHPAバージョン1.3.2r2以降では明示的に設定することは不要とある。
しかし、明示的にphp.iniファイルにおいて指定しないと、共有メモリ上に正しくメモリを確保できない現象が発生した。
したがって、明示的にhttpdの所有ユーザ/グループを指定する必要がある。
希に不明なファイルをincludeしてしまい、出力htmlがめちゃくちゃになるらしい。
以下の方法でphpaのキャッシュをクリアするか、httpdの再起動で直るらしい。
# phpa_cache_admin -D