Web Artisan Blog - ウェブ アルチザン ブログ

PHP5.1.2にeAccelerator0.9.5-beta2をインストール

PHP (55 items)

2006年04月25日

Research Artisan Pro ←リサーチアルチザンがパワーアップして復活しました!!
PHPの処理速度向上の為に、できればアクセラレータを入れたいもんです。
そのアクセラレータの中で有名な”eAccelerator”ですが、PHP5.1.2に対応されているeAccelerator0.9.5(beta2版)が2006-4-11にリリースされたようで早速インストールしてみた。
※Linux(Fedora Core 4)、apache2.0環境。

まずは、”Release 0.9.5 beta2”からダウンロード。
以下、コードを打ってインストール。

tar jxfv eaccelerator-0.9.5-beta2.tar.bz2
cd eaccelerator-0.9.5-beta2
export PHP_PREFIX="/usr/local"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install
ln -s /usr/local/lib/php/extensions/no-debug-non-zts-20050922/eaccelerator.so /usr/local/lib/php/extensions/eaccelerator.so


ここまでは、バージョン0.9.3で経験済なので問題なくいきましたが、apache再起動後に”Service Temporarily Unavailable”のエラーが。。
エラーログから色々調べると、下記サイトのように共有メモリ設定値がオーバーしてたみたいで。。

eAccelerator トラブルシューティング - Can not create shared memory area in Unknown on line 0
カーネルの共有メモリ制限(デフォルト32MB)を超えて、eaccelerator.shm_size を設定したのが原因でした。
php.ini で
    eaccelerator.shm_size=32
・・・・


で、eaccelerator.shm_sizeを修正しapache再起動。
phpinfoで確認すると、”eAccelerator v0.9.5-beta2”の文字を確認。これでインストール成功。

更に確認という事で、これは0.9.3でもあったeAccelerator付属の”eaccelerator.php”を呼び出して確認すると、、、「eAccelerator is not installed」の文字が。。
あれっ、インストールできてない??とあたふたし小一時間調べると、”eaccelerator.php”はセキュリティを考慮してないので、どうも0.9.5あたりから”eaccelerator.php”を止め、”control.php”を使用して確認する模様。
”control.php”はダウンロードファイル内にありますので、そいつを呼び出す、、、・・が、これも”control.php”を置く場所によっては、すんなりいかない。”control.php”を修正する場合もあるかも。。
以下、”control.php”の初期処理部抜粋。

if (!function_exists('eaccelerator_info')) {
die('eAccelerator isn\'t installed or isn\'t compiled with info support!');
}

/** config **/
$user = "admin";
$pw = "eAccelerator";
/** /config **/

/* {{{ auth */
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_USER']) ||
$_SERVER['PHP_AUTH_USER'] != $user || $_SERVER['PHP_AUTH_PW'] != $pw) {
header('WWW-Authenticate: Basic realm="eAccelerator control panel"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
/* }}} */

$userや$pw、$_SERVER['PHP_AUTH_USER']や$_SERVER['PHP_AUTH_PW']の絡みです。
ちなみに、”eaccelerator.php”での「eAccelerator is not installed」の件ですが、このソースからもわかるように、function”eaccelerator”がfunction”eaccelerator_info”に名前も変わってるようですね。

そんなこんなで、意外と四苦八苦してインストール完了しました。

前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

Project MultiBurst wrote:

eAcceleratorでPHPを高速化:
このブログはPHP化しているわけですが、 高速化するものを発見しました。 「eAccelerator」 これは同様のPHPのキャッシュプログラム、 Turck ...
2006年07月08日 22時22分50秒

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=577