未在公共html中执行的框架的php代码
我在未在公共html中执行的框架的php代码,php,ubuntu,apache2,public-html,Php,Ubuntu,Apache2,Public Html,我在public_htmldir中有一个php站点main.php,它提供了几个框架: <html> <head> <title>My Site</title> </head> <frameset rows="55, *, 0" frameborder="no"> <frame id='headerFrame' src="headerFrame.php" scrolling="no"> <f
public_html
dir中有一个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/
时,一切正常
环境:Ubuntu12.10,apache2我自己发现了错误,这在发布的代码片段中并不完全明显: 在php脚本中有许多包含相对路径的文件。对于
/var/www/mypage
和~/public\u html/mypage
而言,包含的相对路径处理方式不同
前者考虑相对于运行脚本文件位置的相对路径,而后者处理相对于主目录的相对路径(~/public\u html/mypage
)
在后一种情况下,未找到包含的php文件,php标记转储到其中,而不是由apache服务器解释
我使用Ubuntu 12.10的默认apache2配置,只是启用了userdir 您的包含路径可能是错误的。错误报告会告诉你这一点。你有/var/www和/var/public\u html吗?或者您的目录结构是什么样子的?您的php配置可能存在问题,即php是在/var/www中执行的,而不是在/var/public\u html中执行的