We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5574
    • 9 Posts
    はじめまして、質問よろしくお願いします smiley


    • Mac OS X 10.4.9
    • MAMP Ver1.4.1
    • MODx 0.9.6

    上記の環境で
    MAMPとMODxはデフォルトの状態で利用しているのですが
    HTMLのエクスポートに失敗してしまいます。

    こちらのサイトの記事とこのトピックではallow_url_fopenがOnになっていないと失敗すると言うことですが
    MAMPのphpinfoの設定を見るときちんとOnになっています。

    どこに原因があるのかわからず・・・よろしくお願いします。
      • 6158
      • 224 Posts
      こんばんは。(3/13)

      Quote from: coco at Jun 14, 2007, 02:20 AM

      MAMPとMODxはデフォルトの状態で利用しているのですが
      HTMLのエクスポートに失敗してしまいます。
      何かメッセージ出てませんか?

      osx と言えど、所詮 freebsd 系なので特別じゃないと思うけど、全く環境がな
      いので想像でしかものが言えません。
        • 19033
        • 892 Posts
        こんにちは。
        allow_url_fopen=off 以外の場合でも、
        セーフモードだと(on)失敗するという話を聞いたことがありますが、
        その辺りはいかかでしょうか。。私も詳しくないんですが。。

        それと、エクスポート先にフォルダは作成されていますか?
        それともフォルダすら作成されませんか?

        フォルダすら作成されないならば、別の理由なのかも。。

        詳しい方のフォローを期待したいです。。
          • 5574
          • 9 Posts
          早速のお返事ありがとうございます。

          何かメッセージ出てませんか?

          MODxのエクスポート時にでる結果は、

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

          エクスポートファイル 0 of 23
          Home, id 1
          失敗! Could not retrieve document.
          >>以下23まで同じエラーです。

          エクスポートが完了しました。エクスポートに要した時間は 0.723 秒です。


          になります。
          特別な環境ではないと思っているので(思っているだけかも)、
          エクスポートに問題が出るのは何が問題があるのかさっぱりで・・・


          セーフモードだと(on)失敗するという話

          この設定はoffになっています。
          セーフモードがonになっているとフォルダだけが書き出されると言うやつですよね?

          エクスポート先にフォルダは作成されていますか?

          0.9.6のデフォルトの状態なのでexportのフォルダなどは存在しています。

            • 6158
            • 224 Posts

            (1) manager/actions/export_site.static.php:139

            if (@$handle = fopen ($baseURL."/index.php?id=".$docid, "r"))
            {
            ...
            }
            else
            {
            echo $_lang[’export_site_failed’]." Could not retrieve document.
            ";

            }


            (2) manager/actions/export_site.static.php:297

            // get the file
            if (@$handle = fopen ("$base/index.php?id=$id", "r"))
            {
            ...
            }
            else
            {
            echo $_lang[’export_site_failed’]." Could not retrieve document.
            ";

            }

            エラーを出しているのはこれらのどちらかですね。正しく "allow_url_fopen"
            絡みでしょうが、if 文の ’@’ をそれぞれ外したらどんなメッセージが出ますか?
              • 6158
              • 224 Posts
              ソースを読むと、(1) の $baseURL は (2) と同じ $base が渡されています。
              それぞれ fopen() の第一引数がどうなっているのか見せてもらえますか。

              (1) の場合

              $url = $baseURL . "/index.php?id=" . $docid;
              echo "(1): " . $url;


              if ($handle = fopen ($url, "r"))

              (2) の場合

              $url = "$base/index.php?id=$id";
              echo "(2): " . $url;


              if ($handle = fopen ($url, "r"))

              とでも書き換えて、その出力を教えてください。
                • 5574
                • 9 Posts
                エラーを出しているのはこれらのどちらかですね。正しく "allow_url_fopen"
                絡みでしょうが、if 文の ’@’ をそれぞれ外したらどんなメッセージが出ますか?

                @を消しても結果は同じでした…。
                  • 5574
                  • 9 Posts
                  ソースを読むと、(1) の $baseURL は (2) と同じ $base が渡されています。
                  それぞれ fopen() の第一引数がどうなっているのか見せてもらえますか。

                  すみません、第一引数というのがよくわからないのですが、

                  指定された場所の

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

                  から
                  if($handle = fopen($url, "r")) {

                  に

                  (2)
                  を
                  if(@$handle = fopen("$base/index.php?id=$id", "r")) {

                  から
                  if($handle = fopen($url, "r")) {

                  に

                  書き換えてみましたが結果は同じく失敗です。
                    • 6158
                    • 224 Posts
                    私が書いたサンプルの通りコピー・ペーストすればいいですよ。

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

                    から
                    $url = $baseURL . "/index.php?id=" . $docid;
                    echo "(1): " . $url;
                    
                    if (@$handle = fopen ($url, "r")) {

                    に。

                    (2) を
                    if (@$handle = fopen ("$base/index.php?id=$id", "r")) {

                    から
                    $url = "$base/index.php?id=$id";
                    echo "(2): " . $url;
                    
                    if (@$handle = fopen ($url, "r")) {

                    に。



                    (1): http://localhost/..../index.php?id=1
                    Home, id 1
                    失敗! Could not retrieve document.

                    (2): http://localhost/..../index.php?id=....
                    となると予想してます。
                      • 6158
                      • 224 Posts
                      私も試しにやってみました。やったことなかったので。

                      結果は、"Access permissions" を public 以外にしているドキュメントが失敗
                      していました。他は無事できていました。

                      ただ、設定を以下のようにしたにもかかわらず、ファイルには何も付いていま
                      せんでした。alias のまんま。これは変ですね。ソース読まなきゃ分からない。

                      [table]
                      [tr]
                      [td]Include non-cacheable files[/td][td]: Yes[/td]
                      [/tr]
                      [tr]
                      [td]File prefix[/td][td]: static[/td]
                      [/tr]
                      [tr]
                      [td]File suffix[/td][td]: html[/td]
                      [/tr]
                      [tr]
                      [td]Max export time[/td][td]: 60[/td]
                      [/tr]
                      [/table]