【发布时间】:2010-09-27 21:23:10
【问题描述】:
php include_once 对我来说失败了“无法打开流:没有这样的文件或目录”消息,尽管它抱怨的文件存在,并且 chmod'ing 到 777 以尝试缓解问题.
警告:include_once() [function.include]:无法打开“../i_utility/WCHelper.php”以包含(include_path='.:/usr/share/pear:/var/www/html /we_/') 在第 6 行的 /var/www/i_/php/w_corner/modules/i_ers/i_ers.module 中。
从命令行我可以 cd 到包含源代码文件的目录 (/var/www/i_/php/w_corner/modules/i_ers),我可以 ls php 抱怨“没有这样”的文件: ../i_utility/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 失败?
【问题讨论】:
-
文件的模式 (777) 在这里不起作用,因为权限问题通常会导致权限错误,而不是“没有这样的文件或目录”错误。
-
php include_once not working 的可能重复项
-
@BrentWashburne 我的问题怎么可能与我的问题之后重复?
-
公平的问题,但它们是否相互重复?如果是这样,哪一个有更好的答案?我认为另一个是这样,这就是我以这种方式投票的原因。
-
@BrentWashburne 另一个更好,因为它有 12 个赞成投票者而不是 4 个?就我而言,下面的最佳答案在解释方面做得更好。无论如何都没关系,人们需要相当长的时间来重新审视这些问题,而且我不会失去任何代表