2010年4月11日日曜日

php5.3の困ったこと ... OpenPNE で

昨日 FreeeBSD で動いているサーバーの php を 5.2 から 5.3 へアップグレードしたのですが、いろいろと困った症状が出てきました。

マイナーアップグレードだと甘く見ていました。しょんぼりです。

ネット上でもいろいろ情報が出回っていて、php のエラーレベルの変更が原因でした。キーワードは、 error_reporting です。

2chビューアの rep2 や pukiwiki には目立った問題はありませんでした。症状が大きく出たのは OpenPNE でした。

OpenPNE は昔インストールしたままの状態でアップデートを行っていませんでした。バージョンは 2.4 でした。最新は 2.14 まで進んでいるようです。2.14 だと php5.3 へ対応しているかもしれません。

Deprecated: Assigning the return value of new by reference is deprecated

〜な感じとなっています。

Warning: Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown

のように php5.3 以上では対応しないディレクティブと出ているものもありました。

取り合えず、当該ページをアクセスしたとき、エラーや警告の文字で埋め尽くされることを防ぐために、openpne の設定ファイルの config.php 内の error_reporting0 ゼロに設定して取り合えず、対応しました。このままでは根本的な解決となっていないため、何とかしなければと思っているところです。

  結局 error_reporting はこれで解決しました。
  error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE);

それから php.ini の 'register_globals' と 'magic_quotes_gpc' を On から Off へ切り替えて crontab でいろいろ動作する度にエラーや警告がメールで送られてくるのを停止させました。

それから「it is not safe to rely on the system's timezone settings. please use the date.timezone setting」と出てくるものについても php.ini へ次の [Date] の項目を追加して対応しました。古くから php.ini を使い回しているとこの様な項目が不足しているようです。

[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Tokyo

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。