2012-03-09 19 views
0

私はcakephp 2.0とwampサーバーを使用しています。私はPHPでpostgresのpdoを有効にして、私はPostgresに接続しようとしました。しかし、それはまだエラーがあると言います。私のログインとパスワードも再確認されています。cakephp 2.0とPostgreSQLの接続

以下

database.phpでファイルのコードです:

public $default = array(
    'datasource' => 'Database/Postgres', 
    'persistent' => false, 
    'host' => 'localhost', 
    'port' => '5432', 
    'login' => 'postgres', 
    'password' => 'password', 
    'database' => 'Test', 
    'schema' => '', 
    'prefix' => '', 
    'encoding' => '' 
); 

私もこれを試してみました:

 
public $default = array(
    'datasource' => 'Database/Postgres', 
    'persistent' => false, 
    'host' => 'localhost', 
    'port' => '5432', 
    'login' => 'postgres', 
    'password' => 'password', 
    'database' => 'Test', 
    'schema' => 'public', 
    'prefix' => '', 
    'encoding' => '' 
);

マイpga_hba.configファイルがある:Cで

 
TYPE DATABASE USER  CIDR-ADDRESS   METHOD 

# IPv4 local connections: 
host all   all   127.0.0.1/32   md5 
# IPv6 local connections: 
host all   all   ::1/128    md5 

:\ wamp \ bin \ php \ php5.3.9 \ ext

は、私は両方している:

 
php_pdo_pgsql.dll 
php_pdo_sqlite.dll 

マイ設定Postgresの設定ファイルは次のとおりです。

 
listen_addresses = '*'  # what IP address(es) to listen on; 
        # comma-separated list of addresses; 
        # defaults to 'localhost', '*' = all 
        # (change requires restart) 
port = 5432    # (change requires restart) 
max_connections = 100   # (change requires restart) 
# Note: Increasing max_connections costs ~400 bytes of shared memory per 
# connection slot, plus lock space (see max_locks_per_transaction). 
#superuser_reserved_connections = 3 # (change requires restart) 
#unix_socket_directory = ''  # (change requires restart) 
#unix_socket_group = ''   # (change requires restart) 
#unix_socket_permissions = 0777  # begin with 0 to use octal notation 
        # (change requires restart) 
#bonjour_name = ''   # defaults to the computer name 
        # (change requires restart) 

私は、PHPの情報をチェックして、私はまだそのpgsqlのがなかったことがわかりました。私はWampサーバーを使用しています。

 
[PostgresSQL] 
; Allow or prevent persistent links. 
; http://php.net/pgsql.allow-persistent 
pgsql.allow_persistent = On 

; Detect broken persistent links always with pg_pconnect(). 
; Auto reset feature requires a little overheads. 
; http://php.net/pgsql.auto-reset-persistent 
pgsql.auto_reset_persistent = Off 

; Maximum number of persistent links. -1 means no limit. 
; http://php.net/pgsql.max-persistent 
pgsql.max_persistent = -1 

; Maximum number of links (persistent+non persistent). -1 means no limit. 
; http://php.net/pgsql.max-links 
pgsql.max_links = -1 

; Ignore PostgreSQL backends Notice message or not. 
; Notice message logging require a little overheads. 
; http://php.net/pgsql.ignore-notice 
pgsql.ignore_notice = 0 

; Log PostgreSQL backends Noitce message or not. 
; Unless pgsql.ignore_notice=0, module cannot log notice message. 
; http://php.net/pgsql.log-notice 
pgsql.log_notice = 0 

私はすでに私のphp.iniファイルで、これをした:

 
extension=php_pdo_pgsql.dll 
extension=php_pdo_sqlite.dll 
extension=php_pgsql.dll 
+2

いつものように、エラーメッセージはあなたを助ける手段となります。 –

答えて

1

は、私はこの男が

http://tutology.net/category/mysql/install-postgresql-and-phppgadmin-windows-wamp

は基本的に私は\ binに\ apacheの\ ApacheXをWAMPするWAMPを\ビン\ PHPの\のphpX.XXからlibpq.dllをコピーし、非常に有用である私の問題のための答えを発見しました.X.XX \ bin

+0

私はあなたの答えに従って、私は正常に完了しました。しかし、私は注意がある。 php.iniで有効にしてサーバを再起動する前に、このファイルをApache/binにコピーする必要があります。私たちがしなければ、Apacheサーバは起動できません。 – TommyDo

2

暗闇の中でショット:データベースTestまたはtestの名前はありますか?引用符で囲まれていない識別子はPostgreSQLで小文字に変換されます。 The manual about that

暗闇の中の次のショット:localhostに接続しています。これは、Unixドメインソケット経由のローカル接続ではありません。これを行うには、データベースをTCP/IP接続を待機するように設定する必要があります。だからあなたはあなたの必要がありますpostgresql.conf

listen_addresses = '*' 

..と再起動します。

また、pg_hba.confの設定で接続を許可する必要があります。問題がある可能性がありますsimilar to this one
詳細マニュアルのConnection Settingsの章を読んで始めてください。

しかし、私は今推測されています。エラーメッセージを表示するには、が必要です。

+0

私はテストを試みましたが、それもうまくいきませんでした。 – madi

+0

でも私のpdoが有効にされています – madi

+0

どこが設定ファイルですか?私はそれをC:\ Program Files(x86)\ PostgreSQL \ 8.4 – madi