PHPからPostgresにアクセスしようとするとエラーになる
Postgresサーバに対してPHPでアクセスしようとしたとき「だけ」エラーが発生するため困っています。
発生している問題・エラーメッセージ
could not connect to server: Permission denied Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432?
該当のソースコード
php
1 <?php 2 try{ 3 $db_host = "localhost"; 4 $db_port = "5432"; 5 $db_name = "postgres"; 6 $u_name = "postgres"; 7 $u_pass = "*********"; 8 $dbc = new PDO( "pgsql:host=$db_host dbname=$db_name user=$u_name password=$u_pass" ); 9 $dbc = null; 10 echo "動いて……。"; 11 }catch (PDOException $e){ 12 echo $e->getMessage(); 13 } 14 ?>
試したこと
現状の状況としては
・PostgresはCentOS8 上にて動作中。
・PHP、httpdはステータスを見る限り正常に動作中
少なくとも
・別のLinuxマシンからpsqlで呼んだ場合は正常に動作する
・ODBC接続は正常に動作する(ODBCでMS-OFFICE系から接続実施)
このため、ポートは正常に開いている、FWは正常に設定されていると判断しております。
pg_hba.confは
local all all md5 host all all all md5
としております。
なお、phpinfo()にてPDOは正常に読み込まれていることを確認しています。
何らかの設定漏れかと思われますが、思いつく範囲には問題点が見つかりませんでした。
なにかキッカケを頂けます方いらっしゃいましたらお知恵を頂ければ幸いです。
他検証
pg_connect() で接続もNG
postgresql.conf 状況
listen_addresses = '*'
port = 5432
firewall-cmd --list 'から該当箇所抜粋 services: cockpit dhcpv6-client ftp http https postgresql ssh ports: 5432/tcp 80/tcp 443/tcp 60001-60010/tcp 5050/tcp
pgAdmin4入れたらそこからはちゃんとテーブルもデータも見える(同環境内、別環境いずれも)
補足情報(FW/ツールのバージョンなど)
CentOS8 4.18.0-193.6.3.el8_2.x86_64
postgres (PostgreSQL) 10.6
PHP 7.4.7 (cli)
httpd -M |grep php php7_module (shared)
PDO動作状況(phpinfo() の出力より)
PDO support enabled
PDO drivers mysql, pgsql, sqlite・
PDO Driver for PostgreSQL enabled
PostgreSQL(libpq) Version 10.5
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。