加载ini文件时发生致命异常

时间:2013-05-30 16:02:27

标签: zend-framework zend-db zend-config

我的项目文件夹是demo,里面有文件夹应用程序,库和公共文件夹。在应用程序文件夹中,我有一个名为configs的文件夹,里面有一个文件'application.ini',其中包含我的数据库参数。因此,在应用程序目录中的bootstrap.php中,我在Zend注册表中的一个名为_initDbAdapter的函数中设置了我的数据库:

$config = new Zend_Config_Ini('/demo/application/configs/application.ini', 'development');
Zend_Registry::set('config', $config);

$db = Zend_Db::factory($config, $config->resources->db->params->asArray());
Zend_register('db', $db);

当我将浏览器指向localhost / demo / public /时(因为我的index.php位于公共文件夹中),我收到以下错误:

Fatal error: Uncaught exception 'Zend_Config_Exception' with message 'parse_ini_file(/demo/application/configs/application.ini):
failed to open stream: No such file or directory' in /var/www/demo/library/Zend/Config/Ini.php:182
Stack trace:
#0 /var/www/demo/library/Zend/Config/Ini.php(202): Zend_Config_Ini->_parseIniFile('/demo/applicati...')
#1 /var/www/demo/library/Zend/Config/Ini.php(126): Zend_Config_Ini->_loadIniFile('/demo/applicati...')
#2 /var/www/demo/application/Bootstrap.php(32): Zend_Config_Ini->__construct('/demo/applicati...', 'development')
#3 /var/www/demo/library/Zend/Application/Bootstrap/BootstrapAbstract.php(669): Bootstrap->_initDbAdapter()
#4 /var/www/demo/library/Zend/Application/Bootstrap/BootstrapAbstract.php(622): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('dbadapter')
#5 /var/www/demo/library/Zend/Application/Bootstrap/BootstrapAbstract.php(586): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL)
#6 /var/www/demo/library/Zend/Application.php(355): Zend_Application in /var/www/demo/library/Zend/Config/Ini.php on line 182

3 个答案:

答案 0 :(得分:5)

您收到此错误是因为/demo/application/configs/application.ini不是正确的路径。查看您的错误,完整的绝对路径为/var/www/demo/application/configs/application.ini,但您可能希望使用APPLICATION_PATH.'/configs/application.ini'这是一种更方便的快捷方式。

答案 1 :(得分:0)

  • 有些时候由于自动创建的文件而发生此错误

    application.ini~ 在相同路径的隐藏模式下

    / demo / application / configs / 所以请检查同一路径上的隐藏文件

    /demo/application/configs/application.ini~ ,如果找到的话    删除它。

答案 2 :(得分:-2)

我通过将配置文件参数更改为APPLICATION_PATH来解决它。''/ configs / application.ini