【发布时间】:2014-02-13 19:51:56
【问题描述】:
我试图让一个现有的 ZEND 项目在我的 Raspberry Pi 上运行,但不幸的是,它抛出了这个错误:
Fatal error: Uncaught exception 'Zend_Config_Exception' with message 'Section '' cannot be found in /var/www/BY_test/application/configs/session.ini' in /var/www/BY_test/library/Zend/Config/Ini.php:151
Stack trace:
#0 /var/www/BY_test/application/Bootstrap.php(41): Zend_Config_Ini->__construct('/var/www/BY_tes...', false)
#1 /var/www/BY_test/library/Zend/Application/Bootstrap/BootstrapAbstract.php(669): Bootstrap->_initSession()
#2 /var/www/BY_test/library/Zend/Application/Bootstrap/BootstrapAbstract.php(622): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('session')
#3 /var/www/BY_test/library/Zend/Application/Bootstrap/BootstrapAbstract.php(586): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL)
#4 /var/www/BY_test/library/Zend/Application.php(355): Zend_Application_Bootstrap_BootstrapAbstract->bootstrap(NULL)
#5 /var/www/BY_test/public/index.php(44): Zend_Application->bootstrap()
#6 {main}
thrown in /var/www/BY_test/library/Zend/Config/Ini.php on line 151
由于我是 Zend Framework 的新手,我非常感谢有经验的人的帮助。
我自己已经尝试过寻找解决方案,但是我从有类似问题的人那里找到的唯一帖子是通过删除 Bootstrap.php 中 APPLICATION_ENV 的 getenv() 函数来解决的。对他有好处,但这对我没有用。
在我看来很奇怪,消息中缺少实际部分。我想,这是一个重要的线索,所以我对错误消息中提到的一些文件进行了一些尝试,但就像我说的,我才刚刚开始使用 Zend,所以这有点毫无意义。
另外,我认为这是它运行的操作系统的问题,因为该项目最初在 Windows 服务器上运行,而我在 Pi 上使用 Raspbian。但我可以(至少部分)排除这一点。
有什么想法,我接下来可以检查什么或问题可能是什么?
仅供参考,该项目的 Zend Framework 版本是 1.12,我使用 Apache/2.2.22 (Debian)。 如果您需要有关任何事情的更多信息,请告诉我。我只是不想用不必要的信息淹没你,因为我不知道你需要知道什么。
提前致谢!
编辑:
Pi上的PHP版本是5.4.4-14+deb7u7(原Windows服务器上的版本是5.4.16)
session.ini 的内容:
;#####################################
; setup sessions
;#####################################
[production]
name = FLOID_BACKYARD
save_path = APPLICATION_PATH "/../data/session"
use_only_cookies = true
remember_me_seconds = 864000
[development : production]
save_path = APPLICATION_PATH "/../data/session"
use_only_cookies = true
remember_me_seconds = 864000
以及 Bootstrap.php 的 __initSession 函数(第 41 行读取 '$config = ...'):
protected function _initSession()
{
$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/session.ini', getenv('APPLICATION_ENV'));
Zend_Session::setOptions($config->toArray());
Zend_Session::start();
}
【问题讨论】:
-
您能否编辑您的问题以包含 session.ini 的内容,以及产生此错误的 Bootstrap.php 部分(基本上是第 41 行的函数)?另外,既然你暗示这是一个在另一台服务器上运行的项目,那么你的 Pi 上有什么版本的 PHP?
-
好的,完成。正如我所说,我听说有人通过删除 getenv() 函数并改用 APPLICATION_ENV 来解决问题(据我所知),但这并没有帮助。
-
嗯,看起来一切正常。我的猜测是
APPLICATION_ENV没有设置 - 这会导致你得到的错误。你能检查一下你的public/index.php文件,看看是否有任何与APPLICATION_ENV相关的内容吗?通常它会定义 var,默认为 'production' -
你是说这部分吗?
defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));但它在原始服务器上运行得非常好,当我回显APPLICATION_ENV时,它确实设置为“生产”。 -
如果你回显
getenv('APPLICATION_ENV');呢?
标签: zend-framework raspberry-pi fatal-error bootstrapping