pdoはmysqlでは正常に動作しますが、pgsqlではエラー_'PDOException' with message 'could not find driver'
_が発生します_php5-pgsql
_を含む_pdo_pgsql
_パッケージをインストールしました
http://packages.debian.org/sid/php5-pgsql
このパッケージは、PostgreSQLデータベース接続用のモジュールをPHPスクリプトから直接提供します。また、PHP Data Object拡張機能で使用するためのpdo_pgsqlモジュールも含まれています。
私のdsnは_pgsql:dbname=DB;Host=192.168.0.2
_ですUbuntu 10.04を使用しています
1)php.ini
(extension=pgsql.so
)でpgsql.soを有効にしましたか?
2)192.168.0.2
インターフェイスでPostgresqlをリッスンしていますか? (netstat -tpln
で確認できます)
3)Postgresqlへのアクセスをどのように認証しますか?
このメッセージは、PHPでpostgresql拡張機能をinstallおよびactivateする必要があることを意味します
このソリューションは私のために機能します:postgresql拡張機能をインストールするには
[Sudo] apt-get install php-pgsql
その後、それをアクティブにするために、pdo-pgsql
ファイルのpgsql
およびetc/php/$PHP_VERSION/Apache2/php.ini
拡張のコメントを外します
最後に、タイプ:
[Sudo] /etc/init.d/Apache2 restart
私の場合のようにApacheを使用している場合にApacheサーバーを再起動するには...
Postgresドライバーの場所をphpに伝える行のコメントを外していることを確認してください(通常はextension=pgsql.so
) 概して php.ini
ファイル。
同じ問題がありました。まず、php.iniで有効になっていることを確認してください。コメントを解除extension=php_pdo_pgsql...
拡張ディレクトリを設定するよりも!!
extension_dir = "ext" ; for your case it could be other dir.
構成を変更した後、サーバーを再起動することを忘れないでください。
これが私が問題を解決するためにしたことです。
編集php.ini
および削除;
from extension=pdo_pgsql
。また、extension=pgsql.so
からphp.ini
ファイル。
結果を確認する前に、Apacheサーバーを再起動してください。