このサーバのPHPを5.2から5.3にアップデートしたった!

PHPで名前空間を使う予定ができたので、急遽PHPをバージョンアップさせました。
PHP5.3になるといろいろと仕様が変わって面倒になるとは以前から見知っていたものの、実際にやってみるといろいろと現存してるサイトでトラブル出ますなぁ。


まず、
date(): It is not safe to rely on the system's timezone settings.
が出た。
php5.3からはタイムゾーンの設定をちゃんとしないとこういうエラーが出ます。

PHP5.3 でタイムゾーンの設定に関する警告が出る : Serendip – Webデザイン・プログラミング
http://www.serendip.ws/archives/3229

を参考にして解決。


次に
php.ini内のshort_open_tag が Offになってた。

これは
<?php 〜 ?>
の書式だけを良しとし、

<? 〜 ?>
を文法エラーとみなすところを’php’を省いてもOKとする設定。
これをもちろんonに変更。


んで、次に
Warning: Parameter 1 to NP_TrackBack::event_InitSkinParse() ↓
expected to be a reference, value given in ↓
/***/***/***/****/nucleus/libs/MANAGER.php on line 414

というNucleus内部のエラー。
これは恐らくphp5.3以降の参照渡しの仕様によるエラーかな、と。
NucleusはまだPHP5.3に対応してなさそうですし。

該当ソースを見ると、
call_user_func(array(&$this->plugins[$listener], ↓
'event_' . $eventName), $data);

というのがあるので

call_user_func(array(&$this->plugins[$listener], ↓
'event_' . $eventName), &$data);

にしたら消えました。


最後に
array_push() expects parameter 1 to be array
これは、書かれている通り、array_push()の一つ目の引数を配列にしてやればOK。


とりあえずうちのサーバで起こったエラーはこんなとこですね。
あとはNucleus内でまたちょこちょこエラーが出るかもしれないけどその都度対処するしか無さげな感じ。

( ´_ゝ`)思ったより手こずった。

大阪の江坂でウェブ制作をしている、インフラもシステムもデザインもディレクションもできるエンジニア。 広く浅く薄っぺらくですが(笑)

Leave a reply:

Your email address will not be published.