XPressME Integration Kit

フォーラム

XPressME Integration Kit Ver2.4.4の自動更新

ようこそ フォーラム インストール XPressME Integration Kit Ver2.4.4の自動更新

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

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

    匿名

    こんばんは。

    XPressME Integration Kit Ver2.4.4に自動更新しようとすると、以下の表示が出て更新できません。

    何か手順(WordPressを先にバージョンアップしないといけないとか)がありますでしょうか?

    現在のバージョンは、

    XPressME Version::2.42

    WordPress Version::3.3.2

    です。

    お手数おかけしますが、よろしくお願い致します。

    -----------------------------

    XPressME Integration Kit の更新

    http://ja.xpressme.info/wp-content/plugins/download-monitor/download.php?id=122からアップデートをダウロードしています…

    パッケージを展開しています。

    パッケージの構成が異なっています。

    インストールに失敗しました

    -----------------------------

    #3366

    toemon
    キーマスター

    heijiさんお久しぶりです。

    ちょっと旅行に出ていたので確認がおくれました。

    XPressME Version::2.42

    WordPress Version::3.3.2

    の構成からのXPressME自動アップデートを確認してみましたが、特に問題なくアップデートが行われます。

    パッケージの構成が異なっています。

    のエラーメッセージはパッケージの展開後に展開したディレクトリが見つからない場合に発生します、また

    XPressMEの自動更新におけるファイル操作の仕組みはWordPress2.8以降で追加されたWordPress自動更新の仕組みを利用して行っていますので、

    WordPress側の自動更新が出来る環境(FTPクライアントを使わずにブラウザ上から)ようであれは、XPressMEの自動更新も可能となります。

    これまでに、何度か自動更新されているようであれば、

    XPressMEパッケージのダウンロードミスが考えられますので、再度、自動更新を試していただけますようお願いいたします。

    何か手順(WordPressを先にバージョンアップしないといけないとか)がありますでしょうか?

    こちらのお問い合わせにつきましては特に順番とかはありませんが、今回のXPressME2.4.4はWordPress3.4利用時のバグ対策が含まれますので、WordPress3.4にアップグレードされる前に、XPressME側をアップグレードしておいた方がよいと思います。

    #3367

    匿名

    toemonさん

    こんばんは。

    お返事ありがとうございます。

    その後、モジュールアップデートにも失敗することが分かり、その際のエラーメッセージから、サーバを移転してから、「2.XPressMEモジュールの /templatesディレクトリと、wp-contentsディレクトリのパーミッションを777に変更」を忘れていたことに気づきました。で、モジュールアップデートは成功するようになったのですが、自動アップデートは失敗するままです。。。

    /wp-content/upgrade/配下に、

    download.tmp/XPressME_Integration_Kit_Ver2.4.4/xpressme_integration_kit/・・・

    のファイルが一瞬生成されて消えることまでは確認できたので、メッセージ通りダウンロードは成功しているようです。が、何度やっても同じです。

    > パッケージの展開後に展開したディレクトリが見つからない場合に発生します

    これは、どのディレクトリが存在することをチェックしているのでしょうか?

    前述の通り、/wp-content/upgrade/配下に、一応、ファイルは一瞬生成されています。メッセージの内容からすると、何かファイルが足りないということですよね???

    > 今回のXPressME2.4.4はWordPress3.4利用時のバグ対策が含まれますので、WordPress3.4にアップグレードされる前に、XPressME側をアップグレードしておいた方がよいと思います。

    と思って、WordPress側の自動アップデートは保留しています。

    また、/wp-content/upgrade/も777にしてみましたが特に変化ありません。

    > これまでに、何度か自動更新されているようであれば、

    これに関してはサーバ移転してから実行したかどうか記憶が定かではありません。

    曖昧で申し訳ないです。

    現在、運用には困っておりませんので緊急度はありませんが、今後、自動アップデートが行えないというのも不便ですので、何とか切り分けたいと思っています。

    確認すべきものが思いつきましたら、お手すきのときにでも教えていただけると助かります。

    毎度お手数おかけして申し訳ありません。

    よろしくお願い致します。

    #3368

    toemon
    キーマスター

    うむー

    当方での再現ができないので、解析の協力をお願いいたします。

    まず、パッケージが正しく展開されているか確認するために、

    現在のサーバー上にある、XPressMEモジュールの、

    wp-content/plugins/xpressme/include/class-xpress-upgrader.php

    53行目

    <code>if (empty($kit_dir)){<br />
    $wp_filesystem->delete($working_dir, true);<br />
    return new WP_Error('package_wrong', $this->strings['package_wrong']);<br />
    }</code>

    <code>if (empty($kit_dir)){<br />
    // $wp_filesystem->delete($working_dir, true);<br />
    return new WP_Error('package_wrong', $this->strings['package_wrong']."($working_dir)");<br />
    }</code>

    に変更してください。

    これで、展開に失敗しても、wp-content/upgrade/配下に展開されたファイルが消えなくなります。

    また、エラーメッセージに括弧書きで、作業ディレクトリ名が表示されるようになります。

    この状態で自動更新を行っていただき、wp-content/upgrade/配下のディレクトリ・ツリー構造、及び、作業ディレクトリ名を教えていただけないでしょうか

    あと、サーバー移転されたということですが、一度システム情報(レポート形式)の提供をお願いいたします。

    #3369

    toemon
    キーマスター

    追記

    WordPress側の自動アップデートは保留しています。

    もしwordpress3.4を試したり、Ver2.4.4のバグフィクスを適応しておき、モジュールの自動更新だけをチェックするのであれば

    ダウンロードしたXPressME Integration Kit Ver.2.4.4のモジュールルートのxoops_version.phpの85行目

    <code>$modversion['version'] = "2.44";</code>

    の部分を

    <code>$modversion['version'] = "2.42";</code>

    に変更した後、すべてのファイルディレクトリをFTPアップロードしておくことで、

    XPressMEモジュールの見かけ上のバージョンを下げて、モジュールの自動更新だけを試すことも出来ます。

    まぁ、その方が、WordPress側の自動更新自体が正常に動作しているのか確認できますので、良いかもしれません。

    #3370

    匿名

    toemonさん

    ありがとうございます。

    原因が分かったような気がします。

    が、どうやって修正すればよいかが分かりません。

    XOOPS_ROOT_PATH /usr/local/pem/vhosts/1*****/webspace/httpdocs/********.com

    なのですが、FTPのルートと上記のルートは一致せず、教えていただいた修正で表示される、作業ディレクトリ名は、

    /webspace/httpdocs/********.com/modules/xpress/wp-content/upgrade/download.tmp

    となっています。

    これが原因で、展開したファイルが見つからないのではないでしょうか?

    class-xpress-upgrader.phpにて、$working_dirに上記ディレクトリ名をべた打ちすれば直るような気もしますが、それで自動更新が成功してしまうと、toemonさんに正規の修正方法を教えていただいてから試せなくなってしまうので、とりあえずお返事を待ちたいと思います。

    よろしくお願い致します。

    #3371

    匿名

    toemonさん

    私の推測が的外れだった場合に備えて、一応、その他の情報をお知らせえしておきます。

    ・download.tmp配下には、XPressME_Integration_Kit_Ver2.4.4ができ、その下にはちゃんとファイルが展開されているようです。

    ・システム情報(レポート形式)は以下です。

    ******** システム情報********

    SERVER: Apache/2.2.11 (Unix) PHP/5.2.9 FrontPage/5.0.2.2635

    PHP Version: 5.2.9

    libxml Version: 2.6.26

    MySQL Version: 5.0.83-community

    XOOPS Version: XOOPS Cube Legacy 2.2

    XPressME Version: 2.42

    WordPress Version: 3.3.2

    WP DB Version: 19470

    safemode: OFF

    register_globals: OFF

    allow_url_fopen: ON

    magic_quotes_gpc: OFF

    XML extension: ON

    default memory_limit: 24M

    change memory_limit: 64M

    post_max_size: 8M

    upload_max_filesize: 10M

    display_errors: OFF

    MB extension: ON

    mbstring.language: japanese

    mbstring.encoding_translation: OFF

    mbstring.internal_encoding: UTF-8

    mbstring.http_input: pass

    mbstring.http_output: pass

    mbstring.detect_order:

    mbstring.substitute_character: none

    mbstring.func_overload: OFF

    ******** XPressMEがXOOPSより取得した設定値********

    XOOPS_ROOT_PATH: OK

    XOOPS_TRUST_PATH: OK

    XOOPS_URL: OK

    XOOPS_SALT: OK

    XOOPS_DB_HOST: OK

    XOOPS_DB_USER: OK

    XOOPS_DB_PASS: OK

    XOOPS_DB_NAME: OK

    XOOPS_DB_PREFIX: OK

    ******** WordPressで使用中のプラグイン********

    WP Posts List Ex for XPressME: Version 1.0: (http://exsample.com)

    WP Multibyte Patch: Version 1.5.1: (http://eastcoder.com/code/wp-multibyte-patch/)

    Plugin for XPressME: Version 1.0: (http://ja.xpressme.info)

    ******** ブロックステータス********

     最近の記事内容: OK

     最近の記事: OK

     人気記事リスト: OK

     ページ: OK

     最近のコメント: OK

     サイドバー: OK

     検索: OK

     カレンダー: OK

     アーカイブ: OK

     投稿者: OK

     タグクラウド: OK

     カテゴリー: OK

     メタ情報: OK

     ウィジェット: OK

     拡張ブロック: OK

    ******** ブロックオプション********

    ウィジェット : xpress||1|

    拡張ブロック : xpress||

    カテゴリー : xpress||ALL|name|ASC|0|0|1|1|||1|0

    メタ情報 : xpress||1|1|1|1|1|1|1|1

    タグクラウド : xpress||8|22|pt|45|flat|name|ASC||

    カレンダー : xpress||#DB0000|#004D99

    アーカイブ : xpress|db:xpress_archives_block.html|postbypost|0|1|0

    投稿者 : xpress||0|1|0|1

    サイドバー :

    検索 : xpress||18

    最近のコメント : xpress||10|30|||0

    人気記事リスト : xpress||10|0||||0

    ページ : xpress||post_title|asc||||0|0|none||1||

    最近の記事内容 : xpress||10|0|100||||0|0|0

    最近の記事 : xpress||10|1|7||||0

    ******** グループ権限********

    サイト管理者 : (module_admin) : administrator(No) :

    登録ユーザ : (module_admin) : administrator(No) :

    ******** ユーザーメタ情報********

    ユーザーメタキーは正常です

    ******** ●●統計********

    カテゴリー数: 45

    記事数: 115

    投稿者数: 2

    #3372

    toemon
    キーマスター

    1.

    download.tmp配下には、XPressME_Integration_Kit_Ver2.4.4ができ、その下にはちゃんとファイルが展開されているようです。

    ***/wp-content/upgrade/download.tmp/XPressME_Integration_Kit_Ver2.4.4/xpressme_integration_kit/** という構成でしょうか?

    2.

    あと、もしレンタルサーバーということであれば、サーバー屋さんを教えていただけないでしょうか? お試し期間があるようなら、当方で構築確認してみます。

    3.

    WordPressの自動更新は正常に行われるのでしょうか?

    XPressME_Integration_Kit_Ver2.4.2to2.4.4.zipよりアップグレード用の差分ファイルをダウンロードいただき、展開の後、モジュールルートのxoops_version.phpを除くすべてを、FTPクライアントにてサーバー上のXPressMEモジュールルートにアップロードしていただければ、WordPress3.4へアップグレードしても問題有りません。

    4.

    それで自動更新が成功してしまうと、toemonさんに正規の修正方法を教えていただいてから試せなくなってしまうので

    一旦、アップデートした後でも、

    モジュールルートのxoops_version.phpの85行目

    $modversionを2.44から2.42変更して再度モジュールアップデートしておけば

    自動更新のテスト自体は何度でも行うことが出来ます。

    #3373

    匿名

    toemonさん

    class-xpress-upgrader.phpの40行目くらいの、

    <code>$working_dir = $this->unpack_package( $download );</code>

    の直後に、

    <code>$working_dir = '/usr/local/pem/vhosts/1*****/webspace/httpdocs/********.com/modules/xpress/wp-content/upgrade/download.tmp/XPressME_Integration_Kit_Ver2.4.4';</code>

    を挿入すると、エラーメッセージが、「ファイルがコピーできませんでした。」に変わりました。

    元々のコードのままですと、$working_dir が、「/webspace/httpdocs/********.com/modules/xpress/wp-content/upgrade/download.tmp」ですから、

    頭に「/usr/local/pem/vhosts/1*****」がない(たぶん、FTPのルートディレクトリより上の部分が欠けています)と、後ろに「XPressME_Integration_Kit_Ver2.4.4」がないのが原因のようです。

    ※ 上記の「********.com」「1*****」のアスタリスク部分は伏せています。

    レンタルサーバーは、Speever(http://www.speever.net/)の、供用サーバプランの「SS-10(Linux)」(http://www.speever.net/plan/shared/detail_ss10.html)です。

    業者の都合でコース変更を余儀なくされたのですが、結構厄介なサーバです。

    お試し期間は見当たりませんね。。。

    こちらでももうちょっと調べて、またご連絡します。

    #3374

    匿名

    toemonさん

    お世話になります。

    とりあえず、class-xpress-upgrader.phpを次のように修正したら、自動更新に成功しました!!

    そのあと、class-xpress-upgrader.phpを元に戻して、WordPressの自動更新を行いましたが、正常動作しました。

    class-xpress-upgrader.phpの40行目くらいの、

    <code>$working_dir = $this->unpack_package( $download );</code>

    の直後に、

    <code>$working_dir_save = $working_dir;<br />
    $working_dir = '/usr/local/pem/vhosts/1*****/webspace/httpdocs/*********.com/modules/xpress/wp-content/upgrade/download.tmp/XPressME_Integration_Kit_Ver2.4.4';</code>

    を挿入。

    <code>// Copy update-core.php from the new version into place.</code>

    の直前に

    <code>$working_dir = $working_dir_save;<br />
    $kit_dir = $working_dir .'/XPressME_Integration_Kit_Ver2.4.4/xpressme_integration_kit/';</code>

    を挿入。

    ということで、私が調べた限りでは、以下のようです。

    ・「/XPressME_Integration_Kit_Ver2.4.4」が足りない。

    ・wp_filesystem->copy()の引数は、FTPのルートからのディレクトリを渡さないといけないが、is_wp_error()やfile_exists()やempty()の引数はFTPのルートからでなく、サーバの実際のルートからのディレクトリを渡さないといけない。

    しかし、べたコーディングではなく、正式のコーディングはどのようにしたらよいかスキル不足で分かりません。。。

    > ***/wp-content/upgrade/download.tmp/XPressME_Integration_Kit_Ver2.4.4/xpressme_integration_kit/** という構成でしょうか?

    はい。

    「XPressME_Integration_Kit_Ver2.4.4」の配下には、「xpressme_integration_kit」と「extras」の2つのディレクトリがあります。

    以上、よろしくお願い致します。

    #3375

    toemon
    キーマスター

    詳しく解析いただきましてありがとうございます。

    まさに、FTPルートパスとサーバーパスの相違に起因するようですね。orz

    直感で申し訳ないのですが

    オリジナルのclass-xpress-upgrader.phpの44行目及び48行目の

    file_existsの部分を$wp_filesystem->existsに変更して試してもらえないでしょうか?

    44行目

    <code>if (!file_exists($kit_dir)){	// search sub dir.</code>

      ↓

    <code>if (!$wp_filesystem->exists($kit_dir)){	// search sub dir.</code>

    48行目

    <code>if (file_exists($working_dir .'/' .$subdir['name'] .'/xpressme_integration_kit/')){</code>

      ↓

    <code>if ($wp_filesystem->exists($working_dir .'/' .$subdir['name'] .'/xpressme_integration_kit/')){</code>

    #3376

    匿名

    toemonさん

    ありがとうございます。

    > file_existsの部分を$wp_filesystem->existsに変更して試してもらえないでしょうか?

    これでばっちりです。

    > 一旦、アップデートした後でも、

    > モジュールルートのxoops_version.phpの85行目

    > $modversionを2.44から2.42変更して再度モジュールアップデートしておけば

    > 自動更新のテスト自体は何度でも行うことが出来ます。

    上記の方法で再テストして成功しました。

    is_wp_error()やempty()は関係なくて、file_exists()を$wp_filesystem->existsにするだけだったんですね。『「/XPressME_Integration_Kit_Ver2.4.4」が足りない。』も関係なかったんですね・・・。

    これからもよろしくお願い致します。

    #3377

    toemon
    キーマスター

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

    当件の内容は

    チケット #413

    に登録

    チェンジセット 808にて適応させていただきました。

    Ver2.4.5より適応いたします。(もう少し他の環境でテストして、問題なければ1,2日中にリリース予定です)

    オリジナルのVer2.4.4では自動更新エラーとなりますので、上記の対策は施しておいたままにしてください。

    #3378

    匿名

    toemonさん

    ありがとうございます。

    早速、Ver2.4.5にバージョンアップさせていただきました。

    <余談>

    また自動アップデートできずにちょっと焦りましたが、Ver2.4.2→Ver2.4.4に自動更新したときに、class-xpress-upgrader.phpが元に戻っていたようです。再適用してVer2.4.4→Ver2.4.5に自動更新しました。

    念のため、xoops_version.phpをVer2.4.4に戻して、Ver2.4.4→Ver2.4.5に再度自動更新しました。

    OKです。

    これからもよろしくお願い致します。

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

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