Memo/PHP/PHP Accelerator

https://dexlab.net:443/pukiwiki/index.php?Memo/PHP/PHP%20Accelerator
 

Memo/PHP

PHPアクセラレータ "ionCube PHP Accelerator"

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

バグ

Fedora Core 1 でエラー

phpinfo();では正常動作しているようにみえるが、「phpa_cache_admin -mv」ではエラーとなるので、正常動作していない。

共有メモリが確保できない

アシアル社のサイトやPHPAに付属するドキュメントには、PHPAが使用する共有メモリの所有ユーザ/グループを指定するphpa.shm_userphpa.shm_group の設定は、PHPAバージョン1.3.2r2以降では明示的に設定することは不要とある。 しかし、明示的にphp.iniファイルにおいて指定しないと、共有メモリ上に正しくメモリを確保できない現象が発生した。
したがって、明示的にhttpdの所有ユーザ/グループを指定する必要がある。

Smartyとの併用で出力ファイルが化ける

希に不明なファイルをincludeしてしまい、出力htmlがめちゃくちゃになるらしい。
以下の方法でphpaのキャッシュをクリアするか、httpdの再起動で直るらしい。

# phpa_cache_admin -D

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-15 (土) 07:31:38 (63d)