【发布时间】:2011-08-23 22:41:24
【问题描述】:
所以我今天遇到了一件很奇怪的事情。
我已将我的 PHP APC 更新到最新版本并重新启动了 apache。然后突然 apache 中的所有脚本开始抱怨找不到所需的文件。
我通常会:
require_once 'Abstract.php'
考虑到 Abstract.php 与其他脚本位于同一目录中。
错误在哪里:
PHP 警告: require_once(Abstract.php) [function.require-once]: 无法打开流:没有这样的文件或 第 411 行 PHP 中 data.php 中的目录 致命错误:require_once() [function.require]: 打开失败需要“Abstract.php” (include_path='/var/www/application/../library:/var/www/library:.:/usr/share/php:/usr/share/pear') 在第 411 行的 data.php 中
如您所见,当前目录 (.) 包含在执行的 include_path 中。为什么会这样?有人见过吗?
【问题讨论】:
-
尝试使用 strace 访问 apache 进程,看看它到底做了什么(grep 表示“open”)。
-
对于试图访问 data.php 文件的 Apache 用户来说,“读取”权限是否正确?
-
如果你
require_once dirname( __FILE__ ) . '/Abstract.php';会发生什么? -
(附带说明:当前目录应该始终是包含路径的一部分)
-
我是 APC 错误。 pecl.php.net/bugs/bug.php?id=22687 ...
标签: php apc require-once