【问题标题】:php code of frames not executed in public_html未在 public_html 中执行的框架的 php 代码
【发布时间】:2013-04-11 14:08:40
【问题描述】:

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

【问题讨论】:

  • 您的包含路径可能是错误的。错误报告会告诉你这一点。
  • 你有 /var/www 和 /var/public_html 吗?或者你的目录结构是什么样的?你的 php 配置可能有问题,说 php 在 /var/www 中执行,而不是在 /var/public_html

标签: php ubuntu apache2 public-html


【解决方案1】:

我自己发现了错误,在贴出来的sn-p中并不完全明显:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 2018-08-24
    相关资源
    最近更新 更多