We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
  • 問題点と思えそうなものをひとつ見つけました。参考程度にお付き合いください。
    僕自身よく理解できてないので、とりあえずメモ書き程度にトピ立てます。

    http://modxcms.com/bugs/task/163

    おそらくココに書いてある内容が、それと認識されているものだと思います。
    そうだとすれば解決は時間の問題と言えそうですが。

    で、どういう問題かというと。

    http://mooo.jp/cub5

    Googleでの検索結果です。MODx Parse Errorの表示です。
    ところが実際にページを開いてみると、ちゃんと表示されていることが多い。
    なぜこの問題に気付いたかというと、検索エンジンとは相性がいいはずの
    MODxなのに実際にはなかなか成果が上がらないサイトがあったからです。

    それでFEED Validator(http://feedvalidator.org/)や
    HTML-lintなどで確認してみたら、どうやらIEやFireFoxなどでは確認
    できないエラー表示に気付いたというわけです。つまり、Googleからは
    こういうふうに見えていたのかもしれないなあ、と。
    そういやGoogle Sitemapsでは目視では正常なのにいつもエラー扱いでした。

    で、とりあえずの対症療法を見つけました。「MODx設定」で
    「訪問の記録」をオフにするとエラーが表示されなくなるみたいです。
    とりあえず個人的にはそれで解決でいいのですが。

    「MODx Parse Error」で検索すると、このMODxフォーラム全体でも
    わりと多くの情報が得られるみたいですが、まだじっくり目を通せてません。
    また何か気付いたら報告します。

    みなさんも気になるようであればHTML-lintなどで確認してみると
    もしかするともしかするかもです。 shocked

    「こういう設定を試してみてくれ」といったものがあれば気軽に言ってください。
    人柱として、できる範囲で試してみます。
    ちなみにxrea s173およびs176サーバです。MODxのバージョンは最新の0.9.21。
    さくらのレンタルサーバで運用しているサイトも2つありますが、それはどちらも
    問題なしでした。xreaとの違いというとセーフモード稼働かな?

    HTML-lintじゃなくて、ブラウザ in ブラウザみたいなサービスはなかったかな?
    そういったサービスで表示を確認してみるのが分かりやすそう。
      • 8382
      • 253 Posts
      そのエラーは、むしろ
      http://modxcms.com/bugs/task/296
      こちらのものですね。
      「訪問者の記録」(visitor logging)は0.9.5でSlimstatに置き換わるそうなので、
      そうなれば1件落着といけばよいのですが。
      WebLoginも怪しそうですが、このエラーを確実に起こす方法ありますか?
      User-AgentをgooglebotやHTML-lintのものにしてみましたが、まったく再現しません。(あたりまえ? wink
      • どうもです。そのSlimstatも試してみましたが、やはりMODx Parse Errorでした。
        ブラウザでは問題なく表示されているのが気付きにくく始末が悪い。

        さくらインターネットとland.toで立てているサイトは問題なく、xreaで運用して
        いるサイト2つだけがこの状況です。phpinfoをよく比べてみて、xreaと同じような
        条件になるようにすればさくらやlandtoでも再現できるかもしれないですね。
        あとで調べてみます。セーフモード稼働だから、ってことも関係ありそうかな?

        11時30分追記。今回の対応(訪問記録をオフにすること)で、ようやく検索
        エンジンの検索結果一覧のトップに表示されるようになりました。
        今まで最下位だったので違いが大きいです。(社名で検索して30件中30番目)
        そうかー、こんなところで足を引っ張ってたのか :’(

        これではアクセス解析ができないので、引き続き調査してみます。クセのある
        さくらで比較するのは問題の切り分けがしにくいので、ロリポップで再現条件を
        探してみます。なんらかの条件でheaders already sent ってことになるわけですね。
          • 33488
          • 429 Posts
          そういえば・・・ぷちやでも訪問者の履歴はOFFにしています。land.toでもOFFにしてます、そーいえば。

          根本的な原因はわかってはいませんが、ほかのアクセス解析とかいろいろと試したりしたときもIncludeで動かすと同じことになりました。
          対処療法的に結局今はJavascriptで動かしたりしてたりしてます。
          今はSlimStatとpphloggerの2つを入れてます、前者はプラグインで呼び出して、後者はJavascriptで呼び出してです。
          SlimStatは、日本語化対応できてないので 検索キーワードに関するところだけ直したような・・記憶が薄れてますが、先月ぐらいにやったような気がします。

          pphloggerをIncludeで呼び出した場合に出るのは、クッキーをセットするのでそれが問題だったような気がしていますが、ほかのものの場合の原因は完全に掴めていません。
          全然、役に立ってないコメントですが・・同じ問題だったなぁとつい・・ embarrassed

            • 8382
            • 253 Posts
            私の環境ではどうやっても再現しないので tongue
            PHP設定で関係しそうなoutput_bufferingやoutput_handler、session_cache_limiterまで試したんですが... :’(

            お聞きしたいのですが、もしやhttpサーバはapache 1.3.xでmod_gzip入りって事は無いですよね?
            • phpinfoのLoaded Modulesで見てみると、たしかにmod_gzip入ってます。(Apacheは1.3x)
              問題のないロリポップ・さくらにはmod_gzipはありません。

              http://www.port80software.com/surveys/top1000compression/#checkyoursite
              参考情報。上記のURLで確認すると、zlib.output_compressionをオフにしているにも
              関わらずxreaのサーバでは「gzipで圧縮されています」と結果が出ます。
                • 8382
                • 253 Posts
                ありゃ、入ってますか shocked
                それじゃ試しに.htaccessに「mod_gzip_on No」と書き入れてみてくれませんか?
                • さっそく試してみましたが状況変わらず。MODx Parse Errorでした。
                  (先述のprot80software.comでは「圧縮シテナイ」に変わってたのを確認)
                  Warning:  Cannot modify header information - headers already sent by (output started at /virtual/*****/public_html/*****/manager/includes/document.parser.class.inc.php:466) in /virtual/********/public_html/*****/manager/includes/document.parser.class.inc.php on line 430

                  ちなみにエラーの内容は上記のとおり。これはサーバ側が表示しているアラートですよね。
                  document.parser.class.inc.php(※MODx0.9.2.1)の466行目と430行目と。

                  そして上記のアラートに続いて、
                  <html><head><title>MODx Content Manager  » </title> 
                        <style>TD, BODY { font-size: 11px; font-family:verdana; }</style> 
                        <script type='text/javascript'> 
                        function copyToClip() 
                        { 
                          holdtext.innerText = sqlHolder.innerText; 
                          Copied = holdtext.createTextRange(); 
                          Copied.execCommand('Copy'); 
                        } 
                      </script> 
                        </head><body> 
                        <h3 style='color:red'>« MODx Parse Error »</h3> 
                        以下省略

                  と続きます。

                  ちなみに先にも書きましたが、IEやFirefoxなどでは普通に表示されています。
                  html lint やrss validなどを通して見た場合のみに見られる、エージェントの違いに
                  依存するタイプのエラー表示です。
                  (このトピを途中から見た人には分かりにくいと思うので、念のため書いておきます)
                    • 33488
                    • 429 Posts
                    eastbindさん、
                    [mod_gzip_on No]は小技としてありがたく覚えておこうと思います。
                    早速、これをNoにしてPHPのCompressionをONにしてみました。

                    yamaさん、
                    これXreaですよね?
                    slimstatとかほかのものを呼び出してはいないんですよね?

                    Win版のwgetでダウンロードしても同じことになりますかね・・・

                    • slimstatを呼び出したり「訪問の記録」をオンにしたりするとこのエラーが出ます。
                      つまり対応方法はあるけどアクセス解析ができなくなるから不便。
                      (JavaScriptトリガータイプなら問題ないけどロボットを補足できない)

                      サーバはs176とs173。
                      document.parser.class.inc.phpを開いてみると、
                      466行目は「ob_end_flush();」、430行目は「header($header);」。

                      なるほどwgetなんてものが。html lintではなくwgetを使ってみます。
                      試してみたところ、wgetでhtml lintと同様の出力を確認できました。
                      こっちのほうが分かりやすいです。

                      以下、ほとんど個人的なメモ書き。
                      slimstatというとOnWebPagePrerender。たぶん「訪問の記録」も
                      同様のロジック。「headers already sent」がこれと関係あるかどうか。
                      http://modxcms.com/event-prerender.html