2009年04月18日

覚え書き:PHP高速化

前任校の時、XoopsWordPress ME がかなり遅かったのと、掲示板で40人が夢中になって書き込んだときにサーバエラーになったことがありました。そこで、PHPの高速化を試みてみた。MySQLのパフォーマンスは十分にあるらしい(一番下に0.03sなどと表示されているのでわかる)し、8GB のメモリを載せている Ubuntu server は Linux ですからパフォーマンス的に問題になることはないと思いますけど予防的に。

検索すると次のページがヒット

veryberry_cafeの日記:2006-12-04 [ubuntu]うっかりしてたAPCとZend Optimizer

タイトルのことは最初だけ。PHP高速化について書いてあります。

この方によれば3つの高速化技術があり、

eAccelerator はロード済みファイルのメモリキャッシュ
・バイトコードキャッシュはAPC
ZendOptimizerはソースの最適化

という。さらに、eAccelerator と ZendOptimizer は共存可能だとか。さっそく試します。

実は前任校では Windows server だけど、ZendOptimizer は入れていました。Ubuntu(Linux server)では初めてだったので調べてみます。このページを参考に入れると簡単に入りました。

Ubuntu Server 7.10 に Zend Optimizer をインストール - してんのつれづれ

インストール中は英語でいろいろ聞かれるので焦りますが、ここにあるとおり、php.ini の場所に、「/etc/php5/apache2/」を入れるだけであとは「ok」とか何とかやっていると入ります。

$ sudo /usr/sbin/apache2ctl -k restart

で Apache を再起動すると Zend Optimizer が無事インストールされ、WordPress の表示が格段に早くなったような気がする。

eAccelerator の方は色々と苦労したけど、ほぼ次のページのとおりでうまくいきました。

How do I...Install eAccelerator on Ubuntu 8.04 (Debian) - MindTouch Developer Center

英語だけど、とても丁寧。

ソースからコンパイルする際「phpize」なるコマンドが必要になるけど、Ubuntu では「php5-dev」を入れればこのコマンドは入るぞと書いてあるらしい。そこで Synaptic パッケージマネージャで「php5-dev」を検索してインストールします。

その後このサイトの囲み部分のように実行します。ただし、そんなに全部「sudo」でやらなくても、最後の「make install」だけ「sudo」で実行すればいいと思います。

その後の php.ini の書き方は、両方の記事を参考にしました。一応以下のような感じです。一番最後の[eaccelerator]と[Zend]のところだけ。

[eaccelerator]
zend_extension = "/usr/lib/php5/20060613+lfs/eaccelerator.so"
eaccelerator.shm_size = "32"
eaccelerator.cache_dir = "/var/tmp"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content = "shm_and_disk"

[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0

zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

以下のように無事に動きました。

eAccelerator.png
posted by n_shimizu at 00:00| Comment(0) | TrackBack(0) | Ubuntu校内サーバ