PHP 无法在 CentOS 7 上连接到 Postgres

PHP 无法在 CentOS 7 上连接到 Postgres

我可以通过 bash 运行 php 连接到我的数据库:

php -r '$link=@pg_connect("host=fakehost.edu port=5432 dbname=db user=user password=totallynotthepassword");if($link){echo "connected";} else { echo "no dice";}'

这导致了非常愉快的“连接”

然而,当我在 Apache 提供的文件中包含完全相同的 PHP 并转到该页面时,我得到了一个非常悲伤的消息:“没有骰子”

这是 php 文件中的代码:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php
$link=@pg_connect("host=fakehost.edu port=5432 dbname=db user=user password=totallynotthepassword");if($link){echo "connected";} else { echo "no dice";}
?>
 </body>
</html>

我认为这与 apache 用户有关,但我只是测试了该用户的相同代码并连接了。

答案1

看起来这是一个安全设置,可以通过运行来修复:

sudo setsebool -P httpd_can_network_connect_db on

在这里找到了答案:https://stackoverflow.com/questions/37955681/pg-connect-php-script-works-from-command-line-but-not-from-web-page

相关内容