Centos
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 使用者有關,但我只是測試了與該使用者相同的程式碼並連接了它。
看起來這是一個安全設置,通過執行來修復:
sudo setsebool -P httpd_can_network_connect_db on