无法包含现有文件 - 无法打开流:权限被拒绝

时间:2013-12-21 20:14:34

标签: php include

这不是一个重复的问题,我阅读了所有相关问题,但未找到我的答案。

我想要包含一个存在的文件:

/var/www/html/monitor/protected/extensions/curl/curl.php

我的代码是:

include('/monitor/protected/extensions/curl/curl.php');

我收到了这个错误:

include(/var/www/html/monitor/protected/extensions/curl/curl.php): failed to open stream: Permission denied

并且该文件具有777权限。

我的问题是:

文件是否存在且具有777权限且正确chown并且仍然会出现此错误?

更新:我曾使用过三种可能的方式:

  1. include('/monitor/protected/extensions/curl/curl.php');

  2. include('monitor/protected/extensions/curl/curl.php');

  3. include('/var/www/html/monitor/protected/extensions/curl/curl.php');
  4. 我正在使用php 5.3

    注意: 在同一目录中包含其他文件时,它包含没有任何问题

3 个答案:

答案 0 :(得分:3)

我知道这已经很晚了,但我只想确认Alireza Fallah的回答。这对我也有用。看起来它必须是原始所有者。因此,在您想要使用它的同一台机器上解压缩/解压缩php文件。希望这有帮助!

答案 1 :(得分:1)

你使用了错误的路径。如果文件存在于

/var/www/html/monitor/protected/extensions/curl/curl.php

然后你应该包括那个确切的字符串。

include('/var/www/html/monitor/protected/extensions/curl/curl.php');

/表示文件系统的根目录。您获得权限被拒绝,因为您肯定没有/的权限且/monitor不存在

或者您可以相对包含它。删除第一个/即可:

include('monitor/protected/extensions/curl/curl.php');

如果正在运行的脚本也在/var/www/html中,这将有效。

我认为你对HTTP路径和系统路径之间的差异感到困惑。 PHP文件包含在系统路径中,应该由系统路径引用。

答案 2 :(得分:0)

我删除了该文件,并再次创建,我的问题解决了。

原始文件已从互联网上下载并从压缩文件中解压缩。

我认为原始作者创建文件时出现问题。

这很奇怪!但它有效