我正在使用带有PostgreSQL / Apache的Amazon EC2运行Red Hat Linux服务器并遇到了一些问题。当我尝试在浏览器中访问我的应用程序时,出现以下错误:
Unable to connect to the database
could not connect to server: Permission denied
Is the server running on host "my-private-ip-address" and accepting
TCP/IP connections on port 5432?
但是,我可以使用PuTTY中的以下命令访问我的数据库。我也可以在pgAdmin中连接到我的数据库。
psql -U username -h my-private-ip -d dbname
我已使用here和here找到的说明编辑了我的pg_hba.conf
和postgres.conf
个文件,但遗憾的是它们并不适用于我。我的入站安全组设置如下:
Type Protocol Port Range Source
Custom TCP Rule TCP 5432 Anywhere 0.0.0.0/0
HTTP TCP 80 Anywhere 0.0.0.0/0
HTTPS TCP 443 Anywhere 0.0.0.0/0
我错过了什么或做错了什么?谢谢你的帮助。
编辑:我刚刚尝试禁用SELinux,然后它能够连接到数据库而浏览器中没有错误。但我想保持SELinux的安全性。我想这个问题在某种程度上与文件权限或防火墙设置有关。
编辑v2:我想我已经解决了这个问题,但如果这是正确的做法,我仍然会感谢某人的意见。我发现以下命令here允许Apache和PostgresSQL相互连接:
setsebool -P httpd\_can\_network\_connect\_db on
答案 0 :(得分:0)
Apache和PostgreSQL没有互相交谈。要启用它们之间的连接,请使用以下命令:
setsebool -P httpd\_can\_network\_connect\_db on
希望这将有助于将来。