2016-09-21 8 views
6

Codeigniterフレームワークを使用してPostgreSQLに接続しようとしています。 は今私のdatabase.phpでCodeigniter 3でPOSTGRESQLに接続する方法は?

に私は次のコードを持っている:

$active_group = 'default'; 
$query_builder = TRUE; 

$db['default'] = array(
    'dsn' => '', 
    'hostname' => 'localhost', 
    'username' => 'postgres', 
    'password' => '', 
    'database' => 'fmsdb', 
    'dbdriver' => 'postgre', 
    'dbprefix' => '', 
    'pconnect' => FALSE, 
    'db_debug' => (ENVIRONMENT !== 'production'), 
    'cache_on' => FALSE, 
    'cachedir' => '', 
    'char_set' => 'utf8', 
    'dbcollat' => 'utf8_general_ci', 
    'swap_pre' => '', 
    'encrypt' => FALSE, 
    'compress' => FALSE, 
    'stricton' => FALSE, 
    'failover' => array(), 
    'save_queries' => TRUE 
); 

をしかし、私はlocalhostの中で、私のサイトを実行すると、私は次のデータベースエラーを取得:

A PHPエラーを遭遇しました

重大度:警告

メッセージ:pg_connect():PostgreSQLサーバに接続できません: サーバに接続できません:アクセスが拒否されました "localhost"(:: 1)サーバが稼働していて、ポート5432でTCP/IP接続を受け入れていますか?アクセスが拒否されました "localhost"(127.0.0.1)とポート5432でTCP/IP接続を受け入れていますか?

ファイル名:postgre/postgre_driver.php

行番号:154

私はpostgresql.confファイルでこれを入れてみました:

私は間違っているつもりです
listen_addresses = '*' 

+0

これは役立ちます。http://stackoverflow.com/questions/29630851/connecting-postgresql-and-codeigniter – devpro

+0

PostgreSQLのポートを追加し、 '$デシベル[ 'デフォルト'] [ 'ポート'] = 5432;'もphp iniからextを有効にしました。 'extension = php_pdo_pgsql。dll' – devpro

+0

centos7でこの拡張機能を有効にする方法 – Rajan

答えて

5

は、まずあなたはまた、同様にPDOのためPostgresql拡張を有効にすることができphp.ini

extension=php_pgsql.dll

Postgresql拡張を可能にします。

extension=php_pdo_pgsql.dll


$db['default'] = array(
    'port' => 5432, # Add 
); 

OR

$db['default'] = array(
    'dsn' => 'pgsql:host=localhost;port=5432;dbname=database_name', 
    'dbdriver' => 'pdo', 
); 

Database-configuration in codeigniter.com

+0

私はpgsqlがすでに読み込まれていると思うので、私はphpPGAdminをインストールしていて、うまく動作しています。 – Rajan

+0

また、APACHEを再起動することもできます。おもう。 :) – devpro

1
  1. まずこれら2つの拡張

    extension=php_pgsql.dll 
    extension=php_pdo_pgsql.dll 
    
  2. を有効にするには、その後のapache
  3. は、他のすべてのコードでdatabase.phpでファイルに$デシベル[ 'デフォルト'] [ 'ポート'] = 5432を追加して再起動します。
+0

私はcentos 7を使用していますか?これらの設定は同じですか? – Rajan

+0

私はphpPGAdminをインストールして正常に機能しているので、私のpgsqlがすでにロードされていると思います – Rajan

+0

あなたのphpinfoをチェックしてください。 pdo_pgsqlとpgsqlが利用可能な場合は、エラーは発生しません。利用可能なPHPパッケージのyum list "php *"を実行しない場合。ここでphp5-pgsql/php-pdo_pgsql/php-pgsqlのようなパッケージが見つかりました。 yum install php-pgsql&yum php-pdo_pgsqlをインストールしてください。その後、Apacheを再起動します。 –

関連する問題