top

XREAでMT3.2をダイナミック・パブリッシングで動かす覚え書き

■設置前の注意点
XREAは基本は無料サーバーです。広告免除権を購入していなければ、広告が自動で挿入されます。ところがMTのバージョン3.17から、この自動挿入広告がMTの仕様と合わなくなり、通常のディレクトリにインストールすると、http://~となるべきところが、included://~になってしまい、エラーになって設置できなくなってしまいました。
これを回避するためには、「x」というディレクトリを作り、そこへMT本体をインストールするようにします(xフォルダはpublic_html以下に作って下さい)。「x」は特別なディレクトリで、ここへ入れると広告が表示されなくなります。MT本体(管理画面)は管理人しか見ない場所なので、広告が表示されないところに設置しても大丈夫です。その代わり、公開するブログは通常のディレクトリにして広告を表示するようにすれば問題なく使うことが出来ます。
広告免除権を購入している場合はどのディレクトリでも設置出来ますので、「x」にする必要はありません。

■MySQLの準備
XREAではMySQLが標準装備されています。ので、MTのデータベースにも迷わずこれを使います。
XREAの管理画面から「データベース」を選んで、MySQLの作成ボタンを押します。この時、アカウント名に-(ハイフン)が含まれているとデータベースが利用できないので注意して下さい。パスワードはデフォルトではFTPパスワードになっているので、自分の好きなパスワードに変えておきます(このパスワードをmt-config.cgiに記入します)。
データベースの作成には2~3時間かかるので、その間に各種設定を済ませておくのがよいです。

■MTのダウンロード
Six Apartへ行き、MTをダウンロードします。ダウンロードにはTypeKeyが必要なので、登録がまだの場合はこちらにも登録します。3.2からは新規インストール版とバージョンアップ版の区別がなくなったので、新規でもバージョンアップでも同じものを使います。

■設定
解凍して出てきたmt-config.cgi-originalをmt-config.cgiにリネームします。設定の必要がある項目から#をとって、各種設定を行います。XREAでは以下の部分だけ#を外せばでOKです。
なお、以下の例では、アカウントがabc、パスワードがabcdefgmtディレクトリにインストールするという前提で設定しています。無料サーバーの人はmtをxに変えて下さい。赤字の部分は各自の設定に合わせて書き換えて下さい。

CGIPath http://example.com/mt/

ObjectDriver DBI::mysql
Database abc
DBUser abc
DBPassword abcdefg
DBHost localhost

DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022

<補足事項>
・CGIPathは、独自ドメインを使っている場合はドメインURLでOKです。
・Database名は最初に作ったものはアカウントと同じ名前になります。2つ目からは「アカウント_1」「アカウント_2」…となるので、この例だと2つ目のデータベースを使う場合はabc_2となります。
・XREAはCGIと画像が同じフォルダに置けるので、StaticWebPathなんたらかんたらは設定する必要はありません。下手に弄らず、#のままにしておくように。

■アップロード
MySQLを作ってから2~3時間以上時間が経って、もう大丈夫かな~と思われるようになったら、ファイルのアップロードに移ります(MySQLの作成には時間がかかりますので、あわててアップしてログインしますとエラーになりますので注意!)。
解凍して出てきた全てのフォルダとファイルを、まるっとそのままmtディレクトリにアップロードします。拡張子を自動判別してアップしてくれるFTPソフトなら、自動のままでかまいません。ファイル数が凄く多いため、一気にアップすると失敗することがあるので、フォルダ毎に1つ1つ丁寧にアップしていった方が間違いないです。

全てアップし終わったら、mt-config.cgiのパーミッションを604にします。
それ以外の拡張子.cgiのファイルのパーミッションは700にします。

■モジュールの確認
XREAは必要なモジュールは全部入っているので、mt-check.cgiを走らす必要はないかと思いますが、試しに走らせてみてもいいです。私も確認してみましたが、SQLiteもちゃんと入ってますね。最後に、「準備が整いました。」と出ればOKです。

■セットアップ
自分のアドレス/mt/index.htmlへアクセスします。ログインリンクがあるので、そこをクリックして中へ入ります。

<新規の場合>
入ると「インストールを続行」ボタンが出てくるので、押すとインストールが始まります。「インストールが完了しました」と出て、「ログインして下さいボタン」が出てくるので、そこから入ります。
最初はログイン名「Melody」、パスワード「Nelson」でログインします。メインメニューから投稿者設定の画面に入り、Melodyを自分の名前、パスワードに変更します。これにてMT導入は完了です。

<アップグレードの場合>
入るとログイン画面になるので、そのまま自分のID・パスワードで入ります。アップグレードボタンが出てくるので、押すとアップグレードが始まります。終ったら「ログインして下さい」ボタンが出るので、そこを押すと管理画面になります。

☆3.2からはmt-upgrade.cgiが自動で新規かアップグレードかを判別して、それぞれに合った指示画面になるようです。便利になりました。

■ダイナミック・パブリッシングを導入する
ここでいよいよダイナミック化です。まず下準備として、ブログを公開するディレクトリ下に「templates_c」というフォルダを作成しておきます。パーミッションは707にします。

次にMTの管理画面→テンプレート→「テンプレート構築の設定」メニューから、「アーカイブ・テンプレートだけをダイナミックに構築する」にチェックをつけて保存します。この時点でブログ公開ディレクトリ下に、.htaccessが自動生成されます。もし、自動生成後にブログの位置を変えるなどした場合は、.htaccessのパス部分も変えておかないとエラーになりますのでご注意下さい(赤字の部分。以下の例はこのブログの場合です)。

## %%%%%%% Movable Type generated this part; don't remove this line! %%%%%%%
# Disable fancy indexes, so mtview.php gets a chance...
Options -Indexes +SymLinksIfOwnerMatch
<IfModule mod_rewrite.c>
# The mod_rewrite solution is the preferred way to invoke
# dynamic pages, because of its flexibility.

# Add mtview.php to the list of DirectoryIndex options, listing it last,
# so it is invoked only if the common choices aren't present...
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.htm default.htm default.html default.asp /wing/mtview.php
</IfModule>

RewriteEngine on

# don't serve mtview.php if the request is for a real directory
# (allows the DirectoryIndex lookup to function)
RewriteCond %{REQUEST_FILENAME} !-d

# don't serve mtview.php if the request is for a real file
# (allows the actual file to be served)
RewriteCond %{REQUEST_FILENAME} !-f
# anything else is handed to mtview.php for resolution
RewriteRule ^(.*)$ /wing/mtview.php [L,QSA]
</IfModule>

<IfModule !mod_rewrite.c>
# if mod_rewrite is unavailable, we forward any missing page
# or unresolved directory index requests to mtview
# if mtview.php can resolve the request, it returns a 200
# result code which prevents any 4xx error code from going
# to the server's access logs. However, an error will be
# reported in the error log file. If this is your only choice,
# and you want to suppress these messages, adding a "LogLevel crit"
# directive within your VirtualHost or root configuration for
# Apache will turn them off.
ErrorDocument 404 /wing/mtview.php
ErrorDocument 403 /wing/mtview.php
</IfModule>
## ******* Movable Type generated this part; don't remove this line! *******

<補足事項>
・ダイナミック・パブリッシングの場合は、拡張子をphpに変える必要はありません。実態はPHPでも見かけの拡張子はhtmlに出来るのがダイナミック・パブリッシングの特徴&いいところです。

とりあえず、この設定でうちのMTは動いてます。

*3.32の導入覚え書きはこちらにあります。

 

トラックバックの一覧

トラックバック 「MTOSのダイナミックパブリッシングがXREAのサーバーで動かないよ」という問題のとりあえずの解決。  »» 2008年1月14日 15:11
「MTOSのダイナミックパブリッシングがXREAのサーバーで動かないよ」という問題のとりあえずの解決。