Movable Type 備忘録

 

 MovableTypeをPHP化する

先日、MovableTypeで楽にリダイレクトするMovableType(ムーバブルタイプ)でカンタンにリダイレクトする方法を紹介しました。

今回は、その延長であるMovableType(ムーバブルタイプ)で作ったブログのPHP化について紹介したいと思います。

PHPとは、WEBサーバ上で動作するスクリプト(言語)の名称です。 HTMLにPHPのスクリプトを組み込んでおくことで、そのスクリプトがWEBサーバ上で実行されて、その実行結果がブラウザで表示される…というしくみになります。

PHP化するメリット

  • 再構築時の負荷を激減できます。

    今までは、ちょっとしたテンプレートの変更などでも再構築に時間がかかっていました。 エントリ数が増えれば増えるほど、サーバに負荷がかかって、どんどん遅くなってしまいます。

    でも、PHP化によって各ページで共通な部分を1つの外部ファイルにすることで、再構築時の時間を短縮することができます。 特にエントリページの再構築にはかなり有効だと思います。

  • WEBスペースの消費を抑えることができます。

    ほとんどの人がトップページや個別エントリアーカイブ、月別アーカイブ、またはカテゴリアーカイブでエントリの本文や追記を表示させていると思います。
    PHP化によってエントリの本文や追記を共通部分として外部ファイルに取り出すことで、その外部ファイルを各アーカイブで共有することができます。

    言い換えると、WEBスペースの消費を抑えることができます。

    エントリ数が少ない時は実感がないかもしれませんが、今後どんどんエントリを増やしていくと、いずれWEBスペースの枯渇という問題に陥ります。
    PHP化によって少しでもWEBスペースの無駄遣いをなくすことができるようになります。

    ちなみに、以前、MovableType(ムーバブルタイプ)のモジュールを作ってみるを紹介しましたが、 これはあくまでも共通部分を抜き出して、変更などを容易にする…というだけで、しっかりと各ページ内に埋め込まれてしまうので節約にはなりません

  • 動的なページを作ることができます。

    PHP化することで、アクセス時にスクリプトを実行させることができます。
    どういうことかというと、例えば新着エントリにはNEWマークを表示させたり、 サイト内で人気があるエントリを一覧表示させることもできます。

    また、再構築時にエントリページを作るのではなく、アクセス時にエントリページを作る(これをダイナミック・パブリッシングといいます)こともできます。
    再構築はコメント投稿やトラックバックされても行われるので、ダイナミック・パブリッシングによって再構築時の負荷を大幅に軽減させることが可能なんです。

ざっとですが、わたしが思いつくPHP化によるメリットを挙げてみました。

PHP化するデメリット

  • SSIが使用できなくなります。

    わたしはこれを知らなかったので、慌ててSSI部分を共有化しました。

  • URLが変わってしまいます。

    URLが変わってしまうのはかなり致命的といえますが、MovableTypeで楽にリダイレクトするで紹介している楽な方法で、訪問者さんにも迷惑をかけずにできます。

  • ダイナミック・パブリッシングの欠点

    PHP化のメリットで、ダイナミック・パブリッシングについてちょっと触れましたがデメリットもあります。
    それは、プラグインが一切使えなくなる…ということです。

    詳しいことは分からないのですが、MovableType(ムーバブルタイプ)はPerlというスクリプトで作られているために、プラグインが一切使えなくなるらしんです。 ただプラグインがPHPで作られているなら問題ないそうです。( ほとんどのプラグインはPerlで作られています。)

考えつくデメリットを挙げてみましたが、他にもわたしの知らない(気づいていない)デメリットがあるかもしれませんね。
でも、少なくとも現状では何の不都合も起きていないので、今では思い切ってPHP化して良かったと思っています。

PHP化するための条件

MovableType(ムーバブルタイプ)で作ったブログをPHP化するには、PHPの実行がWEBサーバ上でできることが条件となります。
レンタルサーバによっては、PHPを許可していないところがあるようなので、レンタルサーバのサポート、またはプロバイダに問い合わせてみてください。

PHP化の手順

では、本題に入ります。
PHP化するには、以下の手順で行っていきます。 一気にやってしまうと大変なので(大変なのはわたしだけかな)、少しずつ確認しながらPHP化していきます。

  1. リダイレクトを設定する

    これからMovableTypeをインストールして、ついでにPHP化…という人は、この過程は必要ありません。

    PHP化によって各ページのURLが変ることを先ほど説明しました。
    そこで、リダイレクトによって変更前のURLにアクセスされたら、変更後のURLにリダイレクトさせる必要があります。 MovableType(ムーバブルタイプ)でのリダイレクトについてはMovableTypeで楽にリダイレクトするで紹介していますので、参考にしてください。 その際、リダイレクトはまだ有効にしないように気をつけてください。

  2. メインページのPHP化

    メインページのPHP化はカンタンにできるので、まずメインページのみPHP化して、ブラウザで確認します。

  3. 各アーカイブのPHP化

    各アーカイブ( 個別エントリ、カテゴリ、月別など )のページをPHP化します。 アーカイブページはメインページと違って、1つのテンプレートをPHP化すると、すべてがPHP化されるので影響範囲が広いです。

  4. リダイレクトを有効にする

    PHP化したことで、各ファイル名が xxxx.html が xxxx.php になります。 トラックバック先のサイトや、リンクしたURLは今で通り xxxx.html のままなので、リダイレクトによって xxxx.html にアクセスされたら xxxx.php を表示するようにします。

  5. 共通な部分を外部ファイルにする

    一通りのページがPHP化できたら( 今まで通りに各ページが表示できたら )、今度は各ページで共通な部分を外部ファイルに取り出します。 これにより、WEBスペースの節約ができます。

  6. PHP化前のファイルをサーバ上から削除する

    各ページの表示確認ができたら、サーバ上から変更前のファイル( xxxx.html )を削除します。 削除が心配な人は自分のパソコンにバックアップとしてとっておくといいです。

以上が、MovableType(ムーバブルタイプ)のPHP化の作業内容です。

リダイレクトを設定する

MovableType(ムーバブルタイプ)ならカンタンにリダイレクトの設定を行うことができます。 こちらのMovableTypeで楽にリダイレクトするを参考に htaccess.txt ファイルを作成してください。

その際、リダイレクトはまだ有効にしないように気をつけてください。

メインページのPHP化

- 2006.11.03 追記

PHP化の前に、mt-config.cgiに以下のオプションを追加してください。

DeleteFilesAtRebuild 1

通常だとエントリの削除やファイル名変更、カテゴリの移動などを行った場合、以前のファイルやディレクトリは残ったままになってしまいます。 でも、このオプションを"1"にすることで、以前のファイルを削除してくれるようになります。

オプションを変更したら、必ずMovableType(ムーバブルタイプ)をログインし直してください。 そうしないと変更が反映されないかもしれませんので。

メインページのPHP化はカンタンにできます。
MovableType(ムーバブルタイプ)の管理画面左にある「テンプレート」をクリックして、テンプレート一覧の中から 「メインページ」をクリックしてください。
そして、出力ファイル名のところを以下のように変更します。

変更前
index.html
変更後
index.php

変更したら、保存して再構築します。
再構築後、ブラウザから http://●●●.com/index.php を表示させてみてください。 今まで通りに表示されればOKです。 表示されなかった場合、以下の問題が考えられます。

  • 「Parse error: parse error, unexpected T_STRING in [...] on line 1」と表示された。
    これは、PHPファイル(xxxx.php)では1行目のXML宣言が xxxx.html の時と同じじゃまずいようなんです。 そこで、以下のように修正します。
    変更前
    <?xml version="1.0" encoding="<$MTPublishCharset$>"?>
    変更後
    <?php echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>
    

    元のXML宣言を、青い字の部分で囲みました。 上記修正はPHP化したすべてのテンプレートで必要です。

各アーカイブのPHP化

今度はカテゴリページ、エントリページなどを一気にPHP化します。
MovableType(ムーバブルタイプ)の管理画面左から「設定」をクリックして、画面上にある「公開」をクリックします。 画面中央あたりに「アーカイブの拡張子」とありますので、それを以下のように変更します。

変更前
html
変更後
php

わたしはついでに、エントリページのファイル名も変更しました。

通常、ブログを新規作成した場合、投稿したエントリのファイル名には、エントリのタイトル名の先頭から30文字分が使用されます。
すべて英数字によるエントリ・タイトルならそのまま使用されますが、日本語の場合だとpost.htmlなどのように代替のファイル名が割り付けられてしまいます。

そこでわたしの場合は、2006/02/08-225445.phpというように、投稿日時からファイル名が作成されるように変更しました。

これをやるメリットは以下の通りです。

  1. 必ずユニークな(重複しない)ファイル名とすることができます。
  2. いつか、サーバお引越ししたとしても、今までと同じURLにすることができます。
    デフォルトのままだと、もしかしたら、ファイル名が変更になって、今までと同じURLでなくなるかも、です。

そんな理由から、わたしはエントリの投稿日時でファイル名を割り当てるようにしています。
具体的には以下のように行います。

先ほどの「アーカイブの拡張子」を変更した、同じ画面の下の方に各アーカイブの一覧が表示されています。
その中の「エントリー・アーカイブ」のドロップダウンリストから「カスタマイズする」を選択して、以下のように変更してください。

変更前
%y/%m/%f
変更後
%y/%m/%d-%h%n%s%x

変更したら、「変更を保存」ボタンをクリックして、「サイトを再構築」ボタンでサイト全体を再構築します。
参考:アーカイブ・ファイル名定義

ここでは、必ずサイト全体を再構築します。

再構築後、ブラウザから各エントリページ、カテゴリページなどを表示させてみてください。 エントリページ、カテゴリページ、月別ページなどの各アーカイブページを確認して、今まで通りに表示されればOKです。
表示されなかった場合には、メインページと同じ問題が考えられますので確認してください。

以上で、メインページ含む、各アーカイブページのPHP化は完了です。

リダイレクトを有効にする

PHP化を行っても外部からのアクセス(トラックバック先や相互リンク先など)は、元のURL(xxxx.html)のままなので、リダイレクトによってPHP化後のURLにアクセスするよう設定します。

既に作成済みのhtaccess.txtファイルのファイル名を.htaccessに変更してリダイレクトを有効にしてください。

リダイレクトを有効にしたら、.htaccess に記述された元のURLを1つずつクリックして、すべてのページが正しくリダイレクトされることを確認します。
リダイレクトされなかった場合は、そのURLに関して記述ミスがあると思いますので、リダイレクト元、リダイレクト先のURLなどを確認してください。

また、リダイレクトを無効にしたい場合には、.htaccessを元に戻せば無効になります。

共通な部分を外部ファイルにする

各ページで浪費しているエントリ本文、追記を外部ファイルとして取り出して共有化します。

MovableType(ムーバブルタイプ)の管理画面左から「テンプレート」をクリックして、画面上にある「アーカイブ」をクリックします。
画面右上の方に「テンプレートを新規作成」とありますので、それをクリックしてください。
各入力項目は以下の通りです。

テンプレート名: エントリー・本文
このテンプレートにリンクするファイル: 未記入でいいです。
テンプレートの内容: <$MTEntryBody$>

入力したら保存してください。

次に、MovableType(ムーバブルタイプ)の管理画面左から「設定」をクリックして、画面上の「公開」をクリックします。
そして、画面下の方に「アーカイブ・マッピング」とありますので、その右端にある「マッピングを新規作成」をクリックしてください。

以下のように各項目を選択して「追加」ボタンをクリックします。

アーカイブの種類: エントリーを選択する。
テンプレート: エントリー・本文を選択する。

これでエントリー・本文のアーカイブが追加されるので、その出力フォーマットをドロップダウンリストから「カスタマイズ」を選択して以下のように変更します。

%y/%m/entry%E-body%x

変更したら、「変更を保存」ボタンをクリックして、「サイトを再構築」ボタンで再構築します。

次に、<$MTEntryBody$>を使っている全テンプレートを以下のコードと差し替えます。

変更前
<$MTEntryBody$>
変更後
<?php include('<$MTBlogArchiveURL$><$MTEntryDate format="%Y/%m"$>/entry<$MTEntryID$>-body.php');?>

差し替えたら、保存して再構築します。
再構築後、正しくエントリ本文が表示されることを確認します。

同じ要領で追記も外部ファイルにして共有化します。 各設定内容は以下の通りです。

テンプレート名: エントリー・追記
このテンプレートにリンクするファイル: 未記入でいいです。
テンプレートの内容: <$MTEntryMore$>
アーカイブの種類: エントリーを選択する。
テンプレート: エントリー・追記を選択する。
%y/%m/entry%E-more%x
変更前
<$MTEntryMore$>
変更後
<?php include('<$MTBlogArchiveURL$><$MTEntryDate format="%Y/%m"$>/entry<$MTEntryID$>-more.php');?>

以上で、エントリ本文、追記を外部ファイルに取り出すことができました。

PHP化前のファイルをサーバ上から削除する

一通り各ページの表示が確認できたら、変更前の各ファイル(xxxx.html)をサーバ上から削除します。

通常、アクセスされたページの拡張子によって優先順位が設定されています。 リダイレクトが有効の間は問題ないのですが、リダイレクトを外すと優先度の高い順にファイルが表示されます。

一般的に優先度が高い拡張子はhtml、htmになるかと思います。
ですので、PHP化前のファイル(xxxx.html)を削除しておかないと、いつまでたってもPHP化後のファイル(xxxx.php)が表示されないことになります。

既にリンク集などに登録されてたり、トラックバックなどしてる人は、リダイレクトを外さないほうがいいですよ ( ̄∇ ̄)b
そうしないと、エラーページが表示されてしまいますからね。

ちなみに、以下のコードを使うことでゴミファイル(PHP化前のファイル)があるかどうかを確認することができます。

#!/usr/bin/perl
system("ls -lR *.htm* > dir.txt");
print "Content-type: text/html\n\n";
print "done.";
1;

使い方は以下の通りです。

  1. まず、以下のコードをコピペして、dir.cgiという名前で保存します。
  2. index.phpと同じ場所にアップロードします。
  3. パーミッションを755に変更します。
  4. ブラウザからdir.cgiを実行して完了すると'done.'と表示されます。そうすると、dir.cgiと同じ場所にdir.txtというファイルが作成されます。
  5. 作成されたdir.txtをダウンロードして、ゴミファイル(PHP化前のファイル)が残っているかどうかを確認します。
  6. dir.cgiを削除しておきます。

以上でMovableType(ムーバブルタイプ)で作ったブログのPHP化は完了です。
お疲れ様でしたぁ ( ̄∇ ̄)/

 Trackback Pings(8)

from ai-zoon 4 Luxif*

Blogに色々変更を加えました。...

from 欲しい 食べたい つくる であります。

.style3 { color: #CCCCCC; font-weight...

from eXphere logs

出版社ではありません。 当Movable TypeのPHP化に着手。 再構築の際...

from 電脳あざらしの泳ぎ

MovableTypeのPHP化に着手した。意外に簡単でした。

from ブログアフィリエイト備忘録

再構築の際にエラーが出るようになったので、PHP化を実施。

from mixvox (Love is what we need.)

もうひとつ移転&MTネタ.移転前のサイトでは各アーカイブページをPHP(*.ph...

from Asiapacific Blog セカンドステージ

久しぶりの投稿です。 このブログはMovable Typeを使用していて、MovableTypeをPHP化する - Movable Type 備忘録こちら...

from web daily life

movabletypeで動かしているサイトのPHP化はいろいろな所でみかけられ...

 Comments(53)

#1: Posted by type_63 [RES]

初めまして。

こちらを拝見させて頂き、非常に分かり易いのでとっても嬉しく思っております!

PHP化に挑もうと貴サイトを参考に拝見し早速変更していたのですが
実は「 トップページ以外をPHP化する」の3項目目でつまづいております。
再構築をかけると"CGI SSIが正しく動作していません 500エラー"とでます。
どこがいけないのでしょうか?

#2: Posted by bizcaz [RES]

>>1 type_63 さん

まず、以下のことを確認してみてください。

○お使いのサーバは、PHP 動作可能かどうか。

トップページは PHP化したとのことなので、そちらの表示は正しく表示されます
でしょうか。
ちなみに、index.html が存在していると、優先的にそちらが表示されてしまい
ます。
index.php があることを確認の上、index.html を削除するかリネーム( 例え
ば、index.html.back )してから、http://xxxx/xxxx/index.php が正しく表示されることを確認してみてください。

表示されなかった場合、お使いのサーバでは PHP が使えないのかもしれませんね。
サーバ自体が PHP を許可されていないと、ブログの PHP化はできないことにな
ります。
また、PHP化したからといって環境が変わる…というわけではありません。
単純に xxx.html が xxx.php になるだけなので、サーバ環境に問題があるよう
に思います。

サーバ・サポートに問い合わせてみてください。

分かりにくいインストール手順でごめんなさい:pp_02.gif:
今回のような、イレギュラーなケースを今後は追記していきますね。
# とはいっても、そんな都合よく出るとは思いませんが・・・。

#3: Posted by bzbell [RES]

>>1 type_63 さん

先ほど、type_63 さまのブログ拝見しました。
とりあえず、トップページは index.html を表示されているようですね。

1つ気になることがあったので、お伝えします。
各テンプレート中にある以下の行を削除または、コメントにしてみてください。

<?xml version="1.0" encoding="utf-8"?>

これは各テンプレートの1行目にあります。

また何かありましたら、ご連絡くださいまし。

#4: Posted by type_63 [RES]

先日来、ご回答を頂きありがとうございます

sqllightの件は無事に解決いたしまして、運用できました!本当に有難うございます!!

さて、止せば良いのにこのphp可にも再度挑みました。
index.html→lindex.phpには成功したのですが、その他のページでは失敗いたしました。
確認なのですが
①はどのページも行い、ファイル名も変更するんですよね?(例えばarchive.html→archive.phpへ)
②そして、リネームするのも同じと言うことなのでしょうか?

後で①、②を変更していないことに気付いたんですが~
実は「間違えてしまった!!」と言う時点で、トップページも含めてphp化したものを慌ててhtmlに戻してしまいました。
そうしたら今度はトップページも表示されなくなってしまって・・・
どうしたら良いでしょうか。
お手数ばかりお掛けするばか者ですみませんです。
宜しくサポート頂けないでしょうか?

#5: Posted by type_63 [RES]

朝っぱらから度々申し訳ありません

php化失敗後、htmlに戻してからのサイトが表示されない件は自己解決です。申し訳ありませんでした!!

①②のサポートを是非お願い致します。
本当にすみません。

#6: Posted by bzbell [RES]

>>4 type_63 さん


おはようございます:pp_01.gif:


> ①はどのページも行い、ファイル名も変更するんですよね?(例えばarchive.html→archive.phpへ)


はい。【トップページ以外をPHP化する】の手順に示していますように、MovableTypeの管理画面から「アーカイブの拡張子」というところの html を php にすることでインデックス・テンプレート以外のページが変更できます。
また、archive.html も archive.php とわたしは変更しています。


> ②そして、リネームするのも同じと言うことなのでしょうか?


ここでいうリネームとは、【トップページ以外をPHP化する】の手順のところで示している、エントリー・アーカイブに関しての出力ファイル名変更…という認識でよいでしょうか。
もしそうだとしたら、出力ファイル名の変更はエントリー・アーカイブのみです。それ以外のアーカイブ( カテゴリ、日付など )には変更する必要はありません。
また、エントリー・アーカイブの出力ファイル名変更も、必ずしも必要な作業ではありません。


---
その他のページでは失敗したとのことですが、リダイレクトは使用していますか?
リダイレクトを使用すれば、PHP化前のファイル( xxxx.html )をPHP化後のファイル( xxxx.php )と変換してくれます。
リダイレクトを使用していない場合、トップページから各エントリにアクセスした場合、PHP化前のファイルを削除してしまうとエラーとなります。


というのは、PHP化してもページ内に埋め込まれた各ページのリンクは元のままなんです。


ページ内で他のページのリンクを貼っている場合には、PHP化することでURLが変わりますので、それらのリンクすべてを手修正する必要があります。
全ページのリンクをチェックして修正していかなければなりません。これはエントリ数にもよりますが短期間では大変ですよね。
そこでリダイレクトによってPHP化前( http://lala.com/xxxx.html )にアクセスされたら、PHP化後( http://lala.com/xxxx.php )のページに変換するようにしているわけです。
後日、少しずつページ内のリンクをチェックして、修正していけばいいですよね。

#7: Posted by type_63 [RES]

サポート頂き有難うございました。

indexhtml→index.php
これは問題なく出来るんですが、index以外のphp化に作業を移すとサイトの表示はされませんでした。リダイレクトも作ったのですが:pp_08.gif:
indexはリネームしましたが、他のhtmlページのリネームも削除もしてません。
"CGI、SSLが正常に動いていません、500エラー"と出るんです:pp_10.gif:
どこかがいけないのでしょうが、きっと仕組みが良く分かってないのもあるんだと思います。
間違いも見つけられないので:pp_00.gif:
今回は諦めて、もっと理解できるようになってから行います。
お手を煩わせて申し訳ありませんでした

#8: Posted by ゲロ口 [RES]

こんばんははじめまして。
こちらのサイトのMovableTypeをPHP化する
を拝見し参考にさせていただきました。
こちらは初心者で四苦八苦しておりましたが
ようやく公開で出来るはこびとなりました。
ありがとうございました。

#9: Posted by bzbell Author Profile Page [RES]

>>8 ゲロ口 さん

はじめまして^^

> ようやく公開で出来るはこびとなりました。

よかったですね(●´∀`●)

MTはPHP化するといろんなことができるようになるので、いい判断だと思います♪
わたしもMT始めてから早いうちにPHP化にTRYしたので正解だったと思ってます。

今後ともよろしくお願い致します♪

#10: Posted by ゲロ口 Author Profile Page [RES]

bzbellさん
どうもコメントありがとうございました。

こちらこそ今後ともよろしくお願いいたします。

#11: Posted by ケイ [RES]

はじめまして。
MTのPHP化をするにあたり、大変参考にさせていただいています。
PHP化自体はスムーズにできたのですが、《共通な部分を外部ファイルにする》の手順で躓いており困っています。
<$MTEntryBody$>を差し替える作業を進めていたトコロ、自分が使用しているテンプレートの<$MTEntryBody$>部分で、一部にアトリビュートが指定してありうまく差し替えるコトができません。
どのようにしたらキチンと差し替えられるでしょうか?
サポートいただけましたら幸いです。どうかよろしくお願いいたします。

#12: Posted by bzbell [RES]

>>11 ケイ さん

はじめまして^^

> 一部にアトリビュートが指定してありうまく差し替えるコトができません。

一部というのは、たとえば、

  1. 個別エントリ・アーカイブにはアトリビュートを付加しているけど、月別アーカイブにはない…ということでしょうか。
  2. それとも、単純に<$MTEntryBody$>タグにアトリビュートを付加している…ということでしょうか。

1.の場合には、各アーカイブ内の<$MTEntryBody$>タグのアトリビュートを統一するか、個別に外部ファイルを作成して、それぞれでPHPを読み込むようにすれば対応できます。

2.の場合には、アトリビュートごと移動させても問題ありませんよ( ̄∀ ̄)b

たとえば、以下のような場合でも
<$MTEntryBody eval="1"$>
そのまま、外部ファイルとして保存してください。 あとは、個別エントリなどのアーカイブ内で記事にあるようにPHPを読み込むようにすれば大丈夫です♪

今後も、<$MTEntryBody$>タグにアトリビュートを追加したい場合には、外部ファイル側に追加すれば問題ありません。

また何かありましたらご連絡ください♪
では。。。

#13: Posted by ケイ [RES]

bzbell さん、こんにちは。
早速のご回答、ありがとうございます。

自分の場合は、1.に当てはまります。
(個別エントリー・アーカイブにはアトリビュートがなく、そのほかにはアトリビュートが指定してあります。)
個別にやってみたらよかったんですね。
あと、アトリビュートごと移動させるコトができるとは思いもよりませんでした。

お教えいただいた方法、試してみたいと思います。
ありがとうございました。

#14: Posted by tutu [RES]

はじめましてbzbell様。いろいろなサイトを見回ってここに辿り着きました。PHP化のメリットもあまり判らない素人で大変恐縮なのですが、将来のことを考えると今のうちにやっておいた方が良いのでは?と思いチャレンジしてしまいました。
私でも判りそうな解説をしていてくださる所は、他にはなかなか見当たらず少しアドバイスをいただけたらと思いコメントしました。

順番に解説通りに進めて行き、サイト表示の確認作業も行っていたつもりなのですが、最終的に

⇒ 次に、<$MTEntryBody$>を使っている全テンプレートを以下のコードと差し替えます。

変更前 <$MTEntryBody$>
変更後 <?php include('<$MTBlogArchiveURL$><$MTEntryDate format="%Y/%m"$>/entry<$MTEntryID$>-body.php');?>の部分を差し替えると、エントリー本文の部分が

Warning: main(http://xxxxx.com/st2007/% m/entry12-body.php): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /home/sites/lolipop.jp/users/lolipop.jp-●●●/web/st/2007/04/25-080323.php on line 159

と表示されてしまいます。変更前の<$MTEntryBody$>に戻すと普通に表示されます。どこかに問題があるのでしょうが、お忙しいとは思いますが、御指摘いただければ幸いです。

#15: Posted by bzbell [RES]

>>14 tutu さん

はじめまして^^

ご質問の件ですが、以下の要因が考えられます。

  1. tutu さんのとこではアーカイブ・パスを設定してますか!?
    そのとき、アーカイブURLの最後を「/」で終えてますか!?

  2. または、以下のようにすることで正しく読めるのではないかと思います。

    <?php include('<$MTBlogArchiveURL$><$MTEntryDate format="/%Y/%m"$>/entry<$MTEntryID$>-body.php'); ?>
    
  3. %mの間にスペースが入ってませんか!?

    NG % m
    OK %m
    

どうでしょ (; ̄∇ ̄A

#16: Posted by tutu [RES]

bzbell様。早速の御回答ありがとうございます。2. を試したところ正しく表示されるようになりました。大変、ありがとうございました。これからも頑張ってください。

#17: Posted by bzbell [RES]

>>16 tutu さん

こんにちわ^^

よかった(●´∀`●)

> これからも頑張ってください。

はい。ありがとうございます。
tutu さんも♪

#18: Posted by tomo787 [RES]

こんばんわ。
私は、自分の運営するウェブサイトの保守・管理を効率化するために、MT化しようとしてます。
MTに関しては初心者ですので、このサイトは読みやすく、非常に参考にさせていただいてます。

それで、質問なんですが、php化を進めていて、リダイレクトのためにこのサイトにあるように.htaccessを作成し、topページと同じ階層に設置したのですが、リダイレクトしてくれません。
全く反応なしといったかんじです。。。
ちなみに、サーバはsakuraのスタンダードプランです。

どうすれば解決するかご教授ただけますでしょうか?
よろしくお願いします。

#19: Posted by bzbell [RES]

>>18 tomo787 さん

こんばんわ^^

ご質問の件ですが、できれば.htaccessファイルを拝見することは可能ですか ( ̄∇ ̄)b
なぜダメなのか、情報が少なくてなんとも言えませんので。

もし、可能でしたら以下のメールフォームから添付していただけますか。
http://bizcaz.com/archives/mailform.php?height=800&width=480

お手数おかけしてすいません。

#20: Posted by tomo787 [RES]

>>19 bzbell さん

お早いレスありがとうございます^^

メールフォームから添付ということですがメールフォームにファイルを添付する項目が
ありませんでした。
ダウンロードした.htaccessファイルのソースを、メールフォームのテキスト部分にコピペして送信するという解釈で
間違いないでしょうか?

たびたびすみませんが、お返事お待ちしております。

#21: Posted by bzbell [RES]

>>20 tomo787 さん

あっ!! すいません。
わたし普通のメルと勘違いしちゃいました (; ̄∇ ̄A

tomo787 さんがおっしゃる通りでお願いします (m;_ _)mペコ

#22: Posted by tomo787 [RES]

>>21 bzbell さん

ご指摘のとおり修正したら、リダイレクトしてくれました!!!
ありがとうございます。

あわせて、他のページにある「Ajaxの投票」などなど、たくさんの記事を参考にさせていただき、
非常に役立たせていただいてます。
充実のサポートといい、本当にアタマが下がりますワ^^

今後ともがんばってください!!!
ありがとうございました。

#23: Posted by bzbell [RES]

>>22 tomo787 さん

こんにちわ^^

良かったですね (●>∀<●)

わたしも最初は同じ間違いをしましたの。
初めてなんだから知らなくて当然ですよね (; ̄∇ ̄A

わたしはプログラマではないですが、わたしが学んだ(経験した)こと、経験から想像できることでしたらお答えすることはできます。

気軽にご連絡くださいですの♪

#24: Posted by Hoi [RES]

はじめまして。MTを昨日からいじくっています。
php化をしようとサイトを拝見させてもらいました。
しかし、エントリーの内容がincludeされません。。。なぜって感じです。
特にエラーもなく、http://サイト名/index.phpでもきちんと表示されているんですがエントリー内容だけ出ません。
どうかご教授をお願いします。

#25: Posted by bzbell [RES]

>>24 Hoi さん

はじめまして^^

エントリ本文および、追記だけが表示されず、しかもトップページ(index.php)上にはPHPエラーが表示されないわけですね。

では以下のことを確認してみてください。

  1. まず正しくエントリ本文、追記が外部ファイル化されたか確認します。
    エントリ本文および、エントリ追記をブラウザから表示させてみてください。

    たとえば、この記事の本文と追記は以下のようになります。

    本文URL: ttp://bizcaz.com/archives/2006/02/entry20-body.php
    追記URL: ttp://bizcaz.com/archives/2006/02/entry20-more.php
    

    上記URLのフォーマットは以下の通りです。

    サイトURL/年ディレクトリ/月ディレクトリ/entry+エントリID+"-body.php"
    

    正しくエントリの本文、追記ファイルが生成されていれば表示されるはずです ( ̄∇ ̄)b

  2. 「1.」で表示されない場合、サイト全体を再構築してみてください。

  3. それでもダメな場合、<$MTBlogArchiveURL$>が再構築後、どのように表示されるか確認してください。
    わたしのサイトですと、ttp://bizcaz.com/archives/ というように、最後は '/' で終わります。

    '/' で終わっていないと記事内で記したエントリ本文、追記ファイルのURLが正しく表示されません。
    その場合には、以下のようになります。

    <?php include('<$MTBlogArchiveURL$>/<$MTEntryDate format="%Y/%m"$>/entry<$MTEntryID$>-body.php');?>
    

    太字の部分を追加しました。

お手数ですが確認お願いします (m;_ _)mペコ

#26: Posted by Hoi [RES]

>>25 bzbell さん

早速回答ありがとうございます!!

>1.まず正しくエントリ本文、追記が外部ファイル化されたか確認します。
>エントリ本文および、エントリ追記をブラウザから表示させてみてください。
これをやってみたら、

タグで囲まれた状態でエントリー中身を表示してくれます。

>3.が再構築後、どのように表示されるか確認してください。
これもきちんとhttp://******/***/archives/で終わっています。

なにかおかしくなってます??? ちなみにphp化する前は表示されていました。
あとMTのバージョンは3.34になります。

#27: Posted by bzbell [RES]

>>26 Hoi さん

えっ ∑( ̄□ ̄;)!!
そうすると問題なさそうなんですけど ( ̄ω ̄;) なんでだろ。

では、適当なファイルを作成(test.php)して、その中に以下を追加した場合正しく読み込まれますか!?

<?php include('http://●●●/▲▲▲/archives/2007/05/entry■■-body.php'); ?>

MTのタグを使用せず、直接URLを記述することで、本来のPHPの読み込みがされるかどうか確認できますか。
これができない場合、何らかの環境(たとえば、PHPバージョンなど)が影響していると思われます。

生成されたエントリ本文などのファイルのパーミッションなど正しいでしょうか。
index.php と各エントリのページを見比べみてください。

また、もし可能でしたら Hoi さんのサイトのURLとかテンプレートなどメールしてもらえると、わたしの方としても調査/解析ができるかと思います♪

#28: Posted by Hoi [RES]

>>27 bzbell さん

恥ずかしい結果が出ました!!
test.phpを作り実行しましたが、うまくいかず...

これはもしやと思いましたが、サーバ側がphpバージョンを4種類使える環境になっており
.htaccessで使うphpバージョンを設定する必要がありました(^^;

お恥ずかしい限りです。設定後無事動作いたしました。
これを機会に再度インストールやり直して気分を新たにやりたいと思います。

本当にご迷惑をおかけしました。
今後とも宜しくです(^^;

#29: Posted by bzbell [RES]

>>28 Hoi さん

こんにちわ^^

> これはもしやと思いましたが、サーバ側がphpバージョンを4種類使える環境になっており
> .htaccessで使うphpバージョンを設定する必要がありました(^^;

えっーーー Σ( ̄Д ̄;)!!
そんなことできるんですかっ!! 知りませんでした (; ̄∇ ̄A

でもよかったです (●´∀`●) 解決して♪

こちらこそよろしくお願いします (m;_ _)mペコ

#30: Posted by chizu35 [RES]

はじめまして。
ムーバブルタイプ3.35を導入ついでに、PHP化に挑戦していますが
なかなか思うようにいきません。

手順2のメインページPHP化の説明通りにしているつもりですが
サーバーエラーが表示されます。
何が原因なのでしょうか?

ちなみにサーバーは、サクラのレンタルサーバー(スタンダード)です。

初歩的な質問で申し訳ありませんが
宜しくお願い致します。


#31: Posted by bzbell [RES]

>>30 chizu35 さん

はじめまして^^
返答が遅くなってすいません。

ご質問の件ですが、以下のことが考えられると思います。

'さくらインターネット' では、PHP 含む CGI のパーミッションは 755 にする必要があります。

でも、ブログの PHP 化を行った場合、再構築で作成される xxxx.php ファイルのパーミッションは 666 で作成されてしまいます。

こちらのMovableType3.3をインストールするでも紹介してますが、mt-config.cgi 内に以下を追加することで、自動的に作成されたファイルのパーミッションを 755 にしてくれます。

HTMLPerms 0777
UploadPerms 0777

上記を追加したら、ログインし直して再度再構築してみてください。
今度はきっと表示されると思います ( ̄∇ ̄)b

#32: Posted by すいどう [RES]

はじめまして、こんにちは。
いつも活用させていただいています。

MTを使って個人的なサイトを作っているのですが、将来に備え(?)、PHP化を
考えています。
一つ気になったのが、デメリットとして、(Perlで書かれた)プラグインが使えなくなるというのがありますが、
これはあくまでPHP化をして、かつ、ダイナミック・パブリッシングを利用する場合であって、
単に共通部分等の外部ファイルを読み込む為 - php include~ - を使うため(パブリッシングは従来どおりスタティック)であれば、前述のプラグインの問題は無い、ということでしょうか?

#33: Posted by bzbell [RES]

>>32 すいどう さん

はじめまして^^

はい。すいどう さんの言われる通りです。

世に出回っている大半は Perl 版プラグインで、ダイナミック・パブリッシングを行った場合に限り、それらの Perl 版プラグインが使用できるなくなる・・・となります。

ブログの PHP 化とは関係ありませんのでご心配なく♪

#34: Posted by すいどう [RES]

>>33 bzbell さん

ありがとうございました!

最初は、ダイナミックパブリッシングに憧れ(笑)をもっていたのですが、
あくまで個人の小規模サイトなので、とりあえずはPHP化でリビルドのストレスを
少しでも無くしていこうと思っています。

共通部分のちょっとした修整・改造後の確認のたびにリビルドしなければいけないので・・
面倒に思っていたところです。
PHP化すれば、元を修整、再構築すればそれでOKですね。

bzbell さんのこのブログで取り上げられている、ブログ内検索を高速化 を
試してみたのですが、便利ですね。

#35: Posted by bzbell [RES]

>>34 すいどう さん

こんにちわ^^

> とりあえずはPHP化でリビルドのストレスを少しでも無くしていこうと思っています。

うん。正解だと思います ( ̄∇ ̄)b
それに、PHP化によるいろんなことができるようになりますからね。

また、すいどう さんがお使いのサーバで、TELNET や SSH が使用可能でしたら、以下のカスタマイズで通常の再構築より格段に早く再構築させることも可能です。
MovableTypeを自動的に再構築する

エントリの新規投稿やコメント投稿時の再構築はやむを得ませんが、1度投稿(データベースに保存)さえしてしまえば、その後のテンプレート変更による再構築なら上記の方法でストレスなく!? 行うことができます。

機会があったら試してみてください ( ̄∇ ̄)/

#36: Posted by [匿名] [RES]

>>31 bzbell さん

ご返事が遅くなり申し訳ありません。
問題は、解決いたしましたのでご報告いたします。
ありがとうございました。

ところで、PHP化のメリットに
「新着エントリにはNEWマークを表示させたり」と記載されていますが、
具体的にはどのようにしたらいいのでしょうか?

時間がありましたら、ご回答いただけたら幸いです。

#37: Posted by bzbell [RES]

>>36 [匿名] さん

こんにちわ^^

ご質問の件ですが、以前、PHPで新規エントリに「NEW」イメージを期間表示させるでもご紹介してますが、わたしは以下のようなコードを作ってます。

<?php
if (!isset($_REQUEST['post']) || !isset($_REQUEST['modi']) || !isset($_REQUEST['days'])) return;
// (アクセス日付 - 表示期間)を取得
$result = date('Ymd', mktime( 0,0,0,date('m') ,date('d') - $days, date('Y')));
$post = $_REQUEST['post'];// エントリ投稿日時
$modi = $_REQUEST['modi'];// エントリ更新日時
$days = $_REQUEST['post'];// 表示期間(日)
// エントリの更新日付と比較します
if ( $modi >= $result )
{
//エントリの投稿日付と比較します
if ( $post >= $result )
{
// 新規投稿から表示期間内の場合、新規投稿イメージを表示
$imgfile = '<$MTBlogURL$>image/new.gif';
}
else
{
// 更新日付から表示期間内の場合、更新イメージを表示
$imgfile = '<$MTBlogURL$>image/up.gif';
}
echo '<img class="newimg" src="' . $imgfile . '" alt="" />';
}
else
{/*表示期間以上経過した場合*/}
?>

上記コードは、新規投稿なら 'NEW' イメージを表示して、その後、追記などによるエントリ更新された場合には 'UP' イメージを表示するようになってます。

  1. まず、テンプレートを新規作成して上記コードをコピペします。そして、再構築してください。
    ファイル名はお好きな名前で構いません。たとえば print_image.php など。

  2. 次に既存のテンプレートを変更します。
    既存のテンプレート内の最近のエントリを、以下のタグと差し替えます。

    <ul>
    <MTEntries>
    <li><a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTEntryTitle$></a>
    <?php include(<$MTBlogURL$>print_image.php?post=<$MTEntryDate language='en' format='%Y%m%d'$>&amp;modi=<$MTEntryModifiedDate language='en' format='%Y%m%d'$>&amp;days=3); ?></li>
    </MTEntries>
    </ul>
    

以上です。

'NEW' イメージ、'UP' イメージの素材はフリー素材を利用するなど、ご自分でご用意ください♪
位置調整などは CSS から '.newimg' で指定可能です。

不明点などありましたらご連絡ください (●>∀<●)/

#38: Posted by よしのり [RES]

はじめまして、こんばんわ。

MT3の頃から使っていたのですが
今回MT4になってテンプレートを探していて、こちらのサイトを見つけました。
テンプレートは無事に出来ましたが、PHP化しようと思いMT3とちょっと違い
苦戦していました。とりあいずは出来ていると思うのですが

アーカイブテンプレートに、エントリーの本文と追記を作って
アーカイブマッピングで%y/%m/entry%E-body%xと%y/%m/entry%E-more%xで
本文と追記をphp出力しています。

entry_detail.mtmlにある本文と追記のタグをphp includeに書き換えましたが
php includeで相対パスじゃないと出ないみたいで
<?php include('../../<$MTEntryDate format="%Y/%m"$>/entry<$MTEntryID$>-body.php');?>
に変えて一応表示されてよかったのですが、これで大丈夫でしょうか?

あとは本文と追記のタグはここだけだったのですが、これでPHP化できていますか?

#39: Posted by bzbell [RES]

>>38 よしのり さん

こんばんわ^^

> php includeで相対パスじゃないと出ないみたいで・・・

サーバ環境に依存しちゃうんですかね。わたしのとこ(ロリポップ、さくら、CORESERVER)では普通に URL で include できました。

相対パスで問題になるのは、ディレクトリの階層が異なった場合でしょうか。
メインインデックス、個別エントリアーカイブ、カテゴリアーカイブ、月別アーカイブで個々にパスの階層を変更する必要がありますね。

以下のページで PHP のファイルを探すパスを設定可能なようです。
http://manual.xwd.jp/ini.core.html#ini.include-path

話は変わりますが、どうもスタイルが正しく適用されてないようですね。
レイアウト(base_theme.css)は問題なさそうなので、テンプレート依存のスタイル(bladesilver.css)の難読化をやめてみてはいかがでしょうか ( ̄∇ ̄)b

ご不明な点がありましたらご連絡ください♪

#40: Posted by よしのり [RES]

>>39 bzbell さん

こんばんわ。
phpの方はinclude_path設定で
<?php include('<$MTEntryDate format="%Y/%m"$>/entry<$MTEntryID$>-body.php');?>
でなら表示出来ましたが、<$MTBlogArchiveURL$>入れると出来ませんねぇ。

ブログ記事の詳細
ブログ記事の概要
は<$MTEntryBody$>があったのでPHP化出来たのですが
他はどこにあるのですか?

cssはファイル自体はあるのですが、firefoxのFirebugで見てみたらcssがうまく読み込まれてませんね。
もうちょっと調べてみないと。

#41: Posted by bzbell [RES]

>>40 よしのり さん

こんばんわ^^

> ・・・<$MTBlogArchiveURL$>入れると出来ませんねぇ。

アーカイブパスが設定されてない場合の <$MTBlogArchiveURL$> タグの出力は、<MTBlogURL$gt; と同様になります。

よしのり さんとこのエントリは、'http://www.yoshinori.net/archives/~' となっていますが、アーカイブパスの方は「ブログの設定」>「公開」にてアーカイブパスの設定はされてますか?

> 他はどこにあるのですか?

いえ、その 2 つだけですよ ( ̄∇ ̄)b

> cssはファイル自体はあるのですが、firefoxのFirebugで見てみたらcssがうまく読み込まれてませんね。

ですね。
firefoxではレイアウトが崩れていますが、IE6.x では問題なく表示されてます (; ̄∇ ̄A
何で bladesilver.css と sitemap.css だけがおかしくなってるのでしょう。
そこら辺が怪しいですね ( ̄∇ ̄)b

#42: Posted by よしのり [RES]

>>41 bzbell さん

こんばんわ。
cssはテンプレートにコピペするときに、タブが入っていてそれが□になっていて
そこのスタイルが無効?になってたみたいでした。
全部置換してコピペしたら出来ました。

アーカイブパスはもちろん設定していますよ。
サイトパスの下の別のパスで公開するのところチェックして
下のURLとパスを入力していますよ。

#43: Posted by bzbell [RES]

>>42 よしのり さん

こんばんわ^^

今よしのり さんとこ見に行ってきました♪
ホントだ!! 今度はちゃんとスタイルが適用されてますねっ!! よかった、よかった (●´∀`●)

> アーカイブパスはもちろん設定していますよ。
> サイトパスの下の別のパスで公開するのところチェックして
> 下のURLとパスを入力していますよ。

う~ん・・・だとすると、ホントに PHP の環境でしょうか。
試しに以下のコードをコピペして、サーバにアップロード後、ブラウザで表示できるか確認してみてください。

<?
include('http://www.yoshinori.net/archives/2007/09/09-213518.php');
?>

正常ならよしのり さんとこのエントリページが表示されるはずです ( ̄∇ ̄)b
表示されない場合には、やっぱり PHP の環境かと思われます。

#44: Posted by よしのり [RES]

>>43 bzbell さん

おはようございます。
出ませんよね。phpのマニュアルサイトなど他のサイトのphpを指定すると出るのですが
自分のサイトのみ出ませんね。
サーバーPCのIP指定なら出ますが、自分のサイトは公開用のURLで見られるので問題ないと思いますけど
PHP Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'http://www.yoshinori.net/archives/2007/09/09-213518.php' for ・・・
apacheのログには開けませんみたいなことが書かれてますから、やっぱりどこか・・・。

#45: Posted by よしのり [RES]

こんばんわ。

PHPの設定ではなかったでした。
自分の内部のDNS設定が原因でした。
今は無事にinclude出来ました。

ふと思ったのですが、サイトマップなど作る場合に
メインページやアーカイブなど、中央は1つでコンテナになってますが
サイドバーとか別のテンプレートに分けたほうが作りやすいのでしょうか?

#46: Posted by bzbell [RES]

>>45 よしのり さん

こんばんわ^^

> 今は無事にinclude出来ました。

あ、解決して良かったですね (●´∀`●)

> サイドバーとか別のテンプレートに分けたほうが作りやすいのでしょうか?

人それぞれのやり方ってものがあると思いますし、ケースバイケースだと思いますが、よしのり さんが言われる、従来のテンプレのようにすると全体が見えていいかも、です。

1 つにしておくメリットは、管理が楽♪ というだけです。
共通なものをできる限り一箇所にまとめておくことで、修正などで楽できます ( ̄∇ ̄)b

いろいろやってみて、よしのり さんのやりやすいようにするといいと思いますよ (●>∀<●)

#47: Posted by み~ [RES]

こんばんは、始めまして。
早速ですが、質問があります。

今回、御サイト様を参考にし、MovableTypeの各ファイルをPHP化してみました。
特に速度面等で実感があまり沸かないのですが、お陰様で無事成功したようです。
動作も正常ですし、記事の書き込みや呼び出しも全く問題ないです。

そこで質問なのですが、『共通な部分を外部ファイルにする』ももちろん行ったのですが、確かにカスタマイズ成功しているのを目視で確認できる部分ってありますか?
ちゃんと動いているんで、カスタマイズには全く問題ないと思うのですが^^;
『ここがこうなっていれば、ちゃんと成功してますよ』みたいな目で見える部分を教えてほしいです^^;

よろしくお願いします。

#48: Posted by bzbell [RES]

>>47 み~ さん

こんばんわ^^

> そこで質問なのですが、『共通な部分を外部ファイルにする』ももちろん行ったのですが、確かにカスタマイズ成功しているのを目視で確認できる部分ってありますか?

はい。
み~ さんが言われるように、ページが正しく表示されていれば概ね問題ないと思っていいと思います ( ̄∇ ̄)b
念のため以下の確認をしてみてください。

  • 外部ファイル化した共通な部分の確認
    外部ファイル化したページの URL をブラウザから直接表示してみます。 たとえば、このページの 本文/追記ページは以下のような URL となってます。

    本文ページ
    http://bizcaz.com/archives/2006/02/entry20-body.php
    追記ページ
    http://bizcaz.com/archives/2006/02/entry20-more.php
    

    ちゃんと表示されれば、他のページも同様に、正しく作成されていると判断していいと思います。

  • 外部ファイル化の読出し確認
    FTP でサーバにログインして、外部ファイルを読込んでいるページ(たとえば、メインページ)のファイルの中味を確認します。
    そうすると、<?php ・・・ > という記述が入っていますね。 そして、その外部ファイルを読込んでいるページをブラウザで表示して問題なければ、正しく外部ファイルが読込まれていると言えると思います。

    1 つ確認できれば概ね他のページも正しく生成されていると判断していいと思います。

  • 余談ですが・・・PHP 化前のファイルを確実に削除していることの確認
    通常 xxx.php は xxx.html より表示優先度が低いです。 どういうことかというと、index.html と index.php が存在した場合、http://bizcaz.com/ をブラウザから見た場合、優先的に index.html が表示されてしまいます。

    ですので、PHP 化前の xxx.html が削除されていれば、確実に PHP 化後の xxx.php が読込まれていると判断できます。

    また、以下のスクリプトを使用(find.php)することで、PHP 化前のゴミ(ファイル)を検索することができます。

    <?php
    $dir  = '.';
    $type = 'html';
    echo '<pre>';
    $cmd = 'find ' . $dir . ' -name "*.'. $type .'" -ls';
    $last_line = system($cmd, $retval);
    echo '</pre><hr />Last line of the output: ' . $last_line . '<hr />Return value: ' . $retval;
    ?>
    

    上記スクリプトをメインページと同じ場所に置いて、ブラウザから find.php を実行すれば、ゴミファイル(xxx.html)の存在をチェックできます。

と、こんなとこでしょうか。

#49: Posted by み~ [RES]

こんにちは~。

お早い返事ありがとうございます!

教授して頂いたものを参考に、PHP化の確認をしてみました。
やはり無事に出来ていたようです^^;
ほっとしています。

親切にありがとうございました!

ここまでMTに特化した話題やカスタマイズ方法等の情報が得られるサイトもなかなかないので、とても貴重に思っています。
これからも影ながら応援させて頂きますので、ブログの運営をがんばってください!(目もたまに休ませて^^;)

本当にありがとうございました。

#50: Posted by bzbell [RES]

>>49 み~ さん

こんばんわ^^

> やはり無事に出来ていたようです^^;

良かったですね (●´∀`●)

> これからも影ながら応援させて頂きますので、ブログの運営をがんばってください!(目もたまに休ませて^^;)

ありがとうございます♪
毎度のことながら至らないところも多々あると思います。その時は一言連絡ください (●>∀<●) てへ

#51: Posted by imo787 [RES]

いつも勉強させていただいてます!

今回の質問ですが、MT4.01でPHP化をしようとしています。
インストールのときに、画面の指示にしたがって、MYSQLで構築したのですが、
mt-config.cgi-originalファイルの中身はデフォルトのままのでした。
パーミッションを自動で755にしてくれたりするには、MT4ではどこをどのように触ればよいでしょうか?

よろしくご教授ください。

#52: Posted by bzbell Author Profile Page [RES]

>>51 imo787 さん

こんばんわ^^

> パーミッションを自動で755にしてくれたりするには、MT4ではどこをどのように触ればよいでしょうか?

はい。
こちらのMovableType3.3をインストールする で自動生成時のパーミッションについて触れてますが、以下のコンフィグを追加してください。

# When creating files and directories, Movable Type uses umask settings to
# control the permissions set on the files. The default settings for file
# creation (HTMLUmask, DBUmask, and UploadUmask) are 0111; for directory
# creation (DirUmask), the default is 0000. You should not change these
# settings unless you are running MT under cgiwrap or suexec, or some other
# scenario where the MT application runs as you; in addition, you should not
# change these settings unless you know what they mean, and what they do.
#
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022
# In addition to controlling permissions via umask settings, you can also
# use the HTMLPerms and UploadPerms settings to control the default
# permissions for files created by the system (either as output files or
# uploaded files). The only real use of this is to turn on the executable bit
# of files created by the system--for example, if MT is generating PHP files
# that need to have the executable bit turned on, you could set HTMLPerms
# to 0777. The default is 0666. You should not change these settings unless
# you know what they mean, and what they do.
#
HTMLPerms 0777
UploadPerms 0777

また、もし imo787 さんが MT3.3x からのアップグレードの場合以下も追加してください。

#======== 文字化け対策 ===============
# このコンフィグは MySQL 4.1 以上の場合 '1' にすること!!
# 新規インストールでは '1' に既定されるけど、アップグレードでは '0' になってしまうから要注意!!
SQLSetNames 1

以上かな( ̄∇ ̄)

#53: Posted by imo787 [RES]

>>52 bzbell さん
基本的に同じでかまわなかったんですね。
今回は新規にインストールと、3.3からのアップグレードの両方あったんですが、
問題なく動作しました。
ありがとうございました。

 Post a Comment

コメント用フィード