2012-04-03 6 views
1

最近、開発中のZend Frameworkアプリケーションを実動サーバーに移動してセットアップをテストしました。Zend Framework - Zend_Auth :: getInstance()で500エラーが発生する

アプリケーション環境とファイルのアクセス許可に関係なく、アプリケーションは500エラーをスローします。手動デバッグの後、私はに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は特に役に立たない。

コール前にechoまたはvar_dumpに何かしようとすると、結果が出ます。それ以降は何も効果がなく、代わりにバニラ500のエラーが返されます。

ご協力いただきありがとうございます。

+0

Zend_Authのストレージタイプと認証アダプタは何ですか?おそらく、Session(デフォルトのauth storage)またはアダプタにアクセスしようとしているときに失敗していますか? – Sachin

+0

500エラーがZendによって生成され、スタックトレースと例外メッセージが存在するのか、それともサーバー設定に問題があり、何かがApacheサーバーのエラーログに含まれているかどうかを確認できますか? – drew010

+0

Apacheのエラーログに何も表示されず、問題のない簡単なPHPアプリケーションを実行できます。私はLDAP Zend_Authアダプタを使用しており、Zendはスタックトレースを与えていません。私はさらに掘り下げて明日をもっと見つけなければならない。 php.iniはそれ自身のファイルにログするように設定されています。 –

答えて

3

これは(パブリックディレクトリ内)、その後オープンのindex.phpを解決し、

を行いませんので、もし最終的なコード

protected function _initAutoLoad() { 
    $modelLoader = new Zend_Application_Module_Autoloader(array(
     'namespace' => '', 
     'basePath' => APPLICATION_PATH 
    )); 
Zend_Session::start(); 
    $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; 
} 

$auth = Zend_Auth::getInstance(); 

前にこの

Zend_Session::start(); 

を行います

defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development')); 

これはアプリケーションを開発モードにしてから、完全なエラーが表示されます。

+0

クローザー。今、デバッグエラーが発生しています。「PDO拡張機能はこのアダプタには必要ですが、拡張機能はロードされていません」。私は既にphp.iniファイルに 'extension = php_pdo_mysql.so'を持っていますが、何の効果もないようです。さらに、 'phpinfo()'によれば、 '/ etc/php5/apache2/conf.d/pdo_mysql.ini'の別の設定ファイルが解析されています。これには' extension = pdo_mysql.so'が含まれています。 –

+0

新しい問題を解決しました。私の 'php.ini'は間違った拡張パスを指していました。助けてくれてありがとう。 –

関連する問題