Movable Type の PHP化(その1)
Movable Type をPHP化するカスタマイズです。PHP化には何通りかの方法があり、このエントリーでは拡張子を html から php に変更して、PHPを利用できるようにする方法を紹介します。
PHP化を行うことで、モジュール化やページ分割ができるようになります。
Movable Type には何種類かのテンプレートがあります。その中で、PHP化の対象は「インデックス・テンプレート」と「アーカイブ・テンプレート」の2つで、それぞれの拡張子を変更する方法を説明します。
1.インデックス・テンプレートの拡張子を変更する
インデックス・テンプレートでPHP化をするのは「メインページ」と「アーカイブページ」の2つです。ここではメインページをサンプルに説明します。
1.1 拡張子の変更
ブログ管理画面の左にある「テンプレート」クリックします。 |
表示されたページにインデックステンプレートの一覧が表示されます。このリストの右側にファイル名が表示されており、メインページのファイル名が「index.html」であることが分かります。
ここでは「メインページ」のリンクをクリックします。
次ページで表示された「出力ファイル名」欄が下のように index.html になっています。 |
これを index.php に変更し、「保存」あるいは「保存と再構築」をクリックします。 |
アーカイブページも同様に archives.html から archives.php に変更します。
変更した後、アーカイブページを含め、全てのページを再構築してください。これは各ページの index.html や archives.html のリンクを index.php または archives.php に変更するためです(ただし公開テンプレートには archives.html へのリンクはありません)。
1.2 不要ファイルの削除
ブログのトップディレクトリにある古いファイル、つまり index.html および archives.html を削除します。Movable Type にはファイルを削除する機能はありませんので、FTPツールあるいは TeraTerm 等を利用してログインしてファイルを削除します。
html ファイルを削除する理由は次の通りです。
HTTPサーバの設定にもよりますが、一般的にURLが "/" で終わる場合、サーバは最初に、そのディレクトリの index.html を探すようになっています。当サイトの場合、
http://www.koikikukan.com/
をブラウザに指定して実行した場合、HTTPサーバは
http://www.koikikukan.com/index.html
を一番最初に検索します。index.html が存在しない場合は次候補の index.htm や index.php 等を検索する、という仕組みになっています。
したがって、拡張子を変更しただけでは新しく作った index.php にアクセスされない可能性があります。「可能性がある」と書いたのは、URLに index.php まで指定すれば当然アクセスできるからです。
archives.html については、実際にはURLに archives.php まで設定するためアクセス上は問題ありませんが、削除することを推奨します。*1
参考までに、この「ファイルを検索する」という設定は Apache HTTP サーバの「DirectoryIndex ディレクティブ」で行います。
このディレクティブに記述されたファイルがひとつもみつからない場合はそのディレクトリのファイルリストが表示される、という仕組みになっています。
2.アーカイブ・テンプレートの拡張子を変更する
2.1 表示モードの切替(3.3以降)
各ブログ管理画面左にある「設定」をクリックします。Movable Type 3.2 をお使いの場合は2.2項に進んでください。
Movable Type 3.3 以降をお使いの場合、管理画面の表示モードが「基本モード」と「詳細モード」の2つに切り替えられるようになっており、デフォルトでは「基本モード」になっているので、ページ右側にある「詳細モードに切り替え」をクリックしてください。 |
2.2 拡張子の変更
ページ上にある「公開」をクリックします。
表示されたページ中段に「公開」欄があります。その2つめの「アーカイブの拡張子」を書き換えます。
デフォルトは「html」になっています。 |
これを「php」に書き換えます。書き換えたら一番下の「変更を保存」をクリックします。 |
2.3 旧ファイルの削除
2.2項の設定が終わったら再構築を実施しますが、再構築を実施する前に html ファイルを全て削除することを推奨します。*1
ただし旧ファイルへのアクセスでデッドリンクにさせないことと、4項のリダイレクト実施等との手順を考慮して、削除は後回しにして頂いて構いません。
Movable Type にはファイルを削除する機能はありませんので、FTPツールあるいは TeraTerm 等を利用してログインしてディレクトリ(またはファイル)を削除します。ファイルが大量にある場合はひとつずつ削除するのではなく、「アーカイブディレクトリ」を丸ごと削除する方法が便利です。
「アーカイブディレクトリ」はこのエントリーの便宜上の用語で「アーカイブページが保存されるディレクトリ」を指しますが、「アーカイブの設定」の有無によって「アーカイブディレクトリ」の位置が若干異なります。
2.3.1 「アーカイブの設定」を行っている場合
管理画面の「設定」→「公開」にある「アーカイブの設定」をチェックしていれば、その最初のディレクトリまたは配下のファイルを削除します。
上記の例では、FTPツール等で archives ディレクトリを削除します。削除したディレクトリは再構築によって作成されます。
2.3.2 「アーカイブの設定」を行っていない場合
「アーカイブの設定」にチェックを入れてない場合は、管理画面の「設定」→「公開」にある「アーカイブ・マッピング」の規則にしたがったディレクトリが、トップディレクトリ直下に作成されています。それらのディレクトリを削除します。誤って必要なディレクトリを削除しないようにしてください。
参考までに、「アーカイブ・マッピング」欄をカスタマイズしていなければ、
- 月別・週別・日別アーカイブ:「年(「2006」等)」ディレクトリ
- カテゴリー・アーカイブ:「catX」ディレクトリ
が最上位のディレクトリになると思います。ディレクトリやファイルを削除する前に(削除して良いファイルであることを)確認してください。
3.XML宣言の修正
テンプレートの先頭に
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
がある場合、拡張子を .php にして表示すると、ページが真っ白になるか
Parse error: parse error, unexpected T_STRING in [...] on line 1
というようなエラーが表示されます。これはXML宣言がPHPとして誤解釈されてしまうための事象です。
これを回避するには、XML宣言を削除するか、
<? echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>
とPHPが解釈可能なフォーマットに変更してください。
4.ファイル・ディレクトリのパーミッション変更
PHPファイルが実行ファイルとして動作するように、再構築で生成されるディレクトリおよびファイルのパーミッションを変更します。
Movable Type 3.3 以降の場合であれば、例えば mt-config.cgi に下記の3行を追加します。
HTMLUmask 0022
DirUmask 0022
HTMLPerms 0777
3.2 の場合は、下記のように mt-config.cgi に設定項目がコメントアウトされて表示されています。
# 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
これを、設定が必要な行の先頭にある「#」と半角空白を削除して、先と同じ内容に修正してください。
# 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
なおこの設定項目は一意に決められるものではなく、レンタルサーバによって設定値が異なる可能性があります(上記はさくらインターネット+MySQLの場合)。また DBUmask 0022 が必要な場合もありますのでご注意ください。
HTMLPerms は、perl の sysopen の第4パラメータ、つまりファイル作成時のパーミッションとなります。
XXUmask は、Movable Type 内部から Linux の umask コマンドを実行する時の引数となります。umask の機能については下記を参照ください。
5.ファイルのリダイレクト
アーカイブページについて、旧ファイル(html)から新ファイル(php)へのリダイレクトを行います。リダイレクトを利用すれば、外部からリンクされてしまっている旧ファイルへのリンクを、新ファイルへ転送することができます。
設定の詳細は「.htaccess によるリダイレクト」を参照ください。
6.出力フォーマットをカスタマイズしている場合
1項および2項で MovableType の全ての拡張子は .php に変更されますが、アーカイブページ(カテゴリー/月別/日別/週別/エントリー等)のパスおよびファイル名をカスタマイズしていて、「出力フォーマット」欄に拡張子 "html" を直接設定している場合は2.2項の設定が反映されません。
この場合、「出力フォーマット」欄の拡張子の代わりに %f または %x を使用します。2.2項の設定により、%x は ".php" に変換されます。
詳細については下記のページを参照ください。
Movable Type 3.3マニュアル:アーカイブ・ファイル名定義
2006,08.28 追記
4項のパーミッション変更作業がもれていたので追加しました。
2006,08.30
XML宣言の修正について追加しました。
2007.10.28
記事のページ分割を解除しました。
*1 旧ファイルを削除する理由は、もし削除しなければ同じ内容のファイルが2つ存在することになります。内部リンクから旧ファイルへのアクセスがなくても、外部からのリンク等が残っている場合、検索エンジンのクロール対象となり、ペナルティを受ける可能性があるためです。
- Movable Type 4 の PHP化
- Movable Type 4 で PHP 化する時の注意事項
- Movable Type 4 の PHP 化で XML 宣言を自動的に切り替える
- Movable Type の PHP化(その2:.html のままPHPを有効にする)
≫ ただいま、色々変更中。 from 脳内物質大流室 in BLOG
色々と変更中ですが、いかんせんパソコンスキルが中途半端なために悪戦苦闘中です。 ... [続きを読む]
≫ 【MT】MovableTypeのPHP化 from 特別-the blog-
MovableTypeのPHP化については以前からやってみようと思っていたのだが、ようやく手をつけた。 いつもお世話になってる「小粋空間さんのエントリー「... [続きを読む]
≫ Movable TypeのPHP化 from Arias.jp
小粋空間様の「Movable Type の PHP化(その1)」に従い作業。 特... [続きを読む]
≫ Movable TypeのPHP化 from KINGO WEBlog
いつものように小粋空間さんの「Movable Type の PHP化(その1)」... [続きを読む]
≫ 引越し作業、ほぼ完了 from Passing Pictures 3rd
まだDNS設定が完全に新サーバーに浸透していないので、ページによって旧サーバーに... [続きを読む]
≫ Movable Typeのphp化 from Hope Bridge
昨日PHP化にしました。 はじめインストールして、テンプレート変えて、さあエント... [続きを読む]
≫ Movable Typeをphp化 from Webデザイナー、DTPデザイナーになるまで
Movable Typeを使っているブログの方を全てhtmlからphp化をする作業を昨日行いました。htmlからphp化をして、元のhtmlのページを全て... [続きを読む]
≫ PHP化 from instinc > INSTINCのおもちゃ箱
ド初心者なので忘れないようにメモっておきます。新しいブログ(サイト内に)を作る時... [続きを読む]
≫ ビューティー・アクセス解析 - BBClone from SCREAMO
BBCloneという、フリーでとってもグラフィカルなアクセス解析プログラムがある。とても高機能とは言えないが、ちょっとした日々のアクセスチェックには十分... [続きを読む]
≫ 拡張子htmlのままPHP化(さくらインターネットの場合)1:挫折 from 独自ブログ作成法
■PHP化 小粋空間の「Movable Type の PHP化(その2:.htm [続きを読む]
≫ MTをPHP化してみた from nozoki-ya
カテゴリーによっては、エントリーの数が多くてアーカイブページを見ると凄い長いペー... [続きを読む]
≫ MTをPHP化に挑戦♪ from 揚羽蝶のめも
ひどく苦労しました。MT4なのでHPを探したけどもなかなかなくて・・。すぐにでき... [続きを読む]
≫ Movable TypeのPHP化 from ARYLA.LOG
MT Paginateの導入をしたかったため、MTをPHP化することに。 利点と... [続きを読む]
待ってました!実は以前から何度か挑戦していたのですけど、phpにするとパーミッションが666になってしまうと何故かサーバーエラーになってページが表示されなかったりなどのトラブルで挫折していました。
挫折途中のブログは http://blog.michiko-oota.com/ です。
どのエントリーで質問しようか迷ったり、他にすることがあったりで後回しになっていましたが、いつかちゃんと解決したいと思っていました。この機会に是非最初から勉強し直したいと思います。宜しくお願いします。
>路子さん
こんばんは。
当サイトの過去の記事は自宅サーバでのカスタマイズでしたので、パーミッション変更の手順が欠けている状態になっていました。すいません。
今回はきちんと書き直しましたので参考になれば幸いです。
yujiroさん、有り難うございました。お陰様でトラブっていたphp化はパーミッションの設定部分をmt-config.cgiに書き加える事で回避出来ました。サーバーエラーは出なくなりました。嬉しいっ!
これで本拠地の「きょうはいい日」もphp化へ移る事が出来ます。少しずつ進化させていただけるのも、こちらのご指導のおかげです。
>路子さん
こんにちは。
ご連絡ありがとうございました。
うまくできたようでなによりです。
ではでは!
こんばんは
php化作業中です
この方法はさくらインターネットでも
使えるのでしょうか・・・?
>通りすがりさん、路子です
私はさくらインターネットを利用させていただいてます。
お返事ありがとうございます
昨日、6時間ほど格闘しましたが、
アーカイブページとメインページのphp化で
てこずっておりますのでお知恵を・・・
MTのコンパネから、テンプレートを選択し、
.htmlを.phpに変更後に、再構築をします
その後に、出力されたindex.phpを確認すると
なぜか500エラーが出てしまいます
記載のあるxmlの宣言は削除してしましたが、
やはり変わらず・・・
ほかに何か設定するべき箇所があるのでしょうか
>通りすがりさん
こんにちは。
ご質問の件ですが、4項の mt-config.cgi の設定は変更されましたでしょうか。
ご確認くださいますよう、よろしくお願い致します。
こんにちは
原因がわかりましたので報告します
mt設定ファイルが配置されたmtファイルの外に
blogというディレクトリを作成し、実際のblogを
配置していた(アクセスURL)ために、
php化ができなかったようです
同じ設定のまま/mt/blogというディレクトリに
したところ、嘘のようにphp化に成功しました
何故できなかったのかがわかりませんが、
何かしらの制限があったのかもしれません
通りすがりに対処いただきまして感謝です
今からテンプレートをいじってみたいと思います
>通りすがりさん
こんにちは。
ご連絡ありがとうございました。
無事に解決されたようで良かったです。
ではでは!
yujiroさん
こんばんは。先日は、お世話になりました。今回、php化(1)に挑戦してみました。以上の手順を踏んでやってみたのですが、500 internal server errorになってしまい、あきらめかけていたのですが、index.phpとarchive.phpのパーミッションが、666になっていてFTPを使って私が使用しているレンタルサーバーの設定に変更してみたらうまく行きました。mt_confg.cgiに追加する部分は、行い、アップロードしてあったのですが、index.phpとarchive.phpは、手動でやらなきゃだめだったのでしょうかね。。。
ともかく、こちらの記事のようにしてみたらうまく行ったので感動してお礼のコメントをつけさせていただきます。
>ナタリーさん
こんばんは。
とりあえずうまくできたようでよかったです。
もしかしたらphp化の後、インデックステンプレートが再構築されていなかったかもしれませんね。
今後も再構築して、ファイルのパーミッションが777になっていれば問題ないと思います。
それではよろしくお願い致します。
yujiroさん
いつもお世話になっております
2ndブログの方
http://suzie.world.coocan.jp/line/index.php(Lazulie日記)
のエントリーが500を超え再構築がとても時間が掛かるのでphp化を挑戦することにしたのです。
最初Movable Type の PHP化(その2)を試したんですが、サイトにアクセスするとapplication/x-httpd-phpのファイルを開こうとしてしまいます。
それで、その1の手法に変更したのですけどリダイレクトも上手くいかないのと、http://suzie.world.coocan.jp/line/と略すとapplication/x-httpd-phpのファイルを開こうとしてしまいます。
カスタマイズは自己責任で行うことはもちろん承知しているのですが、どうしたら良いのか途方にくれてしまいました。
もしこの事象を直す方法ご存知ならご助言いただけないでしょうか?
サイトをphp化にしたいと思ってます。
コメント書くのが困った時ばかりで、すみませんです><。
yujiroさん
少し前にコメントした件ですが、自分でもよくわかりませんが、サイトがちゃんと見れるようになりました。
お騒がせして申し訳ありません><。。
>suzieさん
こんばんは。
ご連絡ありがとうございました。
ご質問の件、自己解決されたようで良かったです。
ではでは!
お手数ですが質問させていただけますでしょうか?
MT3.34でPHP化を行ったのですが、XML宣言のところで
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
を
<? echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>
に修正する、ということでテンプレのインデックス、アーカイブ、システムの中に
その記述があるもの全てを修正しました。
再構築を行うと、何故か全ページの一番上に、
') ?>
が表示されてしまいました。
結局、
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
に戻したら表示も消え、全ての動作が問題なさそうなのですが、
・記述はこのままで良いのか?
・もしくは削除してしまったほうが良いのか?
ご教授願いますでしょうか。当方XREAサーバーを使用しています。
宜しくお願いいたします。
すいません、記述がへんになってしまいました。
ようするに、「3.XML宣言の修正」を行うと、
') ?>
が全ページに表示されてしまうということです。
お手数おかけしてます。
取り急ぎ削除して正常動作するようになりました。
>JUNさん
こんばんは。
ご返事遅くなってすいません。
ご質問の件ですが、たしか PHP が記述された .html ファイルを読み込むとそのような不具合になったような気がします。
例えば、拡張子の設定を .html を生成する状態で PHP 化(例えば3項を実施)を行ない、再構築を実施すると PHP スクリプトが記述された index.html が生成されます。その後に拡張子を .php に変更して改めて再構築すると、正常な index.php が生成され、ディレクトリには
index.html
index.php
の2ファイルが存在することになります。
この状態で、ファイル名を指定しない URL でブラウザからアクセスすると、index.html が優先されるため(誤った記述の index.html にアクセスして)、表示に不具合が発生します。
この場合、FTP ツールで index.html を削除すれば解消します。
同じ事象ではないかもしれませんが、参考になれば幸いです。
それではよろしくお願い致します。
>yujiroさん
どうもレスありがとうございます。
当方での状況は、php化を行いhtmlファイルを全て削除した後の状況でしたので、そのケースには当てはまらない感じです・・。
ただ、「3.XML宣言の修正」内でXML宣言を削除するか記述追加するか、という選択肢だったのでこれでよいかな?とも思います。が、デザインに少々の乱れが発生(理由は良くわかりませんが・・)しましたので、個別に修正して解決しました。
現在ではサイドバーなど主要構成部品をモジュール化し、再構築時間が大幅に短縮され大変快適になりました。どうもありがとうございます。
>JUNさん
こんばんは。
ご連絡ありがとうございました。
お役に立てなかったようですいません。
XML宣言を外すとIEで若干デザインが変わるかもしれません。
とりあえず正常に表示されたようで良かったです。
ではでは!
通りすがりさん、 yujiroさん、ありがとうございます!
このページを見ながら、さくらインターネットで、拡張子HTMLのままのPHP化を試みていたのですが、どうしてもうまくいかず、悩んでいました。
でも通りすがりさんのコメントを読んで、わたしも
www/test/フォルダのブログを、www/mt/test/フォルダにと変更したところ、ちゃんと「これをブログのトップディレクトリにアップロードしてアクセスしてみてください。下記のように表示が出れば成功です。」のとおりの画面が出て、成功しました!
バンザイ!
こちらのコメントで助かりました。お礼を伝えたく、コメントしました。
>森田慶子さん
こんばんは。
コメントありがとうございました。
無事にできたようでなによりです。
ではでは!
こちらに詳しく書かれていたのですね。
いろいろお手間取らせてすいません
ありがとうございました。
>dorago19さん
こんばんは。
ご連絡ありがとうございました。
また何かありましたらご連絡ください。
なおエラーメッセージ等はGoogleで検索すればヒットする場合もあります。
shpと申します。
Movable Type version 4.01 php化予定しています。
サインイン 管理画面
設定 → ブログ設定 → 公開
公開パス
サイトURL http://***.jpn.ph/mt4/ 鍵 Site URL Lock
サイトパス D:\xampp\htdocs\mt4\ 鍵 Site Root Lock
鍵がLockされて、鍵が開きません。解除法、わかりますか、次に
アーカイブの拡張子 html → php
変更保存すると、エラー
サイトURLは絶対URLでなければなりません。と出て変更保存が出来ません。
上記 サイトURL サイトパスの設定は間違っていますか。
以上の件宜しくお願い致します。
Windows XP SP2 DDNS Apache/2.2.4 (Win32) PHP/5.2.3 MySQL 5.0.43 Perl 5.8.8-2.2.4
>shpさん
こんにちは。
ご質問の件ですが、IE6ではいずれも正常に動作しないようです(IE7は未確認)。
Firefox 等、別のブラウザで操作してみてください。
ロック解除は鍵アイコンをクリックすれば解除されます。
それではよろしくお願い致します。
shpです。
Webブラウザ問題なのでしょうか。
ちなみに下記Web ブラウザは全て鍵解除、変更保存出来ませんでした。
IE7 × Opera9.50 × Sleipnir2.517 × Firefox2.0.0.7 ×
Lunascape4.5.0 rc1 ×
Webブラウザの問題でしたら、他のWebブラウザで試してみます。
>shpさん
こんにちは。
ブラウザの JavaScript がOFF になっていると、同様の事象(「サイトURLは絶対URLでなければなりません。」というエラー)が発生するようです。
また、特定のPCの全ブラウザでNGになるようでしたら、(可能であれば)他のPCからお試し頂けますでしょうか。
私の方で考えられる原因および切り分け方法は上記で全てです。これで正常に動作しないようであれば、申し訳ございませんが、ネット上で情報を検索されるか、Six Apart にお問い合わせください。
それではよろしくお願い致します。
こんにちは。
先日発売された本を読んで、php化をしようと考えて、実行しようと思ったのですが、メインページの出力ファイル名を「index.php」に変更して(p85の3番)、そこでいったんストップしhtmlに戻したのですが、500エラーが表示されてしまいます。
テンプレもデフォルトに戻してみたのですが変化ありませんでした。
同じような問題があるのではと、貴サイトのコメント欄をいろいろ探してみましたが、見つかりませんでした。
お時間に余裕がある時にでもお答えいただけませんでしょうか。
ps.本の内容は素晴らしかったです!
MT関連書籍で今まで満足する物がなかったので買ったことがなかったのですが、この本は即買いしました。
>じょうじさん
こんばんは。
書籍ご購入、ありがとうございます。
ご質問の件ですが、500エラーはindex.htmlをブラウザで表示させようとした時に表示されますでしょうか?
解消方法ですが、P84の1番を行っていたら、その設定を削除して、FTPツールでindex.phpを削除し、index.htmlを再構築してください。
P84の1番を行っていない場合は、FTPツールでindex.phpを削除し、index.htmlを再構築してください。この方法で500エラーが解消しない場合、お手数ですが再度ご連絡頂けますでしょうか。
PHP化につきましては、1番の設定がレンタルサーバによって異なる可能性があるので(本書ではスペースの都合上割愛しています)、レンタルサーバ名をご連絡頂ければ、1番の設定を確認致します。
それではよろしくお願い致します。
yujiroさん、はじめまして。
このphpによる高速化を試しているのですが、すでに投稿している方々のコメントもあわせていろいろな現象が出てしまい、困っています。まずわかったこととしては、
私はさくらインターネットサーバ、MT4.01を利用
/ phpに変えるのはindex.htmlとachives.htmlだけ
/ achivesの設定ではhtmlからphpに変える
/ .htaccessもpublishing後にできるようですが、この中のoption-~~も#でコメントに。
/ そして権限は「755」
これでphpファイルが動くようになりました。それまでは、
(blogのURL)/mt/test.phpは動作するけど、(blogのURL)/(任意のフォルダ)/test.phpでは動作しませんでした。つまり、500 internal~というエラーがでてその原因がわかりませんでした。test.phpは「Movable type WEBデザインの新しいルール」のp86の項目6を利用。ただしここのプログラムには(;)が抜けています。
その結果、2007/10/index.htmlあるいは2007/10/29/index.htmlと日付別にindex.htmlができていたのが、それがなくなりました。つまり、表示もおかしくなってしまいました。
さらにこの現象の前提として、同雑誌のp88のdinamicとstaticのpublishingの設定を変えたからかもしれません。
この変更だけで、publishingには3時間もかかる始末。新しくentryしても、どこにもindex.phpができず、当然ながら表示はおかしくなってerrorも発生。
Page Not Found
Smarty error: [in evaluated template line 14]: syntax error: unrecognized tag 'mtiffileuploadsenabled' (Smarty_Compiler.class.php, line 580)
Fatal error: Smarty error: [in evaluated template line 35]: syntax error: unrecognized tag 'mtentriesranking' (Smarty_Compiler.class.php, line 580) in /home/emagazine/www/mt/php/extlib/smarty/libs/Smarty.class.php on line 1095
ということで、まずはdynamicを止めにしてstaticのpublishingに戻そうと思っています。p74の表の記述だけでは何がどう変化して、自分がsigninした後、entryした場合と、第三者がsigninしないで投稿(私のblogはこの方式を採用でデザイン中)では、たぶん、前者だけには有効なのかなと。つまり、signinした人だけにpublishingがかかるので、その時間を短縮するだけの効果だけなのかなと。第三者が投稿するときのentryではバックではpublishingは発生しているようですが、今は表示そのものがおかしく上記のエラーのために、どう変更すべきかがわかりません。
質問ではなくなりましたが、結構このphp化で苦労しているところです。
>kennyさん
はじめまして。
書籍購入ありがとうございます。
ご質問ではないとのことですが、何点か回答させて頂きます。
- コメントの内容より、PHP化とダイナミックパブリッシングを同時にご利用されようとしているものと判断しましたが、「ダイナミックパブリッシング」と「PHP化」は、いずれか片方をご利用ください(説明不足でしたが、本書の順番で両者同時に設定することは基本的に想定されておりません)。
- ダイナミックパブリッシングを設定した場合、テンプレートの内容はPHP(Smarty)と呼ばれるとして動作します(つまりPHP化自体が不要)。PHPのSmartyは動作しますが、PHP化のカスタマイズが全てそのまま使える訳ではありません。
- ダイナミックパブリッシングを設定すると、静的なファイル(index.php等)は生成されなくなります(キャッシュ機能を利用すればファイルが生成されますが、ファイル名は外部から判断できない名前になります)。
- 「/ phpに変えるのはindex.htmlとachives.htmlだけ」とありますが、「/ achivesの設定ではhtmlからphpに変える」を行ったことで、カテゴリーアーカイブや月別アーカイブ、ブログ記事アーカイブ、ウェブページ等のファイルもPHP化されます。
- 「.htaccess」はダイナミックパブリッシングの設定を行う時に生成されます。PHP化の作業ではこのファイルは生成されません(ダイナミックパブリッシングの項で説明がもれていたことはお詫び致します)。
- phpinfo() の1行についてはセミコロンが抜けていても動作上の問題はありません(たしかにセミコロン付きが推奨です)
それではよろしくお願い致します。
一つ上の500エラーに関して質問させていただいたじょうじです。
今回のこのエラーとほぼ同時にサーバーで問題が発生したためにまだそちらの方の問題解決に苦労している状態です。
まだ、試してはいませんが、先にお礼をと思い。。
改めてありがとうございました。
>じょうじさん
こんにちは。
ご連絡ありがとうございました。
不具合が解消しないようでしたらお手数ですが、再度ご連絡頂ければ幸いです。
それではよろしくお願い致します。
yujiroさん、コメントありがとうございました。
投稿の#31の状態からphpの状態だけに戻しました。今回の教訓ですが、いろいろ小さなblogを作って、まずはそこで試して、自分の今デザインしているblogに繁栄する方法がベターかなと。
PHP化とダイナミックパブリッシングを同時に利用しようとしていました。とにかくpublishingやentryに時間がかかることが気になって。でもその問題は後で考えることにして、php化の恩恵をフルに利用しようと思っています。
このphp化に直接関係はありませんが、saveするときに時々ソースの後半がなくなってしまうことってないですか?あるいはfooterの部分の表示が時々なくなることも。まあ、これらは小さなことですが。
今後ともyujiroさんのblog、参考にさせてください。
PS:signinをしたつもりなのですが、いまだに返信が来ていません。ゲスト投稿で申し訳ありません。
>kennyさん
こんばんは。
ご連絡ありがとうございました。
テンプレートの保存時にソースの後半がなくなってしまうのはバグのようです(Six Apartでも原因不明の模様)。
テンプレートのバックアップをとっておくことをお勧めします。
すいません。また、お世話になります。
PHP化を行って成功しているようなんですけどもただ、一つ問題が発生しています。
JavaScript 不要なサイドメニューのツリー化 for Movable Typeのカテゴリのツリー化を利用してるんですけどもPHP化してからカテゴリーの追加の作成で親カテゴリの下に子カテゴリを作成しても子カテゴリが表示されなくなりました。エントリー記事には、きちんと作成した子カテゴリが表示されてますし、親カテゴリにも件数だけは増えています。
お手数お掛けしますが、対処方法をご教授くださいませ。
すんません。
自己解決しました。
申し訳ございません。
ありがとうございました。
>kankitiさん
こんばんは。
ご質問の件、自己解決されたようで良かったです。
こちらも原因をお書き添え頂けると幸いです。
ではでは!
こんにちは。とても参考になるサイトですね。こんなサイトがいつまでも続きますように・・。
ところで、このページを参考にして試しに、php化をやっています。サーバーはさくらインターネットのスタンダードプランなんですが、、、500サーバーエラーが出てしまいます。
このページの4のパーミッションの設定も行っています。MTはMT4です。PHPはPHP5. ブログのデータフォルダは、MTのプログラムフォルダ・フォルダ名『MT』の下でなくて、MTフォルダのあるディレクトリの中に並んで置いてあります。
そこで試しに手動で、サーバーのwwwフォルダの下のブログのデータフォルダのパーミッションを755に変えてみたら、phpファイルが動いて500サーバーエラーが出なくなりました。index.php自体のパーミッションは644.これでphpファイルが動きましたので、今度は自分で初歩のphpの練習用phpファイルを同じフォルダやその他の同列のフォルダに置いてパーミッションテストをすると、やはり、フォルダが755であれば、phpファイル自体は644であってもphpファイルを500エラーを出さずブラウザに表示出来ました。
ちなみに、このページの4の設定をし、何度も再構築を掛けましたが、ファイルもフォルダもパーミッションの変更が発生しませんでした。
そこでご質問なんですが・・
①不安になりました。もともとのブログフォルダのパーミッションは777だったかと記憶してますが忘れてしまいました。ブログフォルダのパーミッションは777でなければダメなのでしょうか。それとも755でも今後の運用に支障は出ないのでしょうか。
②何が原因でこのページの4のパーミッションのCGIファイル設定が無効になるのでしょうか。どうしたら有効になりますか。
③このページではパーミッションが777であればOKと書かれていますが、同じさくらなのに何故777のフォルダではphpファイルが稼動しないのでしょうか。MT4、PHP5、アパッチ、何かバージョンアップが原因で気にしなくてよいとか、そういうことがありますか?
自力解決しました。phpなどのプログラミングを初めてやってみているもので、すみません。mt-config.cgiを何度か書き直し、再構築していたら、出来ました。
DBUmaskやHTMLPermsなどの意味をぐぐって調べていました。
mt-config.cgiに私の場合は次の記述を最後尾に付けています。
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022
HTMLPerms 0777
UploadPerms 0777
これで全部再構築後のパーミッションが755になり、さくらインターネットのphp稼動条件の755、705に合致するものが常に自動作成出来るようになりました。
phpやアパッチ、その他のバージョンは関係ありませんでした。
有難うございました~
>smさん
こんにちは。
ご質問の件、自己解決されたようで良かったです。
ではでは!
いつも参考にさせていただいております。
今回4.01の設置をしたところhtmlでは無事に表示されたのですが
php化したところ500エラーになってしまいました。
属性が755推奨のエックスサーバーなので
HTMLUmask 0022
DirUmask 0022
HTMLPerms 0777
の処理を行い、FTPで見るとちゃんと755になっています。
しかし、500エラーです。
さらに、「test.php」を作成してみたのですが
これも755にしても500エラーです。
この場合どうすればよいのかわからず、
何かアドバイスをいただければとコメント投稿させていただきました。
よろしくお願いいたします。
すみません。。。
自己解決いたしました。
問題は、ブログの「サイトURL」のフォルダの属性でした。
今までファイルの属性ばかりを気にしていましたが
ブログを公開するフォルダの属性もFTPで変更しなければならなかったのですね。
コメント欄を汚してしまって申し訳ありません。
これからもよろしくお願いいたします。
>柏の葉さん
こんにちは。
ご質問の件、自己解決されたようで良かったです。
(説明不足で申し訳ありません)
ご連絡ありがとうございました。
ではでは!
まったく初心者です。お聞きしたのですが宜しくお願いします。上の内容を読んでみるのですがなんともわかりません。書籍のテンプレートの入れ替えを行なったのですが、表示がうまくされず、行やデザインが重なっているような状況です←これが500エラーと呼ぶのでしょうか。書籍のP84の設定を行なったなかったようなのですが、その方法がどうしてもわからなく・・・。mt-config.cgiをダウンロードして、一番したに
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022
HTMLPerms 0777 を追加とあるのですが、
## Movable Type Configuration File
##
## This file defines system-wide
## settings for Movable Type. In
## total, there are over a hundred
## options, but only those
## critical for everyone are listed
## below.
##
## Information on all others can be
## found at:
## http://www.movabletype.jp/documentation/config
#======== REQUIRED SETTINGS ==========
CGIPath /mt4/
StaticWebPath /mt4/mt-static/
#======== DATABASE SETTINGS ==========
ObjectDriver DBI::sqlite
Database /home/igkfeeligk/igkfeeligk.xsrv.jp/public_html/mt4/mt.db
の下に追加してアップローすればいいのでしょうか。
教えて頂けないでしょうか。サーバーはXserverです。
>又佐さん
こんばんは。
ご質問の件ですが、まず、この記事の内容は前のバージョン3(MT3)の記事ですので、内容のすべてをMT4に適用しないでください(過去の記事をバージョン4に対応させるのは物理的に不可能ですので、ブログの投稿記事が2007年8月以前のもの、バージョンを明記していないものはバージョン3対応と思ってください)。
今回の件については書籍の内容だけで賄えます。
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022
HTMLPerms 0777
は、mt-config.cgi の行末に追加してください(この記事はバージョン3のものなので、mt-config.cgi の内容が大きく異なるため、参考になりません)
なお、Xserverではブログのindex.htmlがおかれているディレクトリ自体も755にする必要があるようです。
下記のサポートページにそのように書かれています。
http://faq.xserver.jp/?action_pickup=on&dir_number=65&template_number=138
500エラーの場合は、500 ~という表示がされるので、500エラーではないように思われます。
正常に動作しない場合、再度ご連絡頂けますでしょうか。
それではよろしくお願い致します。
yujiro さん ありがとうございます。
とにかくやってみます。元旦に、このような初歩的な質問にもお答えいただいて、ほんとに初心者にはありがたいです。とにかくやってみます。
はじめまして。いつもサイトと書籍を参考にさせていただいています。
私もphp化で苦戦していて、書き込みさせていただきました。
ファーストサーバで、MT4.01、php5で、手順の通り拡張子を変更し、mt-config.cgiに以下を追加しました。
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022
HTMLPerms 0777
が、どうしても500Internal Server errorになってしまいます。
ファイルおよびフォルダの拡張子も確認済み、ブログの場所をmtの下に移動してもNGです。
見落としがあるのか、他に試す箇所があるのか、、もし何かご存じでしたら、教えていただけると大変助かります。
どうぞよろしくお願いいたします。
1つ前のコメントを書き込みましたmaruです。
すみません、「ファイルおよびフォルダの拡張子も確認済み」で、拡張子ではなくて属性でした。失礼いたしました。
>maruさん
こんばんは。
ご質問の件ですが、ファーストサーバのPHP5は、拡張子が .php5 になるようです。
拡張子が .php のままでPHP5を動作させるには、下記の記事が参考になるかもしれません。
http://www.outbreak2000.com/archives/15.html
それではよろしくお願い致します。
yujiroさん、ありがとうございます。
拡張子php5も試してみていますが、やっぱり500エラーになってしまうんです。
そういえば、何も考えず最初に試したときは、ページ自体は表示されたけれど、文字化けしている状態で、それを直そうといろいろやっているうちに500エラー以外のものが出なくなったような…。
もう少し苦しんでみます。。
お騒がせしましたmaruです。
結局、全ページの冒頭に、phpのパスと
<? header("Content-type: text/html; charset=UTF-8"); ?>
を書くことで、正常に表示されるようになりました。
これでやっと次のステップへ移れます。ありがとうございました。
>maruさん
こんばんは。
ご連絡ありがとうございました。
ご質問の件、自己解決されたようで良かったです。
ではでは!
おせわになります。
いつも参考にさせてもらっています。
phpには成功したのですが、しばらくして、rssがエラーになっている事に気づきました。XML ページを表示できません。と表示されてしまいます。
検索で、以下のようなページを見つけ、試してみましたがダメでした。
ttp://okwave.jp/qa2589335.html
お忙しいところ、もしご存知でしたら、解決策を教えてくださいませ。
>yuuさん
こんばんは。
ご質問の件ですが、まず、rss用のインデックステンプレートはPHP化とは無関係の性質のものなので、もしrssの拡張子を変更されたのであれば元に戻してください。
不具合が直らないようであればURLを添えて再度ご連絡頂ければ幸いです。
それではよろしくお願い致します。
おはようございます。
昨晩、いろいろ調べてみましたら、最近の記事の1つがタイトルが長すぎて文字化けしていたのが原因らしく、短くしましたら、RSSが無事表示できました。
解決いたしましたが、今回はご親切にありがとうございました。
こんにちわ。
再びつまづいてしまいました。
今回は、さくらサーバープレミアムでのphp化につまづいています。MTOS4.1です。
mt-config.cgiが無く、mt-config.cgi-originalしかありません。
php化はしていますが、ファイルの属性が変わらないので表示出来ないようです。手作業でファイルの属性変更しましたら、phpページは表示できました。
mt-config.cgi-originalに、
HTMLUmask 0022
DirUmask 0022
HTMLPerms 0777
を追記して試しましたが、ファイル属性がかわらないようです。
解決策をご存知でしたらよろしくお願いいたします。
*年末年始のお忙しいところすみません。お時間が空きましたらお願い致します。
>yuuさん
こんばんは。
ご質問の件ですが、mt-config.cgi-original はダミーなので、そこに値を設定してもMTの動作は変化しません。
また、mt-config.cgi がなければMTOSは動作しないので、ページが正常に表示されたのであれば、FTPツールで参照しているMTOSのディレクトリが誤っている可能性があります。
再度インストールしたディレクトリ等をご確認ください。
どうしてもお分かりにならない場合はメールでFTPのユーザ・パスワードとMTOSのログイン・パスワードをお知らせください。こちらから確認致します。
それではよろしくお願い致します。
yujiro様、こんばんは。
どの記事に質問して良いのか分からないのですが、この辺りかな?って思って質問させて頂きます。
ちなみに、現在Blogはエラー状態で見ることができません(*_ _)人ゴメンナサイ
本来は解決してから質問しろよ!!って怒られるところですが。。。
本題に入らせていただきます。
以前からのBlogのバージョンアップとyujiro様のバージョンアップの記事を見つけて、今まで使用していたバージョンの記事やコメント・トラバをエクスポートしてからバージョンアップしたのですが、どこをどう間違えたのか自分でも不思議なのですが、再インストールしてからインポートをしたのですが、かなりの数の記事(BlogPetの書いた記事を含む)がインポート出来ないのですが、どこが間違っているのかご存知でしたら教えて頂けないでしょうか?よろしくお願い致します。
>tsudukuさん
こんばんは。
ご質問の件ですが、インポートのフォーマットに誤りがある場合、正常にインポートできない可能性があります。
具体的には、連続したハイフンが記事に含まれている場合です。
それ以外の原因については、すいませんが分かりません。
それではよろしくお願い致します。
yujiro様、早速のお返事、ありがとうございました。
ハイフンなど記号があるとダメなのですね(ノД`)シクシク
今まで何度かバージョンアップしながら、記事の件数が減ったなぁとは思っていたのですが、それではしょうがないですね。
本当にお返事、ありがとうございました。
mtでつまづいたときは、いつも参考にさせていただいてます。ありがとうございます。今回もphp化に始めてトライして、1時間かからずに完了することができました。感謝です!
>タビエルさん
こんにちは。
コメントありがとうございます。
PHP化、無事にできたようでなによりです。
ではでは!
いつも参考にさせていただいております!
早速手順にしたがって、php化できました!
ですが、naviのブログをクリックすると、php化する前の記事は表示されるんですが、php化してからの記事は表示されません。おなじように、カテゴリ・アーカイブ共に表示されません。
ご教示お願いできませんか?
>つむらやさん
こんにちは。
ご質問の件ですが、カテゴリ・アーカイブについてはPHP化を行う前のファイル(index.html)が残っているようですので、index.htmlを削除ねがえますでしょうか。
前半の「naviのブログをクリックすると、php化する前の記事は表示されるんですが、php化してからの記事は表示されません。」は具体的にどのページでどのリンクをクリックしたときの不具合かをお知らせください。
それではよろしくお願い致します。
早速のご教授ありがとうございました!
無事できました。