尽管设置了include_path,但不包括php文件

时间:2013-11-20 23:04:52

标签: php apache

我的Linux机器上运行了一个apache2服务器。我通过将include_path设置为

编辑了文件/etc/php5/apache2/php.ini
include_path = ".:/usr/share/php:/var/www/subdir"

为了确保我没有更改错误的文件,我还编辑了我在计算机上找到的所有其他php.ini文件(还有一个)并检查了phpinfo()的输出,从上面打印了正确的include_path。 (我也重新启动了apache2。)

然而,当我使用像

这样的行时
use some\name\space;
require_once('./subsubdir/file.php');

在文件start.php(位于另一个目录/ var / www / subdir / anothersubdir /)中,require_once命令不起作用,因为我在apache日志文件中收到以下错误

[error] [client 127.0.0.1] PHP Fatal error:  require_once(): Failed opening required './subsubdir/file.php' (include_path='.:/usr/share/php:/var/www/subdir') in /var/www/subdir/anothersubdir/start.php on line x

我也试过

require_once('/subsubdir/file.php');

但它不起作用。当我如上所示设置include_path时,如何包含file.php?

提前多多感谢!

2 个答案:

答案 0 :(得分:1)

我要问自己的第一个问题是:

  • 是在chroot环境中运行的网络服务器吗?
  • 目标文件的权限是什么?

回答这两个问题的简单方法是:

print getcwd() . "<hr />\n";
$t='/var/www/subdir/anothersubdir/subsubdir/file.php';

function show_permissions($path) 
{
   if (strlen($path)>1) {
       show_permissions(dirname($path));
   }
   if (is_readable($path)) {
       print "Permissions for $path: " . var_export(stat($path)) . "<br />";
   } else {
       print "can't read $path <br /> \n";
   }
}

(我的钱会出现权限问题 - 而不是路径问题)

答案 1 :(得分:0)

尝试重新启动Apache,以清除内部缓存。