データベースサーバ(CentOS)にアクセスするために設定したCentOS Apache Webサーバがあります。データベースサーバーのpg_hba.confにWebサーバーのエントリがあります。私はWebサーバーを実行しているマシンのコマンドライン(bashの下の "php -a"を使用)で問題なく接続できます。ここで(マングルされた資格情報を使用して)私のスクリプトコマンドラインからこのスクリプトを実行pg_connect - phpスクリプトはコマンドラインから動作しますが、Webページからは動作しません
if(pg_connect("host=192.168.6.11 port=5432 dbname=C_test user=Cuser password=c1811wet")) {
echo 'connected';
} else {
echo 'not';
}
、私は「接続」を取得です。私がウェブページ(http://some.host.name/test.php)として走るとき - 'not'。
アイデア?私の検索では、postgresql.confのlisten = '*'設定か、pg_hba.confにWebサーバーipを追加するようになっていますが、両方とも検索されています。
更新:
@Jorge - WebサーバとDBサーバは異なるIPアドレスにあります。
@Nicarusラインはpg_hba.confのに追加しました:
host C_test Cuser 192.168.100.166 255.255.255.255 md5
私はそれがこのIPからのアクセスを許可するように取り組んでいるかなり確信して - 述べたように、私はそれが接続されているコマンドライン上でスクリプトを実行する場合Webページからは実行されません。
@lwb - 提案してくれてありがとう - 私は、提案された行をpg_hba.confに追加し、postgresqlサービスを再起動しようとしました。サービスはきれいになりますが、動作に変化はありません。コマンドラインでは接続できますが、Webページからは接続できません。
@Massimiliano - 私は同じ/etc/php.iniを使用していて、コマンドラインでもコマンドラインでも同じ一連の追加のiniファイル(コマンドラインでは無視されるapc.iniを除く)を解析しているようです。ウェブサーバー私は、phpinfo()を使用してLoaded Configuration Fileを表示し、両方の環境で実行しました。
上
sudoのsetsebool -P httpd_can_network_connect_dbは、データベースと同じサーバーにあるサイトですか? –
追加したレコードをpg_hba.confファイルに投稿します。 – Nicarus
WebサーバーのIP接続が許可されていますか? pg_hba.confでこれを試してください: 'host all all 0.0.0.0/0 trust' – lwb