OSはFC7とFC8です。
php-eaccelerator を入れたいと思います。
はい。yum install php-eaccelerator で出来ます。
終了。
と行きたいところなんですが、Symfonyがエラーを出力していませんか?
Fatal error: Uncaught exception 'sfStopException'
調べてみると、インストールされるバージョンにはバグがあるようです。
Symfonyが対応している php5は、Javaのように(あるいはその他の言語のように)例外を投げる(throw)ことができます。当然それをキャッチすることもできます。
Symfonyはこのエラーハンドリングの枠組みを使っています。
ところが、php eaccelerator の特定のバージョン(0.9.5.1)では例外がキャッチされないようです。そのため上述のエラーが出ます。
php-eacceleratorを使いたいならバージョンアップしかありません。
今回は、すでにyumでphp-eacceleratorを入れていましたので、新バージョンのrpmを作成してから、rpmのアップグレードインストールをしてみようと思います。
◇rpmを作ろう(生々しいログでお届けします)
○build の準備 sudo yum install rpm-build vim ~/.rpmmacros ----- %_topdir /home/sugiyama/rpmbuild %debug_package %{nil} %packager Tatsuhiko Sugiyama <sugiyama@unicus.jp> ----- mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
○build cd ~/rpmbuild/SRPMS/ sudo yum install yum-utils yumdownloader --source php-eaccelerator rpm -ivh php-eaccelerator-0.9.5.1-3.fc7.src.rpm cd ~/rpmbuild/SOURCES/ wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2 cd ~/rpmbuild/SPECS/ vim php-eaccelerator.spec ----- Version: 0.9.5.1 Release: 3%{?dist} ↓ Version: 0.9.5.2 Release: 1%{?dist} ----- # テストビルド(bpはコンパイルの手前まで) rpmbuild -bp php-eaccelerator.spec # パッケージ足りない sudo yum install -y php-devel autoconf automake libtool # テストビルド(bcはコンパイルまで。) rpmbuild -bp php-eaccelerator.spec rpmbuild -bc php-eaccelerator.spec # 足りない sudo yum install -y gcc # テストビルド(baはバイナリパッケージとソースパッケージのビルド。bbだとバイナリパッケージだけのビルド) rpmbuild -bp php-eaccelerator.spec rpmbuild -bc php-eaccelerator.spec rpmbuild -ba php-eaccelerator.spec # 成功したのでchangelog追記 vim php-eaccelerator.spec ----- * Thu Sep 13 2007 Tatsuhiko Sugiyama <sugiyama@unicus.jp> 0.9.5.2-1 - Update to 0.9.5.2. ----- # 本気ビルド(アーキテクチャの指定と、不要なファイルを消すためのオプション) rpmbuild -ba php-eaccelerator.spec -\-target x86_64 -\-clean -\-rmsource -\-rmspec # インストール sudo rpm -Fvh /home/sugiyama/rpmbuild/RPMS/x86_64/php-eaccelerator-0.9.5.2-1.x86_64.rpm
# Symfonyのキャッシュのクリア
cd <Symfonyプロジェクトのトップ>
./symfony cc または ./symfony clear-cache
# apache再起動
sudo /etc/init.d/httpd restart
以上!