« 時給5,000円也。 | ホーム | Lighting Shower »

31 October

Movable Type をPHP化に挑戦

もうかれこれ1年ぐらいものブログを更新し続け、ページ数が増えてきたせいか、リビルドのとき、「Internal Server Error」と途中で中断されてしまう現象が度々起こるようになった。 さくらが、CGIの実行に制限をかけているのか、リビルドcgiの動作が中止されるのだろうかと思い、「 mt-config.cgi 」を編集して、リビルド時の負荷分散を行う対策をとってたが、100ページを越えると、どうにもこうにも時間がかかるのでPHP化に踏み切りました。
あと、カテゴリーや月別のページ数が増えてきて、ページの分割もしたかったってのもあるけど。

インターネット上のいろんなサイトを参照しながらやっとこ終わったので、備忘録として残しておくことに。
結構、自分と同じ環境でMovableTypeのPHP化というのが少なかったので、誰かが同じことをやるときの参考にしてもらえれば幸いです。

変更前の環境

Ver.:Movable Type 3.2
サーバ:さくらレンタルサーバ
DB:MySQL
アーカイブの拡張子:html
アーカイブ・マッピング
エントリー:yyyy/mm/entry_basename.html
日付アーカイブ(日別):yyyy/mm/dd/index.html
日付アーカイブ(月別):yyyy/mm/index.html
カテゴリー:category/sub_category/index.html

PHP化の変更手順
1)環境設定⇒設定⇒公開タブ
アーカイブの拡張子を「php」(ドットなし)に変更してリビルド

2)FFFTPなどで見てみるとhtmlファイルと、同じ名前のphpファイルができていると思います。
メインページ・アーカイブページのhtmファイルを削除します。

ロリポップなどの場合、これでPHP化は終了です。簡単です。
が、さくらの場合、ここから一手間かけないとPHP化が終わりません。試しに、変更するページのPHPファイルを見てみましょう。(例:「http://○○○/blog/index.php」)変更中のサイトは見れないと思います。
理由として、さくらでは、パーミッションが「755(705)」でないとPHPが動いてくれないのです。なので、FFFTPなどでindex.phpのパーミッション(属性)を「755」にしてみると表示されるはずです。

いちいち、手動で何百のファイルを変更していくのはかなりの手間です。時間の無駄です。
なので、参考にさせてもらったサイト「ツール・ド・もんち」さんの手法を使いました。「7.パーミッション自動付加の設定」というところを参考にしました。以下はコピペです。
---
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に変更されるはずです。ただ、一つだけ留意事項があります。
この方法ではフォルダのパーミッションまでは変更してくれませんので注意。フォルダは手動で設定変更しましょう。
---

パーミッションの自動設定等が終わったら、特に設定の必要はないのですが、Indexファイルの設定を行っておくといいと思います。これは、さくらでは優先してIndex表示させるファイルとして、「index.html」「index.htm」しかデフォルトで登録されていなかったのです。ファイルアクセスの設定としては
ⅰ:さくらサーバコントロールパネルからログイン
ⅱ:「ファイルマネージャー」を選択
ⅲ:右上の「>> ウェブアクセスの設定」を選択
ⅳ:「Index ファイル」の項目に、「index.php」を追加し保存
で、設定は完了です。

« 時給5,000円也。 | ホーム | Lighting Shower »

トラックバック(1)

Movable Type をPHP化に挑戦 - MISHUKU.net / FREE STYLE 続きを読む