パンプキンスパイスラテ

IT系のことが多めの日記帳です

CentOSのPHPを5.1.6から5.2.6へバージョンアップさせる時につまづいたメモ

ApacheMySQLPHPをインストールして、よーし俯瞰検索をローカルで動かすぞ〜とデータを持ってきたらエラー表示。しかも途中で止まってる。どこがおかしいのかソースを追っていったら、どうやら「json_decode」が原因のよう。んで調べてみたら、

json_decode
(PHP 5 >= 5.2.0, PECL json:1.2.0-1.2.1)
json_decode ― JSON 文字列をデコードする

http://zapanet.info/phpdoc/function.json-decode.html

PHP5.2以上じゃん!!!!
ちなみにPHP5.1.6が入っておりました。というわけでバージョンアップ大作戦の決行です。

ソースからインストール

PHP: DownloadsからPHP5.2.6をダウンロード。
それから
# make
# make install
で、
# service httpd start
したらこんなエラーが。

httpd: Syntax error on line 206 of /etc/httpd/conf/httpd.conf: Cannot load /usr/lib/httpd/modules/libphp5.so into server: /usr/lib/httpd/modules/libphp5.so: cannot restore segment prot after relc: Permission denied

色々調べて試してみたけどうまくいかない。
PHP5.2.0とeAcceleratorのインストールメモ
# make clean
# ./configure --with-apx2=/usr/sbin/apxs
# make
# make install

httpd: Syntax error on line 206 of /etc/httpd/conf/httpd.conf: Cannot load /usr/lib/httpd/modules/libphp5.so into server: /usr/lib/httpd/modules/libphp5.so: cannot restore segment prot after relc: Permission denied

結局下記を参考にSELinuxを無効にしたらうまくいった。
Brother Solutions Center
俺の場合は、CentOS5で システム - 管理 - セキュリティレベルとファイヤーウォールの設定だった。
とりあえず、動くようになったので良かった!