CentOSのPHPを5.1.6から5.2.6へバージョンアップさせる時につまづいたメモ
Apache、MySQL、PHPをインストールして、よーし俯瞰検索をローカルで動かすぞ〜とデータを持ってきたらエラー表示。しかも途中で止まってる。どこがおかしいのかソースを追っていったら、どうやら「json_decode」が原因のよう。んで調べてみたら、
json_decode
http://zapanet.info/phpdoc/function.json-decode.html
(PHP 5 >= 5.2.0, PECL json:1.2.0-1.2.1)
json_decode ― JSON 文字列をデコードする
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で システム - 管理 - セキュリティレベルとファイヤーウォールの設定だった。
とりあえず、動くようになったので良かった!