

お世話になっております。
.html から、SSI で .inc ファイルを呼び出し、その inc ファイル
内に記述の PHP を実行したいと考えております。
例えば、test.html に
<!--#include virtual="../include/inc/meta.inc"-->
のような記述があり、include.inc に
<?php echo "test"; ?>
のように記述があった場合、php4 では test と表示されるのですが、
php5 では、
<?php echo "test"; ?>
がそのまま出てきてしまいます。
php4 と php5 の httpd.conf の違いは
LoadModule php4_module C:/php446/sapi/php4apache2.dll
LoadModule php5_module c:/php525/php5apache2.dll
の行のみです。(いずれかをコメントにし、4と5を切り替え)
以下、httpd.conf の SSI の動作に影響を及ぼすと思われる
行を抜粋します。(コメント行も含みます)
環境は WINDOWS&Apache2 です。
<Directory />
Options FollowSymLinks MultiViews Includes ExecCGI
AllowOverride All
</Directory>
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
Options All
AllowOverride None
Order allow,deny
Allow from all
</Directory>
AddType application/x-httpd-php .inc .html .php
#AddHandler server-parsed .shtml .html
#AddType text/html .shtml .html .inc
AddOutputFilter INCLUDES .shtml .html .inc
#<Files *.html>
#ForceType text/html
#SetOutputFilter INCLUDES
#</Files>
#<Files *.shtml>
#ForceType text/html
#SetOutputFilter INCLUDES
#</Files>
#<Files *.inc>
#ForceType text/html
#SetOutputFilter INCLUDES
#</Files>
原因は php.ini ですかね?
ご存知の方、ご教授下さい。
No.1ベストアンサー
- 回答日時:
SSIde出力させる為には、PHPをCGIとして動作させる必要があるのではないでしょうか?
久しくSSIを書いてないのでうろ覚えですが、以下はどうでしょう?
<!--#exec cgi="../include/inc/meta.inc"-->
<!--#exec cmd="php /path/to/include/inc/meta.inc" -->
とかとか。
<!--#include virtual・・・の場合、.inc(もしくは他の拡張子に変更して)をCGIとしてhttpd.confに設定する必要があるんじゃないかな?と思います。
include.incは
#!/usr/bin/php
<?php echo "test"; ?>
なんて書いて、パーミッションも実行権限が必要だったり。
header("Content-type: text/plain");も必要かも?
さらにPHPがCGIで動作するようになっていたり。
通常のPHPよりも遅かったり。
あまり良いことは無いと思います。
SSIなんか使わずに直接<? echo "test"?>じゃダメなんでしょうか?
確かに、PHPソース側で content-type の制御とか…
色々と設定が必要かもしれませんね。。
事情がありプログラム構造を変更するのは難しいのですが、
なるべくSSIを使わない方向で検討してみます。
No.2
- 回答日時:
基本的に No.1 のとおりですね。
SSIが処理している中にphpスクリプトを書いても(モジュール動作の)phpは動作はできません。今回はphp4がSAPIのようなので処理されているというだけではないでしょうか?つまり単にphpの実行形態の違いです。SSIで書けるようなことはphpでも書けると思いますので、私もphpで統一した方がいいと思います。
ありがとうございます。
今回に関してはどうにかSSIでやるしか無いのですが、
確かにトリッキーな事をやろうという気がしています。
次回から改善しないといけないですね。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1桁7セグメントLEDの部品高さ
-
includeにより他の部分が表示さ...
-
リライトのはずがリダイレクト...
-
ロリポップでの.htaccess 設定
-
コードがそのまま表示される
-
正規表現を使い、URLで条件分岐...
-
PHPのif文でその処理を途中で抜...
-
Subversionのリポジトリの削除
-
FTPコマンドでディレクトリごと...
-
.htaccessにphp_valueが使用できな
-
フォーム処理から戻ったページ...
-
inputタグでphpを呼び出す際、...
-
ftpでアップロードが出来ない
-
2つの画像ファイルが異なるファ...
-
*.php、*.php3、*.phtmlの違い
-
「クラス関数」「メンバ関数」...
-
ボタンのクリック数を合計保存...
-
makefile でファイルをコピーす...
-
拡張子php画像をjpg画像等に変...
-
ftp_getでローカルにファイルが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
nl2bの代用関数を何か知ってい...
-
htmlでphp(WordPress)を動かす
-
EZwebからphpのページを見るこ...
-
path文字列の操作
-
includeでHTMLファイルを呼出し...
-
階層が違う場合の絶対パス相対...
-
電通のタブーとは
-
botを作っているのですが、oaut...
-
「旭日中綬賞 」とはどんな賞で...
-
centos6のlogにscript not foun...
-
携帯で携帯サイトを閲覧すると...
-
PHP file_get_contents 503 ser...
-
htmlの書き換え
-
SSI される .inc ファイル内に ...
-
COOKIEの保存がうまくいかない
-
phpとhtmlについて分からない部...
-
xhtmlサイトでPHPタグをhtml拡...
-
PHPでheader情報がうまく表示で...
-
xrea+ と 開発環境 とで .htacc...
-
ページに読み込みたい
おすすめ情報