Недавно я переместил приложение Zend Framework в разработке на производственный сервер, чтобы проверить установку.Zend Framework - Zend_Auth :: getInstance() вызывает ошибку 500
Независимо от условий приложения и прав доступа к файлу приложение выдает ошибку 500. После ручной отладки я сузил виновника, вызвав Zend_Auth::getInstance();
в application/Bootstrap.php
.
Соответствующая функция:
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;
}
Среда разработки работает PHP 5.3.8 на Mac OS X, а сервер работает PHP 5.3.10 на Ubuntu 11.10 Server.
Я пробовал применять те же настройки PHP на сервере, и ошибка сохраняется. Я думаю, что это, вероятно, разрешение на путь, но я не сталкивался с этой проблемой раньше, и Google не особенно полезен.
Если я попытаюсь сделать echo
или var_dump
что-нибудь перед вызовом Zend_Auth
, я получаю результаты. Все, что после этого неэффективно, а сервер вместо этого возвращает ошибку vanilla 500.
Заранее благодарим за любую помощь.
Какой тип хранения и адаптер для адаптера Zend_Auth? Может быть, он не работает, пытаясь получить доступ к сеансу (хранилище auth по умолчанию) или адаптер? – Sachin
Можете ли вы сообщить, генерируется ли ошибка 500 Zend, и существует ли трассировка стека и сообщение об исключении, или это проблема с конфигурацией сервера и, возможно, что-то находится в вашем журнале ошибок сервера Apache? – drew010
Не получается ничего в журналах ошибок Apache, и я могу без проблем запускать более простые PHP-приложения. Я использую адаптер LDAP Zend_Auth, а Zend не дает трассировку стека. Я должен буду копать дальше и находить больше завтра. php.ini установлен для входа в собственный файл, и это не дает мне ничего полезного. –