We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 22382
    • 44 Posts
    こんにちは orzです。さっそく質問で申し訳ないですが、

    TOPページを表示しようとすると読み込み中になるだけで何も表示されず、
    またMODxマネージャにログインしようとすると読み込み中のまま何も表示されず
    途方にくれています。今日から出かけるというのに・・・な状態です。
    再起動かけてみたりとかしましたが、全く効果がありませんでした。

    なお、サーバー内のその他のページは表示できますし、他のデータベースを使用するスクリプトからは
    正常にアクセスできています。

    読み込み中で動かないというあたりからデータベースにはアクセスできる状態にはあるようですが、
    データベース破損とかそういう関係でしょうか。

    トラブル発生前には
    Subsite/Subdomainのカスタマイズ版を導入したくらいです。
    その後TOPページを表示した際にこの異常に気づき、直接データベースから関連テーブルを削除などを試しました。
    http://modxcms.com/forums/index.php/topic,1445.msg10366.html#msg10366

    手のつけようがなく、大変困っております。どなたかアドバイスをお願いできないでしょうか。

    追記
    データベースをリネーム後そちらにアクセスさせるとなぜかうまく表示されました。
    いまだに原因は不明ですが、外出前に復旧できたため嬉しい限りです。
      • 22382
      • 44 Posts
      大変恐縮ですが、関連することについてもうひとつ質問させていただきます。
      サブサイトを作りたいと思い、探してみるとXREAのサポートフォーラムに
      RewriteEngine on 
      RewriteCond %{HTTP_HOST} ^(sub\.site\.com)(:80)? 
      RewriteRule ^(.*) http://www.site.com/test/$1 [R,L]

      を記述するとよいとの書き込みを見つけ、さっさく
      http://www.site.com/test/ 内に.htaccessを入れてみましたが、
      http://sub.site.com/ にアクセスしても http://www.site.com/test/ の内容は
      表示されず http://www.site.com/index.html の内容が表示されるだけでした。
      ちなみにhttp://www.site.com/test/にアクセスすると403エラーが表示されます。

      またMODx フォーラム内でも
      http://modxcms.com/forums/index.php/topic,1445.msg10367.html#msg10367
      の書き込みを見つけましたが、内容がはっきりと理解できない(=英語が読めない)ため
      何かいい日本語情報はないかと思い、検索してみた次第です。

      どなたかヒントや小さなことでもいいのでお願いします。

      追記:勘違いを避けるためにタイトルを変更しました。
        • 8382
        • 253 Posts
        MODxと関係なくapacheの問題として考えますが、sub.site.comへのアクセスはwww.site.comと同じディレクトリを指しているわけですね?すると、そのディレクトリにおいてrewriteengineを働かせないと駄目だと思いますが。
        その.htaccessの内容を直下に移してはいかがと思います。今、私のほうで試せませんのでちょっと無責任ですが
          • 22382
          • 44 Posts
          回答ありがとうございます。

          http://www.site.com/ の.htaccessに
          デフォルトの設定に加えて先の記述を追加すると
          http://sub.site.com/ にアクセスした際403エラーが出てしまいます。
          このときhttp://www.site.com/test/ 自体は参照されているようですが、
          出力はMODxからではなく本当のディレクトリを参照しているようで試しにindex.htmlを
          追加してみるとそちらが表示されてしまいました。

          またhttp://sub.site.com/test1.html と入力すると500エラーが出てしまいます。
          MODxにはhttp://www.site.com/test/test1.html が存在していて、
          本当のディレクトリにはtest1.htmlは置いていません。
          どう設定すべきでしょうか。
            • 8382
            • 253 Posts
            レンサバではrewritelogが取れないでしょうから、rewriteのデバッグは厄介ですね。ところで
            1.MODxのsubsites/subdomainをお使いになりますか?それとも、
            2.サブディレクトリには別のMODxをインストールなさいますか?
            1.ならばプラグインインストールだけでrewriteruleの追加はいらないでしょう。2.ならそのrewriteruleでいいはずだと思いますが。
            少し試験してみます。
              • 22382
              • 44 Posts
              迅速な回答ありがとうございます。

              最初は自分もsubsite/subdomainでしようと思っていたんですが、
              URL http://sub.site.com/ でアクセスした際に同プラグイン内で指定したIDのページ(2)には
              飛ぶんですが、URLが途中で http://sub.site.com/index.php?id=2 と表示されてしまい
              嫌だったのでrewriteでやるしかないと思ったわけです。

              2に関してはできれば一つのデータベースで実現したいと考えているので
              避けたいと思いますが、無理でしたらこちらの方法を取ろうかなと思いました。

              そして前述の通りですが、index.php?id=2 と表示されてしまうことは
              どう解決すべきか教えてもらえないでしょうか。

              topページのIDと404ページのIDはもちろん設定してあります。
              header(’Location: index.php?id=2’);としました。

              それともう一つ同プラグインを使っていてお聞きしたいことがあるんですが、
              http://sub.site.com/ にid2のsubというフォルダを指定した場合
              http://sub.site.com/test1.html にアクセスした際にsubフォルダ内の
              test1.htmlを参照させることはできないでしょうか。

              そうなってくると全てのフォルダをルートディレクトリに作らないといけないため
              できればsubというフォルダ内にサブドメインのドキュメントをまとめて管理したいと
              思っていました。

              それで
              http://modxcms.com/forums/index.php/topic,1445.msg10366.html#msg10366
              にそのプラグインらしきものはあるんですが、それを入れた後に
              突然MODxで管理しているページにアクセスできなくなってしまい、さらには
              MODx マネージャもの表示が1分くらい待たないと表紙゛されなくなったんですが、これは単なる偶然でしょうか。
              (その現象が一番上の書き込みです。)
                • 33488
                • 429 Posts
                ちわ、
                XREAで複数サブドメインを1つのMODxで使っています。(プロフィールのサイトがそうです)
                基本的には、1つのサブドメインでMODxをインストール後(あとでもいいです)に、他のサイトをMODxをインストールしたサブドメインとを同期設定にしておきます。
                同期設定をすると、test1.xxx.com をベースとすると、test2.xxx.com のフォルダはリンクでtest1.xxx.comを指すようになります。

                これで、どちらをアクセスしても同じ画面が出てしまうわけですが・・そこで、プラグインかSubsiteのHACKを用いて別々のものを表示させるということになります。
                ぷちやでは、HACKを使っています。コアをいじるので面倒ですが・・・。
                プラグインの方をみてみると、ちょっと変数の初期化がされてないのでLocationでジャンプしてしかもメインサイトを指してますよね。
                これいらないんじゃないかと思うんですが・・。
                あとは、PageInitで必要なのは、エラーとスタートページの設定になるかと思います。
                Rewriteの方で 
                RewriteEngine on 
                RewriteCond %{HTTP_HOST} ^(test2\.xxx\.com)(:80)? 
                RewriteRule ^(.*).html index.php?q=test2/$1 [R,L]
                


                とかになるんでは??
                フレンドリエイリアスの設定をしておいて、test2用のフォルダのエイリアスをtest2として、そのフォルダ下はtest2用のドキュメントを作っていくとかで・・・。
                重複のエイリアスを許す設定にして、test2フォルダの下にindexのエイリアスを持つドキュメントを作れば、http://test2.xxx.com/ にアクセスすると、上記のtest2/indexがMODxに渡されて無事表示?するはずかと・・。
                もちろん、RewrtieCond でメインのサイトの方はMODxのオリジナルのRewriteも必要です。

                HACK版だとRewrite部分は要らないんですけどね。
                あと、気になるのはStartを変えて、test2用のURLに書き換えてくれるかが・・ちょっと心配だけど。

                サブドメインプラグインはドキュメント表示時のパラメタの書き換えだけなので、壊すような悪さはしないはずです。
                一度、プログラム類を上書きしてはどうでしょ? DBの方は、プラグインが壊してはないはずなので・・。

                  • 22382
                  • 44 Posts
                  返信ありがとうございます。

                  Rewriteでなんとかしたいと思っていたので助かります。
                  さっそく環境に合わせて編集した後に.htaccessに追加しましたが、
                  Home(index)ページが表示されてしまいました。

                  それとSubsite/Subdomainのカスタム版を入れるとやはりアクセス不能になりました orz
                  この前はデータベースだけバックアップして再インストールした後にconfig.inc.phpを書き換えたら
                  うまくいきましたが、やはり原因不明です。ログインだけはできますが、管理画面とMODxで作成しているページが表示できません。

                  ってわけでまた同じ現象になっちゃいました
                    • 8382
                    • 253 Posts
                    takizさん。subsiteだったのですね。うまくできてます。
                    orzさん。
                    xreaユーザのtakizさんの後でもう蛇足かもしれませんが、pluginの場合を少し説明しておきます。
                    シンボリックリンクにしろ、ハードリンクにしろ、VirtualHostで同じフォルダを指定するにしろ、www.site.comとsub.site.comが同じフォルダを意味する場合です。
                    pluginを使用する場合、フォルダがパスについてしまうのは避けられません。rewriteを利用してもmodx内部でリンクが大変な事になります。また、sub.site.comのドキュメントをフォルダへ集めてしまわないと、DropMenuがワヤクチャになります。
                    というわけで、フォルダがパスについてしまうのは御納得いただいた上で、pluginを適当に改造しましょう。
                    $e = &$modx->event;
                    $subdomain = 'sub.site.com'; // your subdomain name here
                    if($e->name=='OnWebPageInit') {
                       $s = $_SERVER['HTTP_HOST'];
                       if($s==$subdomain && $modx->documentIdentifier==$modx->config['site_start']){
                          header('Location: /test2/submain.html'); // start page alias. please care that alias must be unique.
                          exit;
                       }
                       else if($s==$subdomain){
                           $modx->config['site_start'] = 51; // your start page here
                           $modx->config['error_page'] = 40; // your error page here
                           $modx->config['site_name'] = 'Sub Domain'; // your site_name
                       }
                    }

                    rewriteはインストール時の元のままで。もちろん、sub内のテンプレートはbaseタグ(普通は[(site_url)]だろうから問題なし)、DropMenu?startdoc=’サブドメインのフォルダid’などに気をつけて。
                      • 22382
                      • 44 Posts
                      返信ありがとうございます。

                      eastbindさんの作成してくださったpluginを使ったところ無事に転送されるようになりました。
                      確かにルートディレクトリに数個のサブドメイン用フォルダ置いただけでも既存ドキュメントとあわせるとワヤクチャになりそうですね。

                      最初はrewriteかHACKを入れてみようと思っていたんですが、rewriteがうまく動作せず
                      また当方PHPの知識が非常に少ない(0に近い)ためHACKを0.9.21で動作させることができなかったこともあり
                      せっかくrewriteやHACKについても教えてもらったのですが、今回は断念させていただきました。
                      早いうちにPHP習得しないと実感させられる出来事でした。

                      eastbindさん,takizさん こんな時間をかけていろいろ回答してくださって本当にありがとうこざいます。
                      今後のサイトの作成の役に立てていきたいと思います。