PHP5.3でXOOPSを動かす
- カテゴリ :
- XOOPS
- 2009-9-10 10:28
satoです。
PHP5.3がリリースされて2ヶ月少々経ちますが、XOOPS CubeのPHP5.3対応はどうなっているのでしょうか。
少し調べてみました。
素のXOOPS Cubeをダウンロードして、PHP5.3環境で実行してみます。

Deprecatedというのは「非推奨」という意味で、つまりその関数は今後どうなるかわかんないしセキュリティとかそういう方面でもあまり良くないので(いろいろなケースがありますが)使うな、ということです。
とは言っても消すのは大変なので、php.iniで
インストールを進めていき、設定の保存(mainfile.phpに書き込むところ)の次の画面で、以下のようになってしまいました。

XCube_Root.class.phpを見てみます。
zend_ini_parser.yのdiffを取ってみたのですが、長そうなので見るのはやめておきました。
site_default.ini.phpがiniファイルであるにも関わらずphpにしているのは、外部から直接叩かれたときに見られないようにするためだと思いますが、この方法は5.3では使えないことがわかります。
このままでは進まないので、site_default.ini.phpを以下のようにします。
書き方をもう少し工夫すれば直接叩いても大丈夫になります。
これ以外はインストールは問題なく通りました。
次に初期のモジュールの追加画面で、変なエラーが出ています。

PHP5になった時点で既に意味がなくなっていたものなので、deprecatedと表示するのは間違っていないと思いますが、E_DEPRECATEDで消せないのは腑に落ちないです。とりあえず無視します。
インストールが完了して、installフォルダを取り除くと、以下のような画面になりました。

最後のほうのiniのエラーが問題な気がするので、全てのthemeのmanifesto.ini.phpを先ほどの要領で1=を付けると

ここまでは出るようになりました。
iniの読み込み処理側に手を加えたほうが楽そうです。
とりあえず今回はここまでにします。
PHP5.3がリリースされて2ヶ月少々経ちますが、XOOPS CubeのPHP5.3対応はどうなっているのでしょうか。
少し調べてみました。
素のXOOPS Cubeをダウンロードして、PHP5.3環境で実行してみます。

Deprecated: Function set_magic_quotes_runtime() is deprecated in /path/to/xcl/html/install/class/textsanitizer.php on line 32
と出ています。Deprecatedというのは「非推奨」という意味で、つまりその関数は今後どうなるかわかんないしセキュリティとかそういう方面でもあまり良くないので(いろいろなケースがありますが)使うな、ということです。
とは言っても消すのは大変なので、php.iniで
error_reporting = E_ALL & ~E_DEPRECATED
とすると消えてくれます。インストールを進めていき、設定の保存(mainfile.phpに書き込むところ)の次の画面で、以下のようになってしまいました。

Warning: syntax error, unexpected '<' in /path/to/xcl/html/settings/site_default.ini.php on line 1 in /path/to/xcl/html/core/XCube_Root.class.php on line 163 Fatal error: Call to a member function prepare() on a non-object in /path/to/xcl/html/core/XCube_Root.class.php on line 287
2つエラーが出ていますが、最初のWarningのせいでFatalが出てそうな感じです。XCube_Root.class.phpを見てみます。
$this->setSiteConfig(parse_ini_file($file, true));
として、settings/site_default.ini.phpを読み込もうとしているようですが、site_default.ini.phpは、以下のようになっています。<?php
/**
[Cube]
Root=XOOPS_ROOT_PATH
Controller=Legacy_Controller
#SystemModules=system,legacy,user,legacyRender
SystemModules=legacy,user,legacyRender,stdCache
RecommendedModules=pm
RoleManager=Legacy_RoleManager
Salt=XOOPS_SALT
...
どうやら、parse_ini_fileの仕様が変わって、iniの書式として不正なものは容赦なくエラーになるように変更されたようです。zend_ini_parser.yのdiffを取ってみたのですが、長そうなので見るのはやめておきました。
site_default.ini.phpがiniファイルであるにも関わらずphpにしているのは、外部から直接叩かれたときに見られないようにするためだと思いますが、この方法は5.3では使えないことがわかります。
このままでは進まないので、site_default.ini.phpを以下のようにします。
1=<?php
1=/**
(中略)
1=*/
1=?>
これでsite_default.ini.phpを直接叩くとparse errorになりますが、中身は表示されませんし、普通に次に進むことは可能です。書き方をもう少し工夫すれば直接叩いても大丈夫になります。
これ以外はインストールは問題なく通りました。
次に初期のモジュールの追加画面で、変なエラーが出ています。

Unknown Condition [8192]: Assigning the return value of new by reference is deprecated in file kernel/member.php line 79
Unknown Condition [8192]: Assigning the return value of new by reference is deprecated in file kernel/member.php line 80
Unknown Condition [8192]: Assigning the return value of new by reference is deprecated in file kernel/member.php line 81
...
該当行を見てみましょう。 function XoopsMemberHandler(&$db)
{
$this->_gHandler =& new XoopsGroupHandler($db);
$this->_uHandler =& new XoopsUserHandler($db);
$this->_mHandler =& new XoopsMembershipHandler($db);
}
どうやら、newの時に&を付けるのが駄目になったようです。PHP5になった時点で既に意味がなくなっていたものなので、deprecatedと表示するのは間違っていないと思いますが、E_DEPRECATEDで消せないのは腑に落ちないです。とりあえず無視します。
インストールが完了して、installフォルダを取り除くと、以下のような画面になりました。

最後のほうのiniのエラーが問題な気がするので、全てのthemeのmanifesto.ini.phpを先ほどの要領で1=を付けると

ここまでは出るようになりました。
iniの読み込み処理側に手を加えたほうが楽そうです。
とりあえず今回はここまでにします。
同一カテゴリ( XOOPS )の最新記事
- 第9回XOOPS Cubeサタデーラボは「あなたのXOOPS Cubeサイトの課題解決します」(2010-08-23)
- ブロック管理を表示モジュールでフィルタリングしてみた(2010-08-19)
- 地図ページをつくろう(2010-08-06)
- PHPカスタムブロックの超!賢い作り方(2010-07-20)
- XOOPSのブロックの位置をJavaScriptで弄れるようにする(未完成)(2010-07-19)
- HD1.04を使って、XOOPSバージョンアップ(2010-07-12)
- データベースへの持続的接続を有効にしている場合の不具合(2010-07-02)
- iphoneテーマをxoops2.0系でも動くように作ってみました!(2010-06-28)
- 次回XOOPS Cubeサタデーラボは7月24日(土曜)に開催予定(2010-06-27)
- XOOPSサイトをJavaScriptでプチカスタマイズ(2010-06-17)
トラックバック
トラックバックpingアドレス http://ryus.co.jp/modules/d3blog/tb.php/318
コメント
コメントの投稿
| 投稿者 | スレッド |
|---|---|
| ゲスト |
投稿日時: 2009-9-13 15:06 更新日時: 2009-9-13 15:06
|
|
参考にどぞー
|
|
|
|













