【发布时间】:2013-07-30 16:27:27
【问题描述】:
我有一个 zend 库,为了简单起见,我把它放在了根目录中。 (/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 网站文件中添加/删除前斜杠。
我在 google 上唯一能找到的是关于 .htaccess 的东西?不知道那是什么或在哪里。
我正在编辑正确的php.ini 文件,因为我能够打开和关闭错误报告。
doc_root 和 include_path 都已更改,但无法显示 phpinfo() 中的更改,即使 phpinfo() 说我正在编辑正确的 php.ini 文件
【问题讨论】:
-
您必须使用从文件系统根目录到库的绝对路径!
-
如果你在 require/include 调用中使用绝对路径,那么 include_path 会被NOT检查,因为你告诉 PHP 文件的确切位置。跨度>
-
phpinfo()可以分辨出哪些额外的 ini 文件被解析,显然,有些东西 覆盖 你的include_path。 -
您输入的包含路径不在显示错误的包含路径中,因此它在某处被覆盖。如果你有的话,你能看看
public/index.php中是否有任何包含路径的东西吗? -
我只使用绝对路径(这只是意味着完整路径对吗?)来测试权限。我将把它保留为 require_once 'Zend\Loader.php';。我的文件中没有任何内容覆盖包含路径,但也正在加载这些 ini 文件:etc/php5/apache2/conf.d/10-pdo.ini、/etc/php5/apache2/conf.d/20-gd.ini , /etc/php5/apache2/conf.d/20-mcrypt.ini, /etc/php5/apache2/conf.d/20-mysql.ini, /etc/php5/apache2/conf.d/20-mysqli。 ini, /etc/php5/apache2/conf.d/20-pdo_mysql.ini...
标签: php zend-framework