0

public_html私はいくつかのフレームをソースとするphpサイトmain.phpをディレクトリに持っています:

<html>
<head>
<title>My Site</title>
</head>
<frameset rows="55, *, 0" frameborder="no">
    <frame id='headerFrame' src="headerFrame.php" scrolling="no">
    <frame src="mainPages/a.php">
    <frame src="mainPages/b.php">
</frameset>
</html>

main.php の php コード タグ (表示されていません) はサーバーによって正しく実行されますが、ブラウザーでフレーム ソースを確認すると、html に未解釈の php タグが表示されます。

headerFrame.php:

<?php
include 'base.php';
?>
<html>
...

main.php は解釈されるのに、headerFrame.php は解釈されないのはなぜですか? ページをこれに移動すると、/var/www/mypage/すべてうまくいきます。

環境: Ubuntu 12.10、apache2

4

1 に答える 1

0

私は自分でエラーを見つけましたが、投稿されたスニペットでは完全には明らかではありません:

多くの場合、php スクリプトに相対パスが含まれています。また、 の相対パスは、とincludeでは異なる方法で処理されます。/var/www/mypage~/public_html/mypage

前者は実行中のスクリプト ファイルの場所を基準とした相対パスを考慮しますが、後者はメイン ディレクトリ ( ~/public_html/mypage) を基準とした相対パスを処理します。

後者の場合と同様に、含まれている php ファイルが見つからず、php タグが apache サーバーによって解釈される代わりにダンプされます。

userdir を有効にしたことを除いて、Ubuntu 12.10 のデフォルトの apache2 構成を使用します。

于 2013-04-19T12:12:48.297 に答える