PHP set_include_path配置

时间:2011-12-12 12:03:05

标签: php linux debian

我遇到了set_include_path的问题,我读了很多关于这个问题的消息,但没有一个对我有用。 我在Debian上,我的根目录将设置为/ home / project /

所以我尝试了这四种不同的东西:

ini_set("include_path", '/home/project');
ini_set("include_path", '.:/home/project');
set_include_path('.:/home/project');
set_include_path('/home/project');
set_include_path(get_include_path().PATH_SEPARATOR.'/home/project');

但没有一个工作......当我做回声get_include_path();每次都好看。

但第四种方法在我的电脑上与WAMP完美配合。

所有这些错误信息:

Warning: include(/config/config.php) [function.include]: failed to open stream: No such file or directory in /home/project/web/www.project.com/index.php on line 3

Warning: include() [function.include]: Failed opening '/config/config.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:/home/project') in /home/project/web/www.project.com/index.php on line 3

3 个答案:

答案 0 :(得分:6)

尝试使用PATH_SEPARATOR常量,就像在文档中一样。

set_include_path(get_include_path() . PATH_SEPARATOR . $path);

可能在您将应用程序部署到的系统上有所不同。

<强>更新: 包含路径似乎很好,但问题是不同的......

你不应该包括:

require '/config/config.php'

require 'config/config.php'

所以删掉前导斜杠,它应该可以工作。

答案 1 :(得分:1)

使用此set_include_path(get_include_path().PATH_SEPARATOR.'/path/');进行设置,这不会删除由其他脚本设置的现有include_path,并添加默认系统路径分隔符。

答案 2 :(得分:1)

路径分隔符可能不同。

set_include_path(implode(PATH_SEPARATOR, array(
    '.',
    '/home/project',
    get_include_path()
));

通过这种方式,您可以获得当前包含路径,该路径附加到您自己添加的路径以及每个系统的正确路径分隔符。