首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽管存在文件和777权限,但PHP777仍然失败

尽管存在文件和777权限,但PHP777仍然失败
EN

Stack Overflow用户
提问于 2010-09-27 21:23:10
回答 3查看 3K关注 0票数 0

PHP777的消息“未能打开流:没有这样的文件或目录”对我来说是失败的,尽管它正在抱怨这个文件的存在,为了缓解这个问题,include_once对777进行了修改。

(include_path='.:/usr/share/pear:/var/www/html/we_/')警告: include_once() function.include:打开‘../i_效用/wchelper.php’../i_实用程序/wchelper.php‘失败,以便将包含在第6行的/var/www/i_/php/w_corner/modules/i_ers/i_ers.module中。

从命令行,我可以cd到包含源代码文件的目录(/var/www/i_/ php /w_角/modules/i_ers),我可以将哪个php抱怨为"no“:./i_实用程序/WCHelper.php。

实际上,我可以在对apache用户进行su‘’ing之后进行上述操作,甚至可以触摸该文件并看到其上一次修改的时间戳更改:

代码语言:javascript
复制
-bash-3.2$ whoami
apache

-bash-3.2$ cd /var/www/i_/php/w_corner/modules/i_ers
-bash-3.2$ ls -l ../i_utility/WCHelper.php
-rwxrwxrwx 1 root root 32112 Sep 14 09:49 ../i_utility/WCHelper.php

-bash-3.2$ touch ../i_utility/WCHelper.php
-bash-3.2$ ls -l ../i_utility/WCHelper.php
-rwxrwxrwx 1 root root 32112 Sep 27 17:08 ../i_utility/WCHelper.php

综上所述,在这种情况下,是什么导致PHP的include_once失败呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-27 21:29:28

PHP的包含路径有点违背直觉,特别是当您给它提供相对路径时。您可能希望路径相对于当前文件(例如,与CSS一样),但是PHP将它们解释为相对于当前工作目录,该目录通常是入口点PHP文件所在的目录(例如/var/www/my_site/index.php)。

最简单的修复方法是使用dirname(__FILE__),它总是映射到当前脚本文件的绝对位置。

票数 4
EN

Stack Overflow用户

发布于 2010-09-27 21:28:29

也许您的脚本在错误的目录中运行?

将一个echo '<pre>'.htmlentities(getcwd()).'</pre>';放在失败包含之前,看看它是否显示了正确的路径。

票数 1
EN

Stack Overflow用户

发布于 2010-09-27 23:37:51

为什么不使用文件的完整路径?例如:

代码语言:javascript
复制
include_once("/var/www/i_/php/w_corner/modules/i_utility/WCHelper.php");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3808002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档