We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5574
    • 9 Posts
    詳細な解説ありがとうございます。

    結果ですが以下のようになりました。

    23 個のエクスポート対象ドキュメントが見つかりました...

    エクスポートファイル 0 of 23
    Home, id 1
    (2): http://localhost/modx/index.php?id=1失敗! Could not retrieve document.
    エクスポートファイル 1 of 23
    >>>・・・以下23まで同じ
    エクスポートが完了しました。エクスポートに要した時間は 0.017 秒です。


    また、

    結果は、"Access permissions" を public 以外にしているドキュメントが失敗
    していました。他は無事できていました。
    についてですが、
    これはドキュメント設定のページ設定のタブで公開にチェックが入っていればいいのですよね?
    これも公開になっています。


    あとエクスポートで書き出した後の結果で気になったことなのですが、
    MAMPを利用する際の注意事項に必ず:8080:8888をつける必要があるとあるので
    エクスポート時に出る結果には
    http://localhost/〜〜〜〜
    ではなく
    http://localhost:8888/〜〜〜〜
    となっていないといけないと思うのですが…

    ちなみに、:8080:8888をつけていないとOS XのApacheと衝突してしまうようです。
    追記: :8080ではなく:8888の間違えです。

    今回の結果を見たら、何かもの凄く単純なことで躓いている気が・・・ sad
      • 6158
      • 224 Posts
      昨晩遅かったのでまだ自宅で休養中。

      さて、何故 prefix, suffix が付かないのか、と気になりましたので、試しに
      "friendly urls" を OFF にしてやってみました。

      結果は以下の通り。

      - ファイルに prefix, suffix が付いた
      - ディレクトリ構造がなくなり、全ドキュメントが exports 内に展開された

      ファイル内の <a> タグの href は index.php?id=n のままなので、リンクが利
      きませんね。friendly urls を有効にしたままじゃないと意味ないかもしれま
      せん。
        • 6158
        • 224 Posts
        Quote from: coco at Jun 14, 2007, 06:31 PM

        23 個のエクスポート対象ドキュメントが見つかりました...
        "23" ということは、インストール直後のサンプルを含めたドキュメントの数だ
        から、特にいじられている様子はないですね。


        Quote from: coco at Jun 14, 2007, 06:31 PM

        Home, id 1
        (2): http://localhost/modx/index.php?id=1失敗! Could not retrieve document.
        (2) が来たか。(1) だと思ってたのに。$url はまとも (そう) ですね。
        # 開発環境のない自宅パソコンなので追求できません。


        Quote from: coco at Jun 14, 2007, 06:31 PM


        結果は、"Access permissions" を public 以外にしているドキュメントが失敗
        していました。他は無事できていました。
        についてですが、これはドキュメント設定のページ設定のタブ
        で 公開 にチェックが入っていればいいのですよね? これも公開になっ
        ています。
        ドキュメントを追加したり、ドキュメント・グループの設定をしたりしましたか?

        インストール直後の私の環境では、マネージャーのドキュメントツリーで
        "Add a Blog Entry (3)" が "web access: private" (英語表示)になっています。

        Blog (2) -- Add a Blog Entry (3)

        ドキュメントツリー上の "Add a Blog Entry (3)" を右クリックして "Edit
        document" を選択し、現れたページの一番下の部分を見ると確認できます。


        Access permissions
        Here you can select which document groups this document belongs to

        [ ] All Document Groups (Public)
        [ ] Scheduler Web User Pages
        [×] Site Admin Pages

        これが "All Document Groups (Public)" にチェックの入っているドキュメン
        トは全て export されてました。


        Quote from: coco at Jun 14, 2007, 06:31 PM

        :8080をつけていないとOS XのApacheと衝突してしまうようです。
        apache を2つ立ち上げてるんですか? ポート (80,8080,etc) を正しく設定し
        て、正しくアクセスすれば、特に問題はないと思います。

        modx はどちらの管理下にあるのでしょう。


        Quote from: coco at Jun 14, 2007, 06:31 PM

        今回の結果を見たら、何かもの凄く単純なことで躓いている気が・・・ sad

        ここで伝えられてない情報がまだ沢山あるんでしょう。入力するのが面倒です
        もんね。参考までに、windows だったらこんな感じで構築してます、という映
        像です。

        - xampp インストールから modx friendly url 有効化まで ( swf )
        - ローカル環境でのフレンドリーURL
          • 5574
          • 9 Posts
          "friendly urls" を OFF にしてやってみました。

          fiendly urlsはOnにしてもOFFにしても結果は同じになります。

          "23" ということは、インストール直後のサンプルを含めたドキュメントの数だ
          から、特にいじられている様子はないですね。
          ドキュメントを追加したり、ドキュメント・グループの設定をしたりしましたか?
          ここで伝えられてない情報がまだ沢山あるんでしょう。入力するのが面倒ですもんね。

          0.9.6をデフォルトの状態でインストールしていますので
          これといって特殊な設定はしていませんが、強いて言うなら

          • サンプルページのインストール
          • 言語 を Japanese-utf8
          • マネージャの言語コード を ja
          ぐらいです。
          これはサンプルページをインストールしていなくても、
          言語を変更していなくてもエクスポートに失敗します。




          apache を2つ立ち上げてるんですか? ポート (80,8080,etc) を正しく設定し
          て、正しくアクセスすれば、特に問題はないと思います。

          modx はどちらの管理下にあるのでしょう。

          今回の件で一番怪しいと思っている場所なのですが、

          Mac OS XにはデフォルトでApache環境を構築出来るようになっています。
          このMac OS X標準のApacheでアクセスするアドレスが
          http://localhost/

          このアドレスになります。

          今回、私がインストールしているのはMAMPなので
          MAMPのApacheにアクセスするアドレスは
          http://localhost:8888/

          こちらのポート8888へのアドレスになります。

          こちらのファイル
          manager/actions/export_site.static.php
          を書き換えた後にでた結果が

          エクスポートファイル 0 of 23
          Home, id 1
          (2): http://localhost/modx/index.php?id=1失敗! Could not retrieve document.
          エクスポートファイル 1 of 23
          >>>・・・以下23まで同じ
          エクスポートが完了しました。エクスポートに要した時間は 0.017 秒です。


          になっていて、MAMPへアクセスしていなくて
          Mac OS XのApacheにアクセスしているようになっています。
          出力結果が
          ->http://localhost/modx/index.php?id=1
          ではなく
          ->http://localhost:8888/modx/index.php?id=1
          でないといけないのです。



          結論を出すにはまだ速いのですが
          >MODxがMAMPのApacheへのアクセスを間違って、Mac OS XのApacheにアクセスしてしまっている。
          と思うのですが、思うだけで解決方法が・・・ :’(
            • 6158
            • 224 Posts
            納得。

            Quote from: coco at Jun 15, 2007, 12:54 AM

            MAMPのApacheにアクセスするアドレスは
            http://localhost:8888/

            こちらのポート8888へのアドレスになります。

            ...(中略)....

            Mac OS XのApacheにアクセスしているようになっています。
            出力結果が
            ->http://localhost/modx/index.php?id=1
            ではなく
            ->http://localhost:8888/modx/index.php?id=1
            でないといけないのです。

            >MODxがMAMPのApacheへのアクセスを間違って、Mac OS XのApacheにアクセスしてしまっている。
            と思うのですが、思うだけで解決方法が・・・ :’(

            (まだ試してませんがおそらく) その通りです。


            manager/actions/export_site.static.php:9

            // figure out the base of the server, so we know where to get the documents in order to export them
            (前) $base = ’http://’.$_SERVER[’SERVER_NAME’].str_replace("/manager/index.php", "", $_SERVER["PHP_SELF"]);
            (後) $base = ’http://’.$_SERVER[’SERVER_NAME’].’:’.$_SERVER[’SERVER_PORT’].str_replace("/manager/index.php", "", $_SERVER["PHP_SELF"]);


            と変更してみてください。

            もしくは、mac の apache を止めて、mamp apache を 80 番ポートで再起動させる。
              • 5574
              • 9 Posts
              ありがとうございます laugh laugh laugh

              (前) $base = ’http://’.$_SERVER[’SERVER_NAME’].str_replace("/manager/index.php", "", $_SERVER["PHP_SELF"]);
              (後) $base = ’http://’.$_SERVER[’SERVER_NAME’].’:’.$_SERVER[’SERVER_PORT’].str_replace("/manager/index.php", "", $_SERVER["PHP_SELF"]);

              この方法でできました!!!

              エクスポートファイル 3 of 23
              Add a Blog Entry, id 3
              失敗! Could not retrieve document.


              だた一つだけ失敗したのがこのページなのですが、これはプライベートの設定になっているから…ですね


              もしくは、mac の apache を止めて、mamp apache を 80 番ポートで再起動させる。
              これについてですが、Mac OS XのApacheは始めから停止しているので試していません。




              結論を出すとすると、

              Mac環境でMAMPを利用する場合は、「 manager/actions/export_site.static.php 」のファイルの
              // figure out the base of the server, so we know where to get the documents in order to export them
              $base = ’http://’.$_SERVER[’SERVER_NAME’].str_replace("/manager/index.php", "", $_SERVER["PHP_SELF"]);
              を、以下のように、赤字の部分を書き換える必要がある。
              // figure out the base of the server, so we know where to get the documents in order to export them
              $base = ’http://’.$_SERVER[’SERVER_NAME’].’:’.$_SERVER[’SERVER_PORT’].str_replace("/manager/index.php", "", $_SERVER["PHP_SELF"]);

              理由は、エクスポートを利用する時に’:’.$_SERVER[’SERVER_PORT’].の部分がないと
              MODxがMAMPのApacheへアクセス(http://localhost:8888/ 注釈1)せずに
              Mac OS XのApacheへアクセス(http://localhost/)してしまい
              エクスポートに失敗してしまう。

              *1 MAMPの設定によりこのポート番号は変化します。8888はMAMPのデフォルトの設定。


              ということでいいでしょうかね?

              この$_SERVER[’SERVER_PORT’]の部分ですが、これはMODxのバグはないけれども
              MODxの一機能(というより処理)としては必要な部分だと思うのですがどうでしょうか?
                • 6158
                • 224 Posts
                Quote from: coco at Jun 15, 2007, 02:28 AM

                エクスポートファイル 3 of 23
                Add a Blog Entry, id 3
                失敗! Could not retrieve document.

                だた一つだけ失敗したのがこのページなのですが、これはプライベートの設定になっているから…ですかね?

                そうです。データベースへの問合せの際、


                SELECT count( * ) AS count1
                FROM `modx`.`modx_site_content`
                WHERE `modx`.`modx_site_content`.deleted =0
                AND (
                (
                `modx`.`modx_site_content`.published =1
                AND `modx`.`modx_site_content`.type = ’document’
                )
                OR (
                `modx`.`modx_site_content`.isfolder =1
                )
                )

                となっているので、ドキュメントとしては数えられているのですが、


                @$handle = fopen ($baseURL."/index.php?id=".$docid, "r")

                で読み込もうとしても、web access : private なので出力されません。どうし
                てもやりたいと言う場合は、何かしら手段は立てられるでしょうが、static
                export の意味がなくなります。


                Quote from: coco at Jun 15, 2007, 02:28 AM

                この$_SERVER[’SERVER_PORT’]の部分ですが、これはMODxのバグはないけれども
                MODxの一機能(というより処理)としては必要な部分だと思うのですがどうでしょうか?

                これがバグとは思いませんが、http://localhost:80/ の :80 が暗黙の設定に
                なっているのはトラブルの元ではあります。ポートも自動的に取り込まれるの
                が望ましいコードだと思います。
                  • 5574
                  • 9 Posts
                  これがバグとは思いませんが、http://localhost:80/ の :80 が暗黙の設定に
                  なっているのはトラブルの元ではあります。ポートも自動的に取り込まれるの
                  が望ましいコードだと思います。

                  これはMODxのデベロッパーに報告すべきでしょうか?
                  と言っても、英語が苦手なので報告出来ないけれど cool


                  custar様長い間付き合ってくださりありがとうございました。
                    • 6158
                    • 224 Posts
                    Quote from: coco at Jun 15, 2007, 03:18 AM

                    これはMODxのデベロッパーに報告すべきでしょうか?
                    やってみてもいいんじゃないですか。
                    セキュリティーホールじゃないけど、誰かが引っ掛かってしまうところなので。
                    英語が苦手なのは私もで、最後は度胸。

                    Quote from: coco at Jun 15, 2007, 03:18 AM

                    長い間付き合ってくださりありがとうございました。
                    どういたしまして。私も modx の未経験な部分を一つ潰せましたから。
                      • 5574
                      • 9 Posts
                      翻訳家を探さないといけないですね grin