当符号链接到httpdocs之外的php脚本时,Apache提供空文件

时间:2011-12-08 20:25:56

标签: php apache

如上所述,当symlinking到httpdocs目录之外的php文件时,Apache / php会提供一个空文件。但是,如果我将扩展名更改为html,则该文件将作为html文档正确提供。这让我相信它不是权限错误,但可能是与php配置相关的东西(open_basedir可能导致这个吗?)或Apache。

有谁知道可能导致此行为的原因是什么?

编辑:对于任何想知道这个问题的人来说,问题是由于php open_basedir限制引起的。

2 个答案:

答案 0 :(得分:1)

在PHP中启用错误报告并检查PHP错误日志。 100%保证您有致命的脚本或配置错误。

答案 1 :(得分:0)

我测试了webroot / htdocs中的PHP脚本符号链接。工作得很好。

制作以下文件

/some/directory/myphpscript.php      (the script)
/some/directory/htdocs/symlink.php   (webroot)

在myphpscript.php中我添加了一个hello world脚本(<?php echo 'Hello world'; ?>)。当站在/ some / directory / htdocs /中时,使用follow命令从命令行创建符号链接:

ln -s ../myphpscript.php symlink.php

确保

  • 运行Apache的用户可以访问该文件
  • 符号链接正确。如果您使用相对路径,则必须相对于webroot(例如../../path/to/script.php)。通过打开文件(例如nano symlink.php)来测试链接。

查看Apache error.log以获取错误消息。