不在public_html中执行的帧的php代码

时间:2013-04-11 14:08:40

标签: php ubuntu apache2 public-html

我在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

1 个答案:

答案 0 :(得分:0)

我自己发现了错误,这在发布的代码段中并不完全明显:

其中许多包含php脚本中的相对路径。 include/var/www/mypage处理~/public_html/mypage的相对路径的方式不同。

前者考虑相对于正在运行的脚本文件位置的相对路径,而后者处理相对于主目录(~/public_html/mypage)的相对路径。

在后一种情况下,包含的php文件在哪里找不到,php标签在哪里转储而不是由apache服务器解释。

我使用Ubuntu 12.10的默认apache2配置,但我启用了userdir。