我最近将一个正在开发的Zend Framework应用程序移至生产服务器以测试安装。Zend Framework - Zend_Auth :: getInstance()导致500错误
无论应用程序环境和文件权限如何,应用程序都会引发500错误。经过手动调试,我已经缩小了在application/Bootstrap.php
中致电Zend_Auth::getInstance();
的罪魁祸首。
相关功能:
protected function _initAutoLoad() {
$modelLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH
));
$acl = new Model_Acl();
$auth = Zend_Auth::getInstance(); //<- this line breaks
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new Plugin_AccessCheck($acl, $auth));
return $modelLoader;
}
开发环境中运行Mac OS X上的PHP 5.3.8,而服务器的Ubuntu 11.10服务器上运行PHP 5.3.10。
我试过在服务器上应用相同的PHP设置,错误依然存在。我认为这可能是一个路径许可,但我之前没有遇到过这个问题,而Google也没有特别的帮助。
如果我在Zend_Auth
调用之前尝试拨打echo
或var_dump
,我会得到结果。之后的任何事情都是无效的,服务器只是返回一个香草500错误。
在此先感谢您的帮助。
什么是Zend_Auth的存储类型和身份验证适配器?也许,试图访问会话(默认身份验证存储)或适配器时失败了? – Sachin 2012-04-03 05:24:31
您能否告诉Zend 500是否生成了500错误,并且存在堆栈跟踪和异常消息,或者它与服务器配置有关,并且可能是您的Apache服务器错误日志中存在问题? – drew010 2012-04-03 05:33:33
Apache的错误日志中没有任何东西,我可以运行更简单的PHP应用程序,没有任何问题。我正在使用LDAP Zend_Auth适配器,而Zend没有提供堆栈跟踪。我将不得不深入挖掘并在明天找到更多。 php.ini被设置为登录到它自己的文件,这也不给我任何有用的。 – 2012-04-03 07:08:49