Ich habe kürzlich eine in-Entwicklung Zend Framework-Anwendung auf einen Produktionsserver verschoben, um das Setup zu testen.Zend Framework - Zend_Auth :: getInstance() verursacht 500 Fehler
Ungeachtet der Anwendungsumgebung und der Dateiberechtigungen löst die Anwendung einen 500-Fehler aus. Nach manuellem Debuggen habe ich den Täter auf Zend_Auth::getInstance();
in application/Bootstrap.php
eingegrenzt.
Relevante Funktion:
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;
}
Entwicklungsumgebung PHP 5.3.8 unter Mac OS X ausgeführt wird, und der Server PHP 5.3.10 auf Ubuntu 11.10 Server ausgeführt wird.
Ich habe versucht, die gleichen PHP-Einstellungen auf dem Server anzuwenden, und der Fehler bleibt bestehen. Ich denke, es ist wahrscheinlich eine Pfad-Erlaubnis, aber ich habe dieses Problem vorher nicht kennengelernt und Google ist nicht besonders hilfreich. Wenn ich versuche, echo
oder var_dump
irgendetwas vor dem Zend_Auth
Anruf, bekomme ich Ergebnisse. Alles danach ist ineffektiv und der Server gibt stattdessen nur einen Vanille 500 Fehler zurück.
Vielen Dank im Voraus für jede Hilfe.
Was ist der Speichertyp und der Auth-Adapter für Zend_Auth? Vielleicht versagt es beim Zugriff auf die Session (der Standard-Auth-Speicher) oder den Adapter? – Sachin
Können Sie sagen, ob der 500-Fehler von Zend generiert wurde und eine Stack-Trace- und Exception-Meldung vorliegt oder ein Problem mit der Server-Konfiguration vorliegt und möglicherweise etwas in Ihrem Apache-Server-Fehlerprotokoll ist? – drew010
Ich bekomme nichts in den Fehlerprotokollen von Apache, und ich kann einfachere PHP-Anwendungen ohne Probleme ausführen. Ich benutze den LDAP-Zend_Auth-Adapter und Zend gibt keinen Stack-Trace. Ich muss weiter nachforschen und morgen mehr finden. php.ini ist so eingestellt, dass es sich in seiner eigenen Datei anmeldet, und das gibt mir auch nichts nützliches. –