Movable Type3.2のコメント一覧のテンプレート(mt-comments.cgiとMT/App/comments.pm)で、PHPスクリプトを利用したいのですが、方法がわかりません。MTIncludeなどを利用するのかなと思うのですが・・・

回答の条件
  • 1人3回まで
  • 登録:2006/05/29 14:29:28
  • 終了:2006/06/05 14:30:03

回答(3件)

id:worstman No.1

最低人間回答回数121ベストアンサー獲得回数62006/05/29 14:53:10

ポイント27pt

MTIncludeはテンプレートモジュールを読み込む為のテンプレートタグです。

結論から言えばこれを使う必要はありません。

テンプレート内に普通にPHPスクリプトを記入すれば動きます。

ただし、出力するファイルがhtmlである場合、サーバ側がhtml内のPHPスクリプトの実行を許可している必要があります。

サーバにもよりますが、PHPの実行の際にはファイルの拡張子が「.php」か「.phtml」あたりで無ければ実行を許可していない場合が多いようです。

つまり、

「出力するファイル名をサーバがPHPの実行を許可している形式に変える」

のが方法です。

id:maxikira

出力される時に、http://www.sample.com/blog/mt-comments.cgi?entry_id=50のようになるので、この場合は出力形式がCGIだと思います。CGIで出力されてもPHPを組み込む方法はありますか?

2006/05/29 14:59:26
id:yoneto164 No.2

ヨネちゃん回答回数813ベストアンサー獲得回数942006/05/29 17:13:54

ポイント27pt

拡張子がCGIですので、通常PHPの実行は許可されないと思います。一応ロリポップで試してみましたがダメでした。

方法があるとすればCGIでインラインフレームを作り、その中にPHPファイルを表示することくらいでしょうか。

id:maxikira

ありがとうございます。私も試してみましたがだめでした。CGIでインラインフレームを作成する以外にないでしょうか?

2006/05/29 17:32:19
id:worstman No.3

最低人間回答回数121ベストアンサー獲得回数62006/05/29 21:32:42

ポイント26pt

逆のアプローチですが、例えば.php内でSSIを実行することが許可されているならば、なんとかできないこともありません。


要するに、PerlのCGIとして動いているmt-comments.cgiを、mt-comments.phpとしてやり、中身を全てSSIとして書き換えれば動くことは動くと思います。


ただし大幅な中身の修正が必要になりますし、サーバが.phpファイル内でのSSIの実行を許可していなければやはりダメ、ということでもあります。


ちなみに拡張子がCGIだからといってPHPが実行されないわけではありません。XREAサーバなどではPHPスクリプトもCGIとして実行可能です。


あとは.htaccessファイルで使用できる場合もあります。

.htaccessファイルを作成して

AddType application/x-httpd-php .cgi

と中身を書いてサーバにおいてやれば拡張子CGI内でPHPが動くようになります。

あとはサーバ側が.htaccessファイルでそれを許可しているかどうかですが。

id:maxikira

参考になりました。試してみます。

2006/05/30 00:54:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません