php5 本体のバージョン確認をしたところでエラーとなるため、かなり重症でした。
$ php -v
Fatal error: Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0
この問題は php.ini の見直しで対応可能でした。 「 allow_call_time_pass_reference 」の項目をコメントアウト(; を行頭に追加)すれば動作するようになりました。
;allow_call_time_pass_reference = On
しかし今度はウェブサーバの apache での動作が異常となってしまいました。
バージョン情報などを確認する info.php をブラウザから表示させようとすると、info.php をダウンロードするようになってしまいました。
念の為に httpd.conf の確認をしましたが問題無さそうでした。そこで apache 用のモジュール libphp5.so を探したところ、なんと!存在していませんでした。
$ ls /usr/local/libexec/apache22/libphp5.so
ls: /usr/local/libexec/apache22/libphp5.so: そのようなファイルまたはディレクトリはありません
どうも今回のリビルドで消失してしまったようです。そこで php5-5.4.26 のビルドオプションを確認してしました。
すると apache 用のモジュールを作るオプションがありませんでした(涙)。
いったいどうしたものかとネット上を検索してみると、apache 用のモジュールを作る ports (www/mod_php5) が存在していることを知りました。そこでこの ports をインストールしてみました。
# portinstall www/mod_php5
インストールが完了した後、apache を再起動させました。
# apchectl restart
これで apache 上で php5 が動作するようになりました。
しかし不思議なのはどうして以前のビルドでちゃんと apache 用のモジュールが作られたのか?でした。 もしかして以前からバージョンで使用していたオプションがそのまま引き継がれていてモジュールを勝手に作ったのでしょうか? とにかく不思議な現象です。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。