2009-07-12 31 views
9

私のZENDアプリケーションをUNIX上で動作している私のApacheサーバー上に取得しようとしています。最初は私のホストは、PDOのサポートを与えるdidnot、と私はmail.Butが、今私がZendアプリケーションのMySqlドライバがインストールされていません。

スタックトレースが似ているMySQLドライバが現在インストールされていないというエラーを取得していて、それらを要求することで有効になってしまった:

An error occurred 
Application error 
Exception information: 

Message: The mysql driver is not currently installed 
Stack trace: 

#0 /home/windchim/worminc/library/Zend/Db/Adapter/Abstract.php(770): Zend_Db_Adapter_Pdo_Abstract->_connect() 
#1 /home/windchim/worminc/library/Zend/Db/Adapter/Abstract.php(840): Zend_Db_Adapter_Abstract->quote('aaditya258', NULL) 
#2 /home/windchim/worminc/library/Zend/Auth/Adapter/DbTable.php(354): Zend_Db_Adapter_Abstract->quoteInto('`password` = MD...', 'aaditya258') 
#3 /home/windchim/worminc/library/Zend/Auth/Adapter/DbTable.php(285): Zend_Auth_Adapter_DbTable->_authenticateCreateSelect() 
#4 /home/windchim/worminc/library/Zend/Auth.php(117): Zend_Auth_Adapter_DbTable->authenticate() 
#5 /home/windchim/worminc/application/controllers/LoginController.php(117): Zend_Auth->authenticate(Object(Zend_Auth_Adapter_DbTable)) 
#6 /home/windchim/worminc/library/Zend/Controller/Action.php(503): LoginController->processAction() 
#7 /home/windchim/worminc/library/Zend/Controller/Dispatcher/Standard.php(285): Zend_Controller_Action->dispatch('processAction') 
#8 /home/windchim/worminc/library/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#9 /home/windchim/public_html/worm/index.php(47): Zend_Controller_Front->dispatch() 
#10 {main} 

どのように解決できますか?助けてください

答えて

16

PDOは、mysql_ *関数とは異なり、いくつかのデータベースエンジンをサポートしています。 これを行うには、それぞれのドライバライブラリが必要です。

PDOの "core"はインストールされていますが、MySQLドライバはインストールされていません。インストールされているだけです(pdo_mysqlと呼ばれます)。

あなたのphp.iniのは、これらの(WindowsまたはLinux)のいずれかを持っている必要があります。php.iniファイルで

extension=php_pdo_mysql.dll 
extension=php_pdo_mysql.so 
+0

私は何かをインストールする必要がありますか、またはphp.iniのエントリだけを取得する必要はありますか? – Arc

+1

@Arkid:あなたのホスティングプロバイダはおそらく別のMySQL PDOドライバモジュールをインストールし、それがPHP設定で有効になっていることを確認する必要があります。 – Rob

+0

拡張機能を1つのファイルに手動で追加する場合は、pdo_soをpdo_mysql.soの前に読み込む必要があります。そうでない場合は動作しません。 –

4

uがちょうど 拡張子= php_pdo_mysql.dll(手段はそれの前にコメントを削除するには、次の行を有効にします)

正しく実行されます。

4

他の人が言及しているように、pdo_mysql拡張機能を有効にする必要があります。

しかし、私のマシン(Windows 7)上でApache(2.2)モジュールとしてphp(5.3)を実行しても、動作しません。私は絶対パスを使用して設定する必要があるphp.iniのextension_dirの値を把握しました(相対的なだけで動作しません)!

あなたのお役に立てば幸いです。

-1

F.i.あなたは のerror_reporting(値)を入力した場合 のerror_reporting = E_ALL &〜E_DEPRECATED &〜E_STRICT (生産段階でこのようにする必要があります)

のスペルをチェックしてください。 またはこのようなもの(通常はテストのために、「値」が「0」であるかもしれない)

あなたがそうどんな構文エラーを

を使用する場合は、この間違い 「MySQLドライバが現在インストールされていない」 を得ることができますphp.ini内でこのミスが発生する可能性があります。 システムを慎重にセットアップすると、データベースのインストールや設定に間違いがないので、簡単に混乱する可能性があります。 それ以外のものが正しい場合は、php.iniの構文エラーに進みます。

関連する問題