我在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
答案 0 :(得分:0)
我自己发现了错误,这在发布的代码段中并不完全明显:
其中许多包含php脚本中的相对路径。 include
和/var/www/mypage
处理~/public_html/mypage
的相对路径的方式不同。
前者考虑相对于正在运行的脚本文件位置的相对路径,而后者处理相对于主目录(~/public_html/mypage
)的相对路径。
在后一种情况下,包含的php文件在哪里找不到,php标签在哪里转储而不是由apache服务器解释。
我使用Ubuntu 12.10的默认apache2配置,但我启用了userdir。