- 2009年3月 6日 00:48
- Diary | Movable Type
久しく更新していなかったこのブログ。
思い切ってリニューアルしました。
“黒”から“白”へ思い切ってリニューアルしました。
そればかりではありません。
ついに、php化しました。
ホンネをいうと少し飽きてきたんです。
イヤ、このブログ以外に、こづかい稼ぎ用のブログの更新が忙しくて・・・
で、当然、そうゆうブログはアクセスを集めるために、色々工夫をするけど
このブログはあんまりその辺を意識して更新してませんでした。
このブログは、私が初めてMovable Typeで作ったブログ。
当然、初心者が作るものだから色々稚拙な部分があるのは確か。
こづかい稼ぎ用のブログを作る過程で、当然ながら、技術や知識が
それなり(あくまでもそれなりです)に身に付いてくると
デフォルトのテンプレートに少し手を加えただけのデザインとか、
ゴチャゴチャしたサイドバーとか、
まったくSEOを意識してないところとか、
80エントリー近く記事がありながら、htmlで運用しているところとか、
どうも、イケてないなぁと、思い始めたわけです。
とは言え、少ないながらも、それなりにアクセスがあるし、
自分の原点とも言えるブログなので、
ここで、補完計画を実行をすることにしました。
【*Marquee Moon補完計画】
- php化し、軽量化&再構築の時間短縮
- デザイン・テンプレートの変更
- 白系のデザインに変更
- ウィジェットの整理
- トップバナーも画像変更
- ブログタイトルの画像化
- SEO対策
- 更新pingの整理
- 各サーチエンジンにサイトマップ送信
- ソースコードを美しくする。
というか、アタリマエの事が全然できてなかですね。
というわけで、今回は「ブログ補完計画」の
第一弾の“php”化にチャレンジ!前編です。
まずは、Movable Typepをリリースされたばかりの
4.24にアップグレード。
ますは、情報収集。
php化に関しては、よく世話になっている、
Movable Typep備忘録と小粋空間で丁寧に解説れてます。
中でも、Movable Typeb備忘録の「MovableTypeをPHP化する」という記事の
内容はかなりわかりやすく、php化した際に一番の懸念となっている
リダイレクトの方法についても、同じく、Movable Typeb備忘録の
「MovableTypeで楽にリダイレクトする」詳細に記述されてます。
で、実際、私がたどった手順を解説すると
(1)パーミッションの設定
まず、現在使っているのはさくらレンタルサーバーでは、パーミッションが
ディレクトリ、ファイル共に、755か、705でないとphpが動かないので、
以下の記述をmt-config.cgiに加えます。
HTMLUmask 0022
DirUmask 0022
UploadUmask 0022
DBUmask 0022
HTMLPerms 0777
UploadPerms 0777
こうする事で、今後生成されるファイルはパーミッションが“755”になります
が・・・、今まで作ったディレクトリは変わらないので、
これは手作業でパーミッションを変えます。
この作業で1時間ほどかかりました。
(2).htaccessファイルの生成準備
php化することによって、URLが変わるので、旧URLからアクセスできるように、
リダイレクト(転送)させます。
そのために、.htaccessを生成します。
.htaccessは普通のテキストエディタで充分つくれます。
あるURLから、URLに転送する場合は、
Redirect permanent url-path url
この場合、“url-path”はルートディレクトリからの絶対パスで、
”url”は、いわゆるURLになります。
なので、このブログの場合、トップページの場合、ドメイン名とルートディレクトリ名が同じで、
その直下に、トップページを置いているのでこうなります。
Redirect permanent /index.html http://marqueemoon.info/index.php
これを、必要なページ分つくるわけですが、そんなもの一つ、一つ手で
作ってられないので、インデックステンプレートを追加して処理します。
このテンプレートもMovable Typep備忘録ので書かれたものを利用します。
Movable Typeb備忘録のテンプレートを利用する際は、MTRelativePathという
プラグインを使用するので、これも忘れずにサーバーにアップロードします。
※ここまでの手順については、Movable Typep備忘録の
「MovableTypeで楽にリダイレクトする」を参照していただけると幸いです。
ただ、Movable Typeb備忘録に記載されているテンプレート実は、間違ってました。
Movable Typep備忘録のテンプレートでは、<$MTBlogURL relative_url="1"$>と
記載されているところを、<$MTBlogURL relative_path="1"$>に修正して使用します。
修正したのはこちらになります。
# トップページをリダイレクトする場合
Redirect permanent <$MTBlogURL relative_path="1"$>index.html <$MTBlogURL$>index.php
# 各エントリをリダイレクトする場合
Redirect permanent <$MTEntryPermalink relative_path="1"$> <$MTBlogArchiveURL$>.php
# 各カテゴリをリダイレクトする場合
Redirect permanent <$MTArchiveLink relative_path="1"$> <$MTArchiveLink$>index.php
# 各月別ページをリダイレクトする場合
Redirect permanent <$MTArchiveLink relative_path="1"$> <$MTArchiveLink$>index.php
# 各日別ページをリダイレクトする場合
Redirect permanent <$MTArchiveLink relative_path="1"$> <$MTArchiveLink$>index.php
これで、テンプレートの名前を“htaccess”、
出力ファイル名を“htaccess.txt”にして、「保存と再構築」を実行。
サーバーのindex.htmlと同じディレクトリにhtaccess.txtが生成されているので、
これをFTPソフトで、ダウンロードし保存します。
これをサーバーにアップロードし、ファイル名を“.htaccess”に変更すると
リダイレクトが有効になります。
サーバーにアップロードしてから、名前を変更しても構わないのですが、
ローカル環境でも、テキストエディタなどで開いてから別名保存する際に
半角「"」で前後を「".htaccess"」と括って保存することで、ファイル名を
“.htaccess”することができます。
ちなみに、Movable Typep備忘録に記載されている、テンプレートのままで出力すると、
変更前のURLが出力されるので、それはそれで便利です。
(こんな感じ)
Redirect permanent http://marqueemoon.info/index.html http://marqueemoon.info/index.php
私はこれもインデックステンプレートとし、“before.txt”として
出力し、ダウンロードしました。
(3)php化作業
まず、メインページからphp化します。
「インデックステンプレート」の「メインページ」を開いて、xml宣言の部分
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
を
<?php echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>
に変えます。
これは、xml宣言がhtmlのままだと、ページが正しく出力されないからです。
インデックステンプレートの「メインページ」の「テンプレートの設定」で
「出力ファイル名」を“index.html”から“index.php”に変更して
「保存と再構築」をします。
FTPソフトでサーバーを確認すると、“index.php”が出力されてます。
それから、メインページのURL(index.php)を開いて、
表示などに問題がないか、確認します。
問題なし。
次に、いよいよ全ページをphp化します。
ブログの「設定」メニューの「公開」を選んで、
「アーカイブオプション」の部分を“html”から、“php”に変えます。
(画像の赤で囲っている部分です)
テンプレートにもどると、「アーカイブテンプレート」の全ての出力ファイル名の
拡張子が“php”になっているのが確認できます。
ここで、今回は、個別エントリーの出力ファイル名を、
Movable Typep備忘録にならって、投稿日時でファイル名を割り当てることにしました。
アーカイブテンプレートの「ブログ記事」の「テンプレート設定」を開いて
下の「アーカイブマッピング」の「パス」プルダウンメニューから
「カスタム」を選択(わかりにくい場合はしたの画像を拡大してください。)
パスの部分が空欄になるので、そのこに
%y/%m/%d-%h%n%s%x
と入力します。
個別エントリーの出力ファイル名を、独自に設定している、
あるいは、デフォルトのままにする場合は、上の“htaccess”テンプレートの
「# 各エントリをリダイレクトする場合」の
<MTEntryDate format="%Y/%m/%d-%H%M%S"$>.php
の「"%Y/%m/%d-%H%M%S"」部分をその設定にかえる必要があります。
それから、各アーカイブテンプレートも「メインページ」同様に、xml宣言を
<?php echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>
に書き換えます。
最後に、「インデックステンプレート」の「アーカイブインデックス」の
「テンプレート設定」を開き、「出力ファイル名」を“archives.html”から
“archives.php”に変更、xml宣言を、「メインページ」や
各アーカイブサイトテンプレートと同様に書き換え、全体の再構築を実行します。
おお!再構築の時間が早い、以前は20分以上かかっていたのが、
11分前後で再構築できました。さすがphp!
ここで、php出力されたページを開いて動作を確認。
問題なし。
以外にあっけなくphp化まではできました。
(4)リダイレクトの有効化
次に、リダイレクトを有効化するために、先にダウンロードした“htaccess.txt”を
“.htaccess”としてサーバーにアップロード。
※php化して再構築した際に、サーバーに“htaccess.txt”が
生成されているが、それは使わないこと。
ここで、以前のURLをひとつづつたたいて、正しくリダイレクトされるかを確認します。
(ここで、先に出力し、ダウンロードした“before.txt”が活躍します。)
インデックスページ⇒OK!
各エントリー⇒OK!
しかし、各カテゴリー、月別、日別アーカイブのインデックスページが
リダイレクトされない!!!
Firefoxで確認すると次のような画面がでます。
うーむ、「自動転送がループしてる」ってどういうことだ!!!???
アドレスバーを見るとこんなことに。
.htaccessの記述をいろいろと変えてみるもののまったく、状況はかわらず、
とりあえす、.htaccessの知識がまったくない私としては、
参考にしていた、Movable Typep備忘録の
「MovableTypeで楽にリダイレクトする」という
記事にコメントをしてアドバイスを請うことに・・・
ここまでに、丸1日、時刻はすでに明け方・・・
解決策が見つからず、途方にくれていた私は、疲れ果て寝てしました。
結局こうして、サイトが無事リニューアルされたので、結果的には解決したのですが、
その顛末については、次回「解決編」で話すことにします。







