我试过了两个:
ini_set('include_path', '.:/usr/share/php5:/usr/share/php5/PEAR:lib:app/classes');
还有:
php_value include_path ".:/usr/share/php5:/usr/share/php5/PEAR:lib:app/classes"
<。>在.htaccess文件中。
这两种方法实际上可以正常工作,但只能间歇性地进行。也就是说,它们可以在大约37页的请求中正常工作,然后大约42页请求失败,导致require()调用导致致命错误,从而有效地使站点崩溃。
我甚至不确定从哪里开始尝试找出发生的事情!
@ cnote
看起来您复制了包含路径中的当前目录。尝试从字符串中删除其中一个“。:”。
脚本版本最初是
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . 'lib' . PATH_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'classes');
因此。:。:来自现有的路径:
ini_get('include_path')
无论如何,我尝试删除它,问题依然存在。
答案 0 :(得分:4)
你试过set_include_path()吗?作为一个好处,它在失败时返回false,允许您至少捕获出现并生成一些有意义的调试数据。
此外,您应该使用常量PATH_SEPARATOR
,因为它在windows / * nix之间不同。
作为一个具体的例子:
set_include_path('.' . PATH_SEPARATOR . './app/lib' . PATH_SEPARATOR . get_include_path());
(末尾的get_include_path()意味着你的ini / htaccess路径设置为将保留的任何内容)
答案 1 :(得分:3)
事实证明这个问题与5.2.5中的PHP错误相关
为include_path设置“admin_flag”会导致某些请求中的include路径为空,而Plesk会在默认配置中为某些内容设置admin_flag。 PHP的更新解决了这个问题。
答案 2 :(得分:0)
看起来您复制了包含路径中的当前目录。尝试从字符串中删除其中一个“。:”。