PHP包含路径问题

时间:2011-06-25 10:05:12

标签: php include apache2 include-path

我设置了apache,以便所有请求都转到文件/var/www/common_index.php

现在,common_index.php查看请求的文件名并找到适当的文件 /var/www/123/public_html/requested_file.php

当我在requested_file.php中包含一个文件(带有相对路径)时,我遇到了问题。它尝试在/ var / www而不是/ var / www / 123 / public_html /

中搜索文件

如何解决这个问题?

3 个答案:

答案 0 :(得分:6)

您可以在requested_file.php之前change the working directory致电include以使其正常工作:

chdir(dirname(__FILE__));
include 'path/to/file.php';

或PHP 5.3 +

chdir(__DIR__);
include 'path/to/file.php';

如果您不想更改工作目录(这会影响其他文件系统操作),那么只需在每次使用magic constant __DIR__进行包含时附加路径:

include dirname(__FILE__) . '/path/to/file.php';
include __DIR__ . '/path/to/file.php'; # for PHP 5.3+

其中路径相对于您使用上述代码的文件。

答案 1 :(得分:0)

在Apache配置中编辑DocumentRoot。

将其设为/var/www/123/

答案 2 :(得分:0)

您可以使用__DIR__

$path = __DIR__;

$path包含包含此行的文件的路径