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之后进行上述操作,甚至可以触摸该文件并看到其上一次修改的时间戳更改:
-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失败呢?
发布于 2010-09-27 21:29:28
PHP的包含路径有点违背直觉,特别是当您给它提供相对路径时。您可能希望路径相对于当前文件(例如,与CSS一样),但是PHP将它们解释为相对于当前工作目录,该目录通常是入口点PHP文件所在的目录(例如/var/www/my_site/index.php)。
最简单的修复方法是使用dirname(__FILE__),它总是映射到当前脚本文件的绝对位置。
发布于 2010-09-27 21:28:29
也许您的脚本在错误的目录中运行?
将一个echo '<pre>'.htmlentities(getcwd()).'</pre>';放在失败包含之前,看看它是否显示了正确的路径。
发布于 2010-09-27 23:37:51
为什么不使用文件的完整路径?例如:
include_once("/var/www/i_/php/w_corner/modules/i_utility/WCHelper.php");https://stackoverflow.com/questions/3808002
复制相似问题