PHP的set_include_pathconfiguration

我遇到了一个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 

尝试使用PATH_SEPARATOR常量,如在文档中所做的那样。

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

也许它在您部署应用程序的系统上有所不同。

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

你不应该包括:

 require '/config/config.php' 

 require 'config/config.php' 

所以放下主导斜线,它应该工作。

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

路径分隔符可能不同。

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

通过这个,你可以将当前包含路径附加到你自己添加的路径上,并为每个系统添加正确的路径分隔符。