Centos

PHP 無法在 CentOS 7 上連接到 Postgres

  • December 21, 2018

我可以通過 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 使用者有關,但我只是測試了與該使用者相同的程式碼並連接了它。

看起來這是一個安全設置,通過執行來修復:

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

引用自:https://unix.stackexchange.com/questions/368892