为什么php.ini中的include_path被忽略?

时间:2013-07-30 16:27:28

标签: php zend-framework

我有一个zend库,为简单起见,我把它放在root中。 (/library/zend/...) 我添加了php.ini include_path的路径,并对其进行了评论。 (include_path = ".:/library/" )。

在我的网站文件中,我有require_once 'Zend\Loader.php';

但是当我尝试访问该页面时,我得到了:

 Warning: require_once(Zend/Loader.php): failed to open stream: 
          No such file or directory  in /var/www/TEST/index.php on line 7

 Fatal error: require_once(): Failed opening required 'Zend/Loader.php' 
    (include_path='.:/usr/share/php:/usr/share/pear') 
    in /var/www/TEST/index.php on line 7

为什么要找梨?这些目录甚至不存在。

我需要完整的路径并且有效(然后zend不知道在哪里查找其他所有内容但它能够找到loader.php)所以我认为这意味着权限是可以的。 我已经尝试在包含路径中添加/删除尾部斜杠以及php网站文件中的前一个斜杠。

我在谷歌上找到的唯一一件事就是.htaccess?不确定是什么或在哪里。

我正在编辑正确的php.ini文件,因为我可以打开和关闭错误报告。

doc_root和include_path都已更改,但无法显示phpinfo()中的更改,即使phpinfo()表示我正在编辑正确的php.ini文件

1 个答案:

答案 0 :(得分:0)

当您更改php.ini中的include_path时,更改将影响您的所有项目。

更好的想法是使用set_include_pathget_include_path php函数来更新当前应用程序的路径。

请记住,路径必须是绝对路径, 所以这或多或少会像这样:

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    APPLICATION_PATH . '/../vendor/',
    get_include_path(),
)));