GentooでPHP5を使う

PHPとAmazon Web Serice(AWS/ECS)を使ってちょっと遊んでいる流れで、この自宅サーバにPHP5をインストールしようとしたのだけど、いろいろ手こずったのでメモ。

★PHP4はあらかじめアンインストールする
ここのサイトに書いてある手順で基本的には大丈夫。

★GentooでPHP5はマスクされてる
ACCEPT_KEYWORDS="~x86"が必要。

apache2もマスク状態のバージョンが依存関係にあり、それをインストールするとhttpd.confの格納パスが変わったり、内容もcommonapache2.confを参照しなくなったり、設定ファイル関係に変更が入ってしまうので移行には注意。

ちなみに特定のパッケージのみにACCEPT_KEYWORDSする場合は、/etc/portage/package.keywordsに

dev-php/php ~x86
dev-php/mod_php ~x86

と書いておくとPHPとmod_phpにのみ'~x86'が常に適用されて、いちいちemergeの時に指定する必要はない。

★マスクを外してemergeするとPHP5.1.0_betaが入りそうになる
PHPに'~x86'指定すると、emergeでPHP5.1系が入ってしまう。
さすがに5.1系は入れるには時期が早すぎるので、パッケージのバージョン指定('='を付ける)をすることで回避

emerge =php-5.0.4-r1

★PHP5.0.4はインストールしてもPEARがインストールされない
HTML_QuickForm、Smartyを使いたいので、PEARは必須だけどどうも5.0.4だけインストールされない不具合があるらしい。

そこで、http://go-pear.orgにアクセスして、表示されるPHPスクリプトをgo-pear.phpで保存し、それを実行してpearコマンドをインストール。

★デフォルトのインストール状態ではsimplexml関数が使えない
普通はcomfigureスクリプトのデフォルトでsimplexmlが有効(--enable-simplexmlオプション)になるらしいけど、emergeを使うと有効にならない。USEフラグでxml2やsimplexmlを追加してもダメだったので、

EXTRA_ECONF="--enable-simplexml" emerge =php-5.0.4-r1

として、強制的にconfigureに渡すようにした。

あとは/etc/conf.d/apache2 のAPACHE2_OPTSの'-D PHP4'を'-D PHP5'に修正すればとりあえずテストした範囲ではOKでした。

タイトルとURLをコピーしました