XPressME Integration Kit

フォーラム

1.xから2.xへのアップデートについて

永らくありがとうございました フォーラム インストール 1.xから2.xへのアップデートについて

このトピックには12件の返信が含まれ、3人の参加者がいます。10 年、 4 ヶ月前 匿名 さんが最後の更新を行いました。

13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • 投稿者
    投稿
  • #2595

    匿名

    初めまして。去年からXpressMEをありがたく使わせて頂いております。

    レンタルサーバーで1.xから2.xへのモジュールアップデートを行うと、「Error establishing a database connection」というエラーメッセージが表示され、モジュールが動作しなくなってしまいます。

    クリアインストールも同じエラーが出て、動作しません。

    どうやら、データベーステーブルALTERやCREATEができないみたいんですが。

    環境

    XOOPS Cube 2.1.7 + XPressME Integration Kit 2.0.2 + WordPress 2.8

    Apache 2.0 + PHP 5.2.9 + MySQL 5.0.77

    #ローカルだと、アップデートもクリアインストールも両方無事にできました。

    #下手な日本語ですみません。m(_ _)m

    #2788

    toemon
    キーマスター

    futureSpyさんこんにちは(Hello futureSpy)

    ご迷惑をおかけしています。(I’m sorry for troubling you. )

    解決の手がかりを得るため、いくつかの質問にお答えください。

    (Please answer some questions so that I may obtain the clue of the solution. )

    「Error establishing a database connection」のエラーは、アップデートあるいはインストール時に発生しますか?

    それともモジュールアクセス時ですか?

    (For error “Error establishing a database connection” to occur to be to update and install it?

    Or, is the module accessed?)

    あなたのXOOPS_URL/module/XPressME_dirname/admin/index.phpにアクセスできますか?

    (Can you access your XOOPS_URL/module/XPressME_dirname/admin/index.php?)

    アクセスできるなら、システム情報の「XPressMEがXOOPSより取得した設定値」を確認してください。

    (If it is possible to access it

    Please check “Set value that XPressME acquired from XOOPS” of system information. )

    以下の項目に関して

    XOOPSの値とxoops_コンフィグの値の違いがあるかどうか確認してください。

    (About the following item

    Please confirm whether there is difference in the value of XOOPS and the value of xoops_config. )

    チェック項目(check item)

    XOOPS_DB_HOST

    XOOPS_DB_USER

    XOOPS_DB_PASS

    XOOPS_DB_NAME

    XOOPS_DB_PREFIX

    # I’m sorry by poor English.

    # If you are possible,

    # Please cooperate in making the language resource of Portuguese for XPressME.

    Thank you.

    #2789

    匿名

    toemonさん、早速のご返答ありがとうございました。

    不足な情報ですみません。

    クリアインストールのとき、以下のエラーメッセージが表示され、

    Error establishing a database connection

    This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at . This could mean your host’s database server is down.

    * Are you sure you have the correct username and password?

    * Are you sure that you have typed the correct hostname?

    * Are you sure that the database server is running?

    If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.

    管理(/modules/xpress/wp-admin/)をアクセスしたら、同じメッセージが出てしまい、

    /modules/xpressをアクセスしたら、画面が真っ白になり、「Error establishing a database connection」というエラーメッセージが出ます。

    XPressMEのconfigがPREFIX_configに追加されません。

    1.10から2.02へのアップデートするときも、クリアインストールと同じエラーメッセージが出てしまいます。

    データベース側では、

    ・ PREFIX_configはNGです。→古いconfigが全部削除されますが、新しいのは追加されません。

    ・ PREFIX_WP_optionsはNGです。→siteurlが空っぽになります。

    ・ PREFIX_tplfileはNGです。→古いテンプレートは全部削除されしたが、新しいのは追加されません。

    ・ PREFIX_configoptionはOKです。

    ・ XPressMEのブロックアップデートはOKです。

    いろいろとご迷惑をお掛けかけしますので、よろしくお願い致します。m(_ _)m

    #もちろん、ポ語ファイルをよろこんで作ります。

    #判りにくいところがあれば、是非聞いてみて下さい。w

    #2790

    toemon
    キーマスター

    モジュールルートにある、wp-config.phpのデータベース接続情報(DB_NAME、DB_USER、DB_PASSWORD、DB_HOST)を、$xoops_configクラスからの取得ではなく直接書き込んでみてください。

    [変更前]

    /** Do not change. The name of the database for WordPress */

    define(‘DB_NAME’, $xoops_config->xoops_db_name);

    /** Do not change. MySQL database username */

    define(‘DB_USER’, $xoops_config->xoops_db_user);

    /** Do not change. MySQL database password */

    define(‘DB_PASSWORD’, $xoops_config->xoops_db_pass);

    /** Do not change. MySQL hostname */

    define(‘DB_HOST’, $xoops_config->xoops_db_host);

    [変更例]

    /** Do not change. The name of the database for WordPress */

    define(‘DB_NAME’, ‘your_db_name’);

    /** Do not change. MySQL database username */

    define(‘DB_USER’, ‘your_db_user_name’);

    /** Do not change. MySQL database password */

    define(‘DB_PASSWORD’, ‘your_db_password’);

    /** Do not change. MySQL hostname */

    define(‘DB_HOST’, ‘localhost’);

    この変更で正常に接続できるのであれば$xoops_configクラスの不具合ということになります。

    追加情報としてレンタルサーバーはどのサーバーを利用されているのか教えてください。 <- 可能であれば、再現実験してみます。

    #もちろん、ポ語ファイルをよろこんで作ります。

    よろしくお願いします。 詳細はこの問題が解決したら、メールいたします。

    #2791

    匿名

    ##リンクは「お問い合わせ」のフォームでお送りしたので、届いてなかったら声を出して下さい。

    toemonさんの言うとおり、問題なのはConfigFromXoopsというクラスでした。(^^;

    wp-config.phpを変更してから、クリアインストールやアップデートに成功しましたが、同じ様他にそのクラスを使っていたところが沢山あって、一つ一つ直すのはまだ試してません。

    無料レンタルサーバーなので、スペックなどは詳しく知りませんが、サーバー設定で十分であれば、phpinfoを<del>こちら (後でカキコを編集しますので、そのアドをどこかにメモして下さい) からご覧になって下さい。</del>他に何か情報が必要としたら、知らせて下さい。調べてみますから。

    #言語ファイルについてですが、languageデレクトレィー、xpressmeプラグ印やxpress_defaultのテーマだけですね?後は、このサイトのドキュメントも?

    #今は追試(数学苦手なやつw)時期なので、来月まであまり手が回らないので、締め切りの約束はできませんが、少し待って頂ければ、何とかできそうです。

    #2792

    toemon
    キーマスター

    toemonさんの言うとおり、問題なのはConfigFromXoopsというクラスでした。(^^;

    wp-config.phpを変更してから、クリアインストールやアップデートに成功しましたが、同じ様他にそのクラスを使っていたところが沢山あって、一つ一つ直すのはまだ試してません。

    ありがとうございます。

    しかし、futureSpyさんの環境で、

    ConfigFromXoopsクラスがXOOPSの環境を取得できない原因が判らないので、解決には、しばらく時間が、かかりそうです。

    現状で、システム情報の「XPressMEがXOOPSより取得した設定値」に相違点はありますか?

    あなたが同意するなら

    あなたのサイトの管理者権威を持っている一時的なユーザを作ってください。

    そして、「問い合せ」で連絡してください。

    それによって、私は、より正確な状況を知ることができます。

    If you agree

    Please make a temporary user who has your site administrator authority.

    And, please contact me by “Inquiry”.

    As a result, I learn a more accurate situation.

    一つ一つ直すのはまだ試してません。

    これは根本的な解決にはならないので、サイト公開を、お急ぎの場合、XPressME280-Ver1.10をご利用ください。

    テストサイト、http://xpressme.biz/ にfutureSpyさんのNG環境を再現していただけると、助かります。

    (FTP PhpMyAdmin のユーザ名、パスワードはメールで送付いたします。)

    #言語ファイルについてですが、languageデレクトレィー、xpressmeプラグ印やxpress_defaultのテーマだけですね?後は、このサイトのドキュメントも?

    trac extras/xpress_i18nのportuguesebrに翻訳が必要なものをアップしておきます。 詳しくは、後日メールいたします。

    #今は追試(数学苦手なやつw)時期なので、来月まであまり手が回らないので、締め切りの約束はできませんが、少し待って頂ければ、何とかできそうです。

    まずは、試験を優先に、頑張ってください。 

    #2793

    toemon
    キーマスター

    どうも、DB接続情報に特殊記号がある場合はNGになりそうです。

    wp-config.phpを元(オリジナル)に戻して、

    class/config_from_xoops.class.phpの48行目あたり

    function xpress_eval($str){

    $eval_str = ‘$ret = ‘ . $str . ‘ ;’;

    eval($eval_str);

    return $ret;

    }

    function xpress_eval($str){

    if (preg_match(‘/^'[^’]*’$/’,$str)){

    $ret = preg_replace(‘/’/’, ”, $str);

    return $ret;

    }

    if (preg_match(‘/^”[^”]*”$/’,$str)) {

    $ret = preg_replace(‘/”/’, ”, $str);

    return $ret;

    }

    $eval_str = ‘$ret = ‘ . $str . ‘ ;’;

    eval($eval_str);

    return $ret;

    }

    に変更した場合はどうでしょうか?

    #2794

    toemon
    キーマスター

    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 定義に条件分岐がありますのでパターンマッチングは使えません。

    これらの要因を踏まえ、

    1. trust_path側の定義ファイル名はmainfile.phpであること。
    2. trust_path側の定義ファイルmainfile.phpにはdefine()部分だけを置くこと(パターンマッチングではなくinclude_onceすることにより、条件分岐を可能にする)
    3. 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を追加

    以上、確認いただければ幸いです。

    #2795

    匿名

    toemonさん、お忙しいところ大変ご迷惑をおかけしました。

    さっき、確認してきました。完璧に動作しています!

    100%私のせいでした。申し訳ございません。

    いろいろお世話になりました。

    #2796

    toemon
    キーマスター

    こちらこそ、いろいろ勉強になりました。

    今回、こちらで確認させていただきました内容については

    チケット#174

    チケット#175

    チケット#173

    に登録させていただきました。

    Ver2.0.3(リリースするかは微妙)かVer2.10にて対応させていただきます。

    勝手ですがこちらのトピックはこれで「解決済み」にさせていただきます。

    # 試験、がんばってくださいね。

    #2797

    匿名

    ようやく XPressME Integration Kit に移行しましたので、1.xから2.xへのアップグレードに際して気がついた点を書いておきます。

    (1)

    移行前にパーマネントリンクを設定していた場合は忘れずに .htaccess を再設定(作成)する。

    当然 .htaccess がないと記事へのリンクがすべて切れてしまう。

    (2)

    モジュールのアップデート後、忘れずXOOPS側でテンプレートの更新もする。

    特にテンプレートをカスタマイズしている場合は必須。

    テンプレートを更新しないとレイアウトが大きく崩れる。

    (3)

    1.xの「XOOPSモード」でテンプレートをカスタマイズして運用していた場合、アップグレード後はXOOPSのテンプレートではなく、Wordpress側のテーマ編集で XPressME Default Themes の index.php や sigle.php をカスタマイズする必要がある。

    といったところでしょうか。

    #2798

    toemon
    キーマスター

    takahasiさん、ご指摘ありがとうございまいた。

    (1)

    移行前にパーマネントリンクを設定していた場合は忘れずに .htaccess を再設定(作成)する。

    当然 .htaccess がないと記事へのリンクがすべて切れてしまう。

    Ver1.Xからのアップデート 4.不要なファイルを削除に追記させていただきました。

    (2)

    モジュールのアップデート後、忘れずXOOPS側でテンプレートの更新もする。

    特にテンプレートをカスタマイズしている場合は必須。

    テンプレートを更新しないとレイアウトが大きく崩れる。

    Ver1.Xからのアップデート 10. テンプレートの更新を追記させていただきました。

    (3)

    1.xの「XOOPSモード」でテンプレートをカスタマイズして運用していた場合、アップグレード後はXOOPSのテンプレートではなく、 WordPress側のテーマ編集で XPressME Default Themes の index.php や sigle.php をカスタマイズする必要がある。

    Ver1.Xからのアップデート 13. カスタマイズを追記させていただきました。

    ありがとうございます。

    #2799

    匿名

    「ご指摘」だなんてとんでもないです。

    書いたことは自分自身の備忘録みたいなものです。

    詳細なマニュアル「Ver1.Xからのアップデート」があるので、基本的にはなんの問題もなく移行できました。

    「Wordpress本体には手を加えない」というアドオン・スタイルのIntegration Kitは素晴らしいですね。

    今後も愛用させていただきます。

    ありがとうございました。

13件の投稿を表示中 - 1 - 13件目 (全13件中)

このトピックに返信するにはログインが必要です。