web-dev-qa-db-ja.com

PHPおよびPDOを使用して別のCentOS7からCentOS7Postgresqlサーバーにアクセスできません

始まり

サーバー1は私のCentOS7本番サーバーです。これには、Apache、ssh、およびPostgresqlデータベースが含まれています。

サーバー2は私のCentOS7テストサーバーです。これには、Apache、ssh、およびテストデータベースが含まれています。

両方のサーバーは、22、80、および443を受け入れるようにfirewalldで設定されています。両方のサーバーには次の設定があります。

Sudo setsebool httpd_can_network_connect_db 1.。

これらのポートが開いていることをどのように知ることができますか?

Sshで接続できます(ポート22)。 httpおよびhttps(ポート80および443)を介して「Testing1、2、3 ...」テストページを見ることができます。 SQL Maestro、DBeaver、DBSchemaなど(ポート5432)を使用してPostgresqlにアクセスできます。

.。

問題

サーバー1でPostgresqlにアクセスするには、DbSchema、HeidiSQL、Postgresql SQLMaestroなどをリモートからどこからでも使用できます。ただし、サーバー2からPHPおよびPDOを使用して接続できません。常に[08006]タイムアウトになります

私は以下を試しましたが、役に立ちませんでした。須藤setseboolhttpd_can_network_connect 1

.。

質問

PHPを使用してサーバー2からサーバー1のPostgresqlデータベースにアクセスするにはどうすればよいですか? CentOS7は初めてです。私は他のLinuxディストリビューションを問題なく使用する前にこれを行いました。私が見逃しているSELinux /その他の設定は何ですか? .。

解決策(下記)

以下のアレクサンダーの答えを参照してください。 5432がfirewall-cmdで有効になっていると思いました。次のコマンドを発行したとき

Sudo firewall-cmd --zone=public --list-services

dhcpv6-client http ssh httpsのみがリストされました! postgresqlはどうなりましたか?サービスを永続的にするために、私は単に以下を発行しました。

Sudo firewall-cmd --add-service=postgresql --permanent
2
ikel

質問でおっしゃったように、firewalldで開いたポートは3つだけです。ファイアウォールでポート5432を開く必要があります。

また、どのIPリスニングpostgresを確認する必要があります。127.0.0.1:5432でのみリスニングできます。

2