Xoops Xをphp7.0上で新規インストールするとエラーと文字化けが起きる


テスト環境

  • 使用サーバー : mixhost
  • php : 7.0
  • MySQL : 10.1.18-MariaDB-cll-lve
  • インストール方法 : setup.cgi を利用してのインストール

phpの設定は下の写真の通りです。

私の設定ミスで発生したトラブルですが

WordPressをインストールした時にphpを5.6から7.0に変更したのをうっかり忘れていて、そのままの状態でXoops X をインストールしてしまった際に起きたトラブルです。今後デフォルトでphp 7.xのレンタルサーバーも増えてくると思いますので、まとめておきます。

インストール作業中

インストール作業中のトラブルは一切ありませんでした。

インストール後一番初めのログイン時

下記のようなエラーが出ました

Notice [PHP]: Only variables should be passed by reference in file (html)/modules/legacy/kernel/Legacy_Controller.class.php line 795 (14)
Notice [PHP]: Only variables should be passed by reference in file (html)/core/XCube_Controller.class.php line 343 (1)
Deprecated [PHP]: Non-static method Legacy_SiteClose::callbackSetupUser() should not be called statically in file (html)/core/XCube_Delegate.class.php line 349 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)/modules/message/class/handler/Inbox.class.php line 57 (2)
Notice [PHP]: Only variables should be passed by reference in file (html)/modules/legacy/blocks/legacy_mainmenu.php line 33 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)/modules/legacy/blocks/legacy_mainmenu.php line 34 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)/kernel/groupperm.php line 501 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)/kernel/groupperm.php line 510 (2)

管理画面

プリファレンス→全般設定で下記のようなエラーが出ました

Notice [PHP]: Only variables should be passed by reference in file (html)/kernel/config.php line 334 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)/modules/legacy/kernel/Legacy_Controller.class.php line 795 (16)
Notice [PHP]: Only variables should be passed by reference in file (html)/core/XCube_Controller.class.php line 343 (1)
Deprecated [PHP]: Non-static method Legacy_SiteClose::callbackSetupUser() should not be called statically in file (html)/core/XCube_Delegate.class.php line 349 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)_trust_path/modules/xupdate/class/handler/ModuleStore.class.php line 541 (3)
Notice [PHP]: Only variables should be passed by reference in file (html)_trust_path/modules/xupdate/class/handler/ModuleStore.class.php line 542 (3)
Notice [PHP]: Only variables should be passed by reference in file (html)_trust_path/modules/xupdate/class/handler/ModuleStore.class.php line 543 (3)
Notice [PHP]: Only variables should be passed by reference in file (html)/modules/legacy/admin/actions/PreferenceEditAction.class.php line 43 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)/modules/legacy/admin/actions/PreferenceEditAction.class.php line 44 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)/modules/legacy/admin/actions/PreferenceEditAction.class.php line 161 (1)
Notice [PHP]: Only variables should be passed by reference in file (html)/modules/legacy/admin/actions/PreferenceEditAction.class.php line 162 (1)

下の写真のように一部文字化けします

この状態で、php7.0→5.6に変更するとエラーは全くでなくなりますが、文字化けした部分は直りません。
その際のphp5.6の設定は下記の通りです。

その後、すべて破棄しphp5.6上に再インストールしました所、エラーも文字化けも出ずに快適に動いています。

素人では分からないので

XUGJメンバー(xpWikiの作者)で、Xoops X を実質お一人でメンテナンスされているnao-ponさんに報告した所、早速回答を頂きました。

表示されるエラーについては、私も認識しています。特に PHP 7.1 では Notice エラーが多くレポートされますので、動作には支障ないことから Notice をレポートしないようにデフォルト指定しようと思っています。

表示されるエラーに関しては、通常稼働には何ら支障がないので、PHPデバッグをオフにして下さいとの事です。

文字化けの件ですが、照合順序を正しく設定しても、グループ名が文字化けするようですね。これは何らかのバグがありそうです。ちょっと調べてみますね。

PHPバージョンを切り替えられるのなら、5.xでインストール作業を行い、その後7.xで稼働すれば文字化けは起こりません。nao-ponさんの事ですから、恐らく次の更新の時には対応して下さると思います。

スポンサーリンク

シェアする

フォローする

スポンサーリンク