为什么我不能包含这个PHP文件?

时间:2014-03-25 21:56:56

标签: php linux file-permissions

我在目录中有两个PHP文件。一个包括另一个,<?php include 'channels.phtml'; ?>,并且工作正常。当我将包含的文件移动到父目录并调整调用<?php include '../channels.phtml'; ?>时,会出现问题。在这种情况下,找不到该文件。

为什么会这样?

我使用的是Ubuntu而且我认为这不是一个权限问题,但无论如何这里都是详细信息:

  

父目录:drwxrwxr-x 6 kim kim 4096 Mar 26 08:42 org

     

儿童目录:drwxrwxr-x 2 kim kim 4096 Mar 26 08:47个人资料

     

包含文件:-rwxrwxrwx 1 kim kim 28 Mar 26 08:42 channels.phtml

我尝试了require,结果相同。

编辑:

mesutozer提出的修复确实有效,但不应该要求它。从include命令的PHP手册条目:

  

如果定义了一个路径 - 无论是绝对路径(从Windows上的驱动器号或者\或Unix / Linux系统上的/开始)还是相对于当前目录(以。或..开头) - include_path将被忽略共。例如,如果文件名以../开头,则解析器将查找父目录以查找所请求的文件。

请注意,phpinfo显示当前目录(。)位于包含路径上,据我所知,我没有禁用相对路径。

仅供参考,我使用的是ZF2。

1 个答案:

答案 0 :(得分:1)

您需要在包含路径中包含当前文件夹,或将其他文件的完整路径指定为:

<?php include dirname(__FILE__) . '/../channels.phtml'; ?>