- 締切済み
PHPとPostgreSQLがつながらない
PHPとPostgreSQLの初心者です。PHPとPostgreSQLを 使ってプログラムを作ろうと思ってます。 開発はPC上で、PostgreとPHPサーバはLinuxマシンに あります。まず最初にPostgreのインストールですが、 Fedora Core5 に着いていたPotsgreSQL8.1.3を入れ ました。設定としては、 postgresql.confでは listen_address='localhost,192.168.1.3' としました。192.168.1.3はLinuxマシンのローカル アドレスです。 pg_hba.confではconnectionのところで host all all 192.168.1.3 255.255.255.0 tyust としました。その後 host all all 0.0.0.0 255.255.255.0 tyust とかいろいろ試してみました。 一方PHPの方はほとんど何も設定をしていません。と いうか設定方法がよくわかりません。 以上の環境で、簡単なPHPプログラムをPostgreにつなげないで実行したところ問題なく動きました。 20行くらいのPHPを書いてみましたが、特に問題はあ りませんでした。 PostgreSQLの方は、PCからSSHで入って、接続テスト 用のDBを作り、テーブルも3つ作って、データを数件 Insertしました。 いよいよPHPからDBにつなぐことになったのですが、 プログラム上では以下のように書きました。 <?php print "こんにちは"; $conn = pg_connect ('host=192.168.1.3 port=5432 dbname=phptest user=postgres'); print "こんばんは"; if (!$conn) { print "PostgreSQLへの接続に失敗です"; exit(); } else ・ ・ して実行したところ、「こんにちは」は表示されま したが、「こんばんは」以下はは表示しませんで した。$conn の先には進んでいないようです。 当然ここに書いた以外にも設定を変えてみましたが、 つながりませんでした。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
PHPのインストールでpostgresSQLを使用する設定になっていないのではないでしょうか? phpinfo()で確認してから ./configure --with-pgsql .... をつけて再インストールしてみてください。
- tany180sx
- ベストアンサー率63% (239/379)
先に error_reporting(E_ALL); と書いて どんなエラーが出ているか確認してください。 pg_connect 関数が無いと言われたら PHPの問題ですし、 接続できない問題なら PostgreSQL の問題です。 pg_hba.conf の設定ですが、trust ですよね?
補足
tany180sxさん、ありがとうございました。 「error_reporting(E_ALL)」が何のことかわからな かったのですが、php.iniを見つけ出して中を見てみ たらありました。ついでにエラー表示を「on」にし たらブラウザにもエラーが出るようになりました。 表示されたエラーは こんばんは Fatal error: Call to undefined function pg_connect() in /var/www/html/php/test3.php on line 6 です。tany180sxさんのお話ですと、pg_connect部分 に問題があるようですから、これはPostgreSQLの設 定が悪い、ということでしょうか。 trustの間違いでした。