Movable Type でサブドメインを利用する場合の設定
インストールした Movable Type で複数のブログを作成し、各ブログに異なるドメインを設定した場合の対処方法です。
以前質問を頂いたので、情報展開しておきます。
結論から申し上げますと、mt-config.cgi のパスを変更する必要があります。
インストール後の mt-config.cgi の CGIPath(アプリケーションディレクトリを示す)と StaticWebPath(スタティックディレクトリを示す)のパスは、次のようなドキュメントルートからの記述になっています。
#======== REQUIRED SETTINGS ==========
CGIPath /cgi-bin/mt/
StaticWebPath /cgi-bin/mt/mt-static/
本来のドメインが
foo.com
である場合、mt.cgi のパスは
http://foo.com/cgi-bin/mt/mt.cgi
となりますが、サブドメイン sub.foo.com では、mt.cgi のパスを
http://sub.foo.com/cgi-bin/mt/mt.cgi
と認識してしまい、(サブドメインの物理パスはドメインと異なるため)CGI が正常に動作しません。これはドメインの部分に、ブログの「サイトパス」を結合しているのが原因です。
ということで、サブドメインなど、本来のドメインと異なるドメインから、正しいアプリケーションディレクトリやスタティックディレクトリを参照させるには、FTP ツールで mt-config.cgi をダウンロードして、CGIPath と StaticWebPath をそれぞれ、
CGIPath http://foo.com/cgi-bin/mt/
StaticWebPath http://foo.com/cgi-bin/mt/mt-static/
と、ドメインを加えた URL に書き直す必要があります。
実際に、ページに出力されて影響がある部分は、CGIPath については、いわゆるCGI(コメント・トラックバック・検索・XMLRPCなど)の起動部分や、mt.js が該当します。
StaticWebPath(mt-static)については、デフォルトテンプレートでは、クレジットバナーやフィードアイコンなどへの参照があるようです。
デフォルトテンプレートのテーマファイルの参照は、MTStaticWebPath タグが使われているので、この変更ですべて対処されると思ってますが、他にも適用箇所があるとか、プラグインとかで対処できるといった認識誤りがありましたらご指摘ください。スタイルを切り替えた場合に影響があります。
上記を含めた、サブドメインについての詳細は、「Movable Type 4.2 パーフェクトガイド」の7.1に解説しています。
Movable Type 4.2 パーフェクトガイド 荒木 勇次郎 毎日コミュニケーションズ 2008-07-31 売り上げランキング : 1457 Amazonで詳しく見る by G-Tools |
- MovableTypeプラグインの独自CGIをNginxに対応させる方法
- Movable Type 5で「Got an error: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)」というエラーになる場合の対処
- 旧バージョンのMTでPerl5.26(Perl5.24以降)に対応する方法
- MT6.2のファイルアップロードで「Undefined subroutine &POSIX::strftime」になる問題の対処
- Movable Typeのファイルアップロードで「アップロードしたファイルは大きすぎます。」というエラーになる場合の対処
- Movable Typeのパスワード変更で「URLが不正です。」というエラーなる件についての対処
- Movable Typeで「Cannot find column 'blogs' for class 'MT::Blog'」となる場合の対処
- Movable TypeでMTPageNextタグが効かなくなる不具合について
- Movable Typeの復元で「Request-URI Too Large」になるときの対処
- サーバ故障と「Connection error: Too many connections」エラーおよびMySQLテーブル破損について
- Movable Typeでエラー発生箇所を特定する方法
- IE9でMovable Typeを利用する方法
- MTIfタグにtagモディファイアを利用する場合の注意事項
- Movable Type 5のブログの設定で「Can't call method "label" on unblessed reference」が発生する問題について
- Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)
≫ サブドメインで Movable Type 4 を設定してみる(少しまとめ) from 「翻訳会社、やってます!」奮闘記 Part2
non さんから、Movable Type 4 をサブドメインで使用する設定について、ご質問をいただいたので、少しまとめてみました(それでも覚え書きレベル... [続きを読む]
初めまして。
貴重な情報が満載なので、大変助かっております m(_ _)m。
MT をサブドメインで使用する場合、mt-config.cgi の修正の他に、styles.css へのリンクを絶対パスで指定しました(@import が読み込めないようでした)。
これでよかったのでしょうか。
ご教授いただければ幸いです。
>ishidaさん
こんにちは。
情報ありがとうございました。
まず、前提として、
<link rel="stylesheet" href="<$MTLink template="styles"$>" type="text/css" />
の、MTLinkタグに問題があるので、href属性を絶対パスに変更する必要がある、と理解しました。
MTの動作を確認してみたところ、サブドメインのブログのlink要素は、
<link rel="stylesheet" href="[http://サブドメイン/styles.css]" type="text/css" />
となり、サブドメインにはstyles.cssが出力されているので、この点については問題ないように思われます(ただし、元ドメインのスタイルを使いたい場合は変更する必要があります)。
また、styles.cssの内容は
/* Default Layout: */
@import url(http://元ドメイン/mt-static/themes-base/blog.css);
@import url(http://元ドメイン/mt-static/themes/minimalist-red/screen.css);
となるので、個人的にはlink要素の変更は不要と感じました。
認識誤りがありましたら、ご指摘頂ければ幸いです。
それではよろしくお願い致します。
初めまして。
サブドメインで公開しようとしてうまくいかず、検索していたらこちらの記事をみつけました。
実は、記載されているように設定を変更したのですが、うまくいかず、最終的には表示がおかしくなってしまいました。
どうしていいのか分からず困ってコメントをしました。
お忙しいところ大変恐縮ですが、お時間ができてからで構いません。
どこを、どう直したらよいのか教えてくださいませ。
※サブブログ:http://tunagaru-goen.net/bridal/
サブドメイン:http://bridal.tunagaru-goen.net
>akemi-kさん
こんばんは。
ご質問の件ですが、頂いた内容では、何がどのようにうまくいかないのかが分からないため、要望されている内容と、現在どのような不具合が発生しているかをお知らせください。
それではよろしくお願い致します。
お忙しい中ありがとうございます。
実は、あれこれやっていて表示されなくなったり、うまくいったかと思えば、アーカイブをクリックしたらテンプレートを読み込んでいなかったりして、疲れてしまいました。
そこで、新たなサブブログでも試してみたのですが、こちらは完全にテンプレートを読み込まなかったので、最終的には元に戻しました。
せっかくお返事を頂きましたが、サブドメインを使わない方向でいこうと思いますので、どうかお赦しくださいませ。
それから、Movable Type 4.2 パーフェクトガイドを購入して今日届きました。
少しずつ勉強させていただきます。
本当に、ご迷惑をおかけしました。
MT4.23-jaを使用しています。
サブドメインhttp://sub.domain.comでブログを作成しておりますが
うまく解決できない問題がありますので教えてください。
サブドメインxsub.domain.comでサイト内検索を行うと、
メインのドメインhttp://www.domain.com配下の
mt-search.cgiが使用され、URLもメインのドメインとなってしまいます。
各ページではjavascriptを使って、サブドメインsub.domain.comから
ファイルをダウンロードして、その一部を表示する機能(リンク)があり、
検索結果のページにも同様の機能を使いたいのですが、
メインのドメインからはサブドメインのファイルを
ダウンロードして表示することができないようです。
(セキュリティ上、javascriptで他のドメインのファイルを操作できないらしい?)
サブドメインの配下にmt-search.cgiを作成して
使用できればよいような気がするのですが、
そのようなことは可能でしょうか。
またはその他の解決方法があるのでしょうか。
教えていただけないでしょうか。