お知らせ

Movable Type 5.1 Webサイト製作ガイドVolume 12011年6月30日

Movable Type 5.1 Webサイト製作ガイドVolume 1」を発売しました。
Movable Type 5.1を基本からしっかりマスターしたい方のための書籍です。
前書「Movable Type 5 Webサイト製作ガイド Volume 1」をMovable Type 5.1対応に改訂しました。 Movable TypeでWeb製作をされている方などにお勧めです。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

MTでステージングサーバーと公開サーバーを分ける際の基本

| コメント(3) | トラックバック(0)

Webサイトを製作する際に、テスト用のサーバー(ステージングサーバー)でテストを行って、完成したサイトを本番用の公開サーバーに転送することは、よくあることです。
Movable Typeでは、比較的簡単に、このような運用方法を取ることができます。
その基本的な方法を紹介します。

1.URLの置換

Movable TypeのURL関係のテンプレートタグでは、通常はURLにドメイン名の部分が含まれます。
ところが、ステージングサーバーと公開サーバーは、URLが異なります。
そのため、ステージングサーバー用の設定でファイルを出力すると、公開サーバーとはURLが違うので、公開サーバーにファイルを転送しても正しく動作しません。

そこで、ステージングサーバーと公開サーバーのディレクトリ構造を一致させた上で、URLに「http://ドメイン名」の部分を含まないようにすることが考えられます。
それには、Movable Typeに含まれる「replace」というグローバルモディファイアを使います。

まず、ステージングサーバーのMovable Typeのウェブサイト(またはブログ)で、その環境でページを表示できるように、サイトURL(またはブログURL)を設定し、動作を一通り確認します。
その後に、インデックス/アーカイブ/システムの各テンプレートの先頭に、以下のタグを追加します。

<mt:Unless name="hogehoge" replace="http://ステージングサーバーのドメイン名/","/">

例えば、ステージングサーバーのページのアドレスが「http://www.foo.com/~」になるなら、各テンプレートの先頭に以下のようにタグを追加します。

<mt:Unless name="hogehoge" replace="http://www.foo.com/","/">

また、各テンプレートの最後には以下のタグを追加します。

</mt:Unless>

テンプレートの先頭の時点では、「hogehoge」という変数は宣言されていないので、MTUnlessタグの条件が成立し、ブロック内部(=元のテンプレート全体)が再構築されます。
そして、replaceモディファイアによって、MTUnlessタグのブロック内部(=元のテンプレート全体)に含まれる「http://ステージングサーバーのドメイン名/」が、「/」に置換されます。

2.ローカル環境で公開環境のURLをエミュレートする

XAMPP等のローカル環境でテストして、できたサイトを公開環境に転送する場合、ローカル環境で公開環境のURLをエミュレートする方法もあります。
1.の作業(URLの置換)よりも、こちらの方が作業が楽です。

例えばXAMPPの場合、「http://localhost/・・・」のアドレスにアクセスすると、XAMPP上に作ったテストサイトを表示することができます。
ところが、設定を上手く行えば、「http://公開サーバーのアドレス/・・・」にアクセスしたときに、自分のマシンでのみ、XAMPP上のテストサイトが表示されるようにすることができます。

それには、「hosts」というファイルを書き換えます。
hostsファイルは、ホスト名(www.○○○.com等)とIPアドレスの関係を記述したファイルです。
通常は、DNSを使ってホスト名をIPアドレスへ変換しますが、hostsファイルにホスト名とIPアドレスの対応が書いてあると、そちらが優先されます。

この仕組みを使って、公開サーバーのホスト名から、自分のローカル環境のIPアドレスに変換するようにします。
こうすれば、自分のマシンでのみ、公開サーバーのアドレスにアクセスしたときに、XAMPP等のページが表示されます。

Windowsの場合だと、Cドライブ→「windows」フォルダ→「system32」フォルダ→「drivers」フォルダ→「etc」フォルダに、hostsファイルがあります。
管理者権限でメモ帳等を起動してhostsファイルを編集できる状態にし、ファイルの最後に以下を追加します。

127.0.0.1 公開サーバーのホスト名

例えば、公開サーバーのホスト名が「www.foo.com」なら、hostsファイルに以下を追加します。

127.0.0.1 www.foo.com

また、Mac OS X 10.6だと、/etc/hostsファイルを編集します。
ファイルに追加する内容は、Windowsの場合と同じです。

この後、Movable Typeのウェブサイト(またはブログ)でサイトURL(またはブログURL)を設定しなおし、公開サーバーのアドレスでページが出力されるようにして、テストを行います。

なお、テストが終わって公開サーバーにファイルを転送したら、hostsファイルに追加した行を削除して、通常通りに公開サーバーにアクセスする状態に戻します。

Facebook連携

当記事について「いいね」や「送信」を行っていただけると幸いです。


この記事についてウォールに投稿

トラックバック(0)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/2162.

コメント(スレッド2件,コメント3件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 スタッフTOKI : 「1.URLの置換」について

壱さん、質問に答えて頂きありがとございます。
早速試してみました。

トップページは問題なく、本番サーバーでも
テストサーバーと同じように表示されましたが、
ブログ記事やフォルダの下にあるウェブぺージなどが
同じように表示されませんでした。

方法がありましたら、教えてください。
どうぞよろしくお願いします。

No.2  : Re:「1.URLの置換」について

>スタッフTOKIさん
こんにちは。

ブログ記事のページのソースを見てみて、置換がうまくいっているかどうかを確認してみてください。

また、MT標準のテーマを使っている場合だと、ブログ/ウェブサイトのディレクトリファイルだけでなく、MTのディレクトリの中の「mt-static」ディレクトリのファイル(画像はCSS等)も参照しています。
それらのファイルも本番サーバーにコピーする必要があります。

No.3 スタッフTOKI : Re:「1.URLの置換」について

壱さん、こんにちは。

>ブログ記事のページのソースを見てみて、置換がうまくいっているかどうかを確認してみてください。
置換はされていました。

「ブログ記事リスト」「ブログ記事」の2つのテンプレートの
として
『../』に置換すると、表示は同じになりました。

「ウェブページ」の場合、フォルダがルートになったりサブフォルダになる事があると『../』ではダメですね。
ウェブページを全てサブフォルダの配下にするようにすれば『../』でもいいかもしれません。
試してみます。

他に方法がありましたら、教えていただければ嬉しいです。

コメントする


Facebookでコメント

試験的にFacebookのコメントフォームを設置しました。