MovableTypeのPHP化

テンプレートを一新するのと同時にMovableTypeのPHP化にチャレンジしてみました。
環境はMovableType3.2-ja-2にさくらインターネットです。

以前、PHP化を図ろうと作業をしたところ、途中で挫折してしまった経緯があります。
今回は、ページ分割とモジュール化による再構築の高速化の恩恵を受けるべく頑張ってみました。
なお、作業に入る前にブログ全体のバックアップを必ず取っておくことをお勧めします。

以下に備忘録として記述します。

1.拡張子の変更(html→php)
MovableType管理画面から、メインメニュー>環境設定>テンプレート>インデックス>メインページの出力ファイル名をindex.htmlからindex.phpへ拡張子を変更(他にPHP化をしたいページも同様に変更)します。

2.XML宣言の修正
各テンプレートの一行目にXML宣言

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>

がある場合、削除するか下記のように書き換えます。

<? echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>

3.アーカイブ拡張子の変更
次に、メインメニュー>環境設定>設定>公開>アーカイブの拡張子をhtmlからphpへ変更します。
画像ポップアップでInternal Server Errorが発生したのでこの部分の設定を元に戻すことにしました。
アーカイブの拡張子の設定は次項の4で個別に指定しているので問題ありません。

4.アーカイブ・マッピングの変更
同じくメインメニュー>環境設定>設定>公開>アーカイブ・マッピングを下記のように変更します。

個別エントリーアーカイブ

<$MTArchiveDate format="%Y/%m/%d-%H%M%S"$>.php

日別アーカイブ

<$MTArchiveDate format="%Y/%m/%d/"$>index.php

月別アーカイブ

<$MTArchiveDate format="%Y/%m/"$>index.php

カテゴリーアーカイブ

cat_<$MTCategoryID$>.php

上記は例ですので各自設定して下さい。

5.サイトを全て再構築します。

レンタルサーバによってはここまでの作業で設定終了になる場合もありますがSAKURA Internetでは以下の設定を必要があります。
この作業をしないと「500 Internal Server Error」になります。
SAKURA InternetのFAQにもこれに関する記述がありました。

「さくらのレンタルサーバ」ではPHPはCGI形式で動作しています。

該当ファイル(???.php)に実行権限を与えてお試しください。([644] → [755] または [705] にパーミッションを変更してください)

該当ファイル(???.php)を設置しているフォルダのパーミッションが [777] または [707] などのように所有者以外に書込権限を与えているとエラーになります。フォルダのパーミッションを [755] または [705] に変更してお試しください。

ということで作業の続きです。

6.パーミッションの変更
FTPを使い対象となる”???.php”ファイル及びフォルダ等のパーミッションを全て755または705に変更します。
ただ、FTPを使い手動でパーミッションを変更する場合、対象となるファイル数が多いと作業が大変です。
事項ではPHPファイルのパーミッションを手動でなく、再構築するだけで変更する方法も併せて紹介します。
この時点で、パーミッションの変更(755or705)が済んだページは無事に表示されるはずです。

7.パーミッション自動付加の設定
パーミッションの変更以前に作成されたファイル及びフォルダについては、前項の作業で表示可能なパーミッション(755or705)に設定されましたが、これから作成される新規ファイル(phpファイル)及びフォルダについては、表示不可能なパーミッションで作成されるため設定変更が必要となります。
ここでは、MTディレクトリ(インストール環境によって異なります)の”mt-config.cgi”を修正することで、新規ファイル(phpファイル)及びフォルダをMT側でパーミッションを変更することが可能です。

— “mt-config.cgi”の186~189行目あたり —
# DBUmask 0022
HTMLUmask 0022
# UploadUmask 0022
DirUmask 0022

— “mt-config.cgi”の201~202行目あたり —
HTMLPerms 0777
# UploadPerms 0777

上記の項目は、変更前の状態では全てコメントアウトされていますが、3箇所のコメントアウト(#)を外し設定を有効にします。
これで、新規作成されるファイル(php)やフォルダのパーミッションに755が自動的に付加されます。

併せて、PHPファイルのパーミッションを手動でなく、再構築するだけで変更する方法を併せて紹介します。

— “mt-config.cgi”の186~189行目あたり —
# DBUmask 0022
HTMLUmask 0022
# UploadUmask 0022
DirUmask 0022

— “mt-config.cgi”の201~202行目あたり —
# HTMLPerms 0777
UploadPerms 0777

パーミッションの自動付加と設定が似ていますが、この設定で保存し再構築を実行するとファイル(php)のパーミッションが755に変更されるはずです。
ただ、一つだけ留意事項があります。
この方法ではフォルダのパーミッションまでは変更してくれませんので注意。フォルダは手動で設定変更しましょう。

8.ページの確認
“index.php”など変更したファイルにアクセスし、ページがきちんと表示されるか確認してください。
確認される場合は、http://blog.monchi.jp/index.phpといった感じで、最後までアドレスを指定して確認することをお勧めします。
これは、htmlからphpへ変更してもサーバ内には”index.html”ファイルが残っているため、サーバによっては優先的に”index.html”ファイルにアクセスされる可能性があるためです。
ページ(表示)等の確認がとれたら、最後にhtmlファイルを削除します。

9.その他
その他、作業を実施して気付いた点です。
サクラインターネット(さくらサーバ)でディレクトリにアクセスがあった場合、初期設定では”index.html”と”index.htm”にしかアクセスをしません。
例えば、”http://blog.monchi.jp/”でアクセスしたとき、”index.html”か”index.htm”のどちらかのファイルがあれば読み込んで表示されますが、”index.php”は自動的に読み込みにいかないためエラーメッセージが返されてしまいます。
これを解決するには、さくらインターネットサーバコントロールパネル>運用に便利なツール>ファイルマネージャー>ウェブアクセスの設定(画面右上)の中でデフォルトファイル>デフォルトファイルの名前の欄に”index.php”を追加します。
あと、上記設定とあまり関係はありませんが、”ファイルが存在しない場合の動作”の項目で”アクセスを拒否する”に変更することで、フォルダ内(のファイルリスト)を見えなくする(エラーメッセージを返す)ことができます。

▽参考サイト
小粋空間:PHPモジュール化の仕組みについて(その3:変更方法)
luna’s*PaPa:Movable Type の PHP化(その2)
.Fav(blog):さくらインターネットにてPHPモジュール化にチャレンジ

  • このエントリーをはてなブックマークに追加

関連記事

  1. NO IMAGE
  2. NO IMAGE
  3. NO IMAGE
  4. NO IMAGE

    2006.04.25

    Favicon
  5. NO IMAGE

    2006.04.08

    Lightbox JS
  6. NO IMAGE
  1. ヒロッチ 2006.04.05 6:21pm

    ん~、何が何だか分りません┓(´_`)┏

  2. もんち 2006.04.06 12:05am

    正直、自分も見よう見まねで作業をしているので理解度は?です(汗)
    しかしながら、分からないなりにその過程を楽しんでいるのも事実でありまして、この部分は好きこそものの上手なれの要素が強いジャンルかもしれませんなぁ。

  3. KOO 2007.03.02 5:50pm

    はじめまして!
    パーミッション自動付加の設定なんですが、mt-config.cgiに表記されているような項目が見当たりません。
    旧バージョンではあったんだろうと思うますが、現行Ver3.34ではどのように修正する事で可能なのでしょうか?

  4. もんち 2007.03.02 8:24pm

    KOOさん、はじめまして、今晩和♪
    MT3.3以降からmt-config.cgiはかなり簡略化されていて、データベースの設定くらいしか記述されていないと思います。
    7.パーミッション自動付加の設定を新たに追加して下さい。

2006年4月
« 3月   5月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30