Re: 1.xから2.xへのアップデートについて
永らくありがとうございました › フォーラム › インストール › 1.xから2.xへのアップデートについて › Re: 1.xから2.xへのアップデートについて
FutureSpyさん、ご協力、ありがとうございました。
FutureSpyさんに準備していただいた、テスト用サイトで不具合の詳細を知ることができました。
今回の不具合の主原因は、mainfile.phpの本体をtrust_path側におき、XOOPS_ROOT_PATH/mainfile.phpからrequire_onceする構造になっていた為に発生したものです。
ローカル環境でも同様の構成にした場合には、不具合を再現することができました。
XPressME ver2.XではXOOPSとの結合を緩やかなものにするために、必要以外はXOOPSシステムをロードしない形になっています。
それらの理由からXPressMEはclass/config_from_xoops.class.phpにてXOOPSのmainfile.phpからDB接続に必要な情報、URL、ルートパスなどをパターンマッチングで取得しています。
(mainfile.phpをincludeするとXOOPSをロードしてしまう為 <- XPressME Ver1.Xでは、このせいでWordPress側のコードを変更していた。)
ImpressCMSでもDB接続に必要な情報の定義ファイルがTrust_path側にあり、これに対しては読取り処理をすでに実装済みですので、
今回のケースのような場合でも、trust_path側を探しに行くこと自体はXPressMEのコード変更によって可能です。
但し、FutureSpyさんの書かれた定義ファイルでは XOOPS_URL 定義に条件分岐がありますのでパターンマッチングは使えません。
これらの要因を踏まえ、
- trust_path側の定義ファイル名はmainfile.phpであること。
- trust_path側の定義ファイルmainfile.phpにはdefine()部分だけを置くこと(パターンマッチングではなくinclude_onceすることにより、条件分岐を可能にする)
- XOOPS_ROOT_PATH/mainfile.php側では、require_once(trust_path側の定義ファイルmainfile.php) とXOOPSロードの部分を置くこと。
の条件で、class/config_from_xoops.class.phpの修正を行ってみました。
FutureSpyさん準備いただいた、テスト用サイトは以下の変更を行いました。
- /public_html/modules/blog_new/admin/index.phpの修正 <-これはまた別の問題
- /public_html/modules/blog_new/config_from_xoops.class.phpの修正
- /public_html/modules/blog_new/templates パーミッションの変更
- /public_html/modules/blog_new/wp-contents パーミッションの変更
- /public_html/mainfile.php の修正
- /xoops_trust_path/mainfile.php の修正
- /public_html/.htaccess RewriteRuleにblog_newを追加
以上、確認いただければ幸いです。