我读了一些其他相关问题,并认为这是最好的答案:
set_include_path(get_include_path().PATH_SEPARATOR."/path/to/program/root");
但是,我无法将它放到正确的目录中并且错误消息不够有用,所以我迷路了。我的用户区目录(共享主机)如下所示:
/home/linweb09/b/example.com-1050560306/user # <-- this is my root
我试图重新组织我的程序,以便所有模型文件都放在这个目录中:
{root}/program_name/library/
web-root文件夹是这样的:
{root}/htdocs/
所以我将所有包含内容改为:
set_include_path(get_include_path().PATH_SEPARATOR
."/home/linweb09/b/example.com-1050360506/user");
require_once "/program_name/library/some_module.php";
索引必须加载此包含才能工作,以验证用户:
/htdocs/admin/authenticate.php
# index.php
set_include_path(get_include_path().PATH_SEPARATOR
."/home/linweb09/b/example.com-1050360506/user");
require_once "/htdocs/admin/authenticate.php";
我遇到了这些错误:
[warn] mod_fcgid:stderr:PHP致命错误:
require_once()[function.require]:无法打开所需的'/htdocs/admin/authenticate.php'
(include_path中= ':在/ usr /共享/梨:在/ usr /共享/ PHP:/home/linweb09/b/example.com-1050360506/user')
在第3行的/home/linweb09/b/example.com-1050360506/user/htdocs/admin/index.php[warn] mod_fcgid:stderr:PHP警告:
require_once(/htdocs/admin/authenticate.php)[function.require- once]:无法打开流:
中没有这样的文件或目录 /home/linweb09/b/example.com-1050360506/user/htdocs/admin/index.php 在第3行
但是它位于正确的位置并且错误说没有这样的文件或目录,所以我不确定我应该如何配置它。
我也试过这些,我也遇到了同样的错误:
set_include_path(get_include_path().PATH_SEPARATOR."/user");
set_include_path(get_include_path().PATH_SEPARATOR."/");
答案 0 :(得分:1)
尝试删除前导斜杠。 /htdocs/admin/authenticate.php
表示您正在从根/
开始工作。如果要搜索包含路径,则需要使用相对路径:
require_once "program_name/library/some_module.php";
require_once "htdocs/admin/authenticate.php";
顺便说一句,您只需要为每个脚本设置一次包含路径 - 您不需要每个包含set_include_path()
行,只需在脚本顶部执行一次。