我遇到了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
答案 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()
));
通过这种方式,您可以获得当前包含路径,该路径附加到您自己添加的路径以及每个系统的正确路径分隔符。