啟用SELinux後PHP遠端連線MySQL異常

2021-07-08 22:19:50 字數 1362 閱讀 5253

乙個最簡單的測試php**,在測試環境很正常,但是在正式環境下,無論用何種方式(tcp/ip、unix socket)都無法連線mysql。

could not connect: can't connect to mysql server on 'mysql.server' (13)

無論如何修改mysql的授權,或者調整php.ini中關於mysql的設定,或者修改mysql的監聽網口,都無法解決。

而如果用命令列人工連線mysql,則一切正常。

問題看起來像是php(with apache)不被允許連線mysql,但是防火牆也沒有限制。想來想去,唯有selinux的因素會導致這個問題。

可以看到這裡設定了httpd程序的許可模式,再仔細看一下,有乙個選項:

現在明白了,原來是selinux限制了httpd對外訪問的許可權。將其開啟即可:

如果對selinux不熟悉,也可以直接修改系統配置檔案 /etc/sysconfig/selinux,全域性關閉:

# this file controls the state of selinux on the system.

# selinux= can take one of these three values:

# enforcing - selinux security policy is enforced.

# permissive - selinux prints warnings instead of enforcing.

# disabled - no selinux policy is loaded.

#selinux=enforcing

#把設定改為disabled

selinux=disabled

# selinuxtype= can take one of these two values:

# targeted - targeted processes are protected,

# mls - multi level security protection.

selinuxtype=targeted

然後重啟作業系統,即可生效。

[root@imysql~]# setenforce 0

setenforce: selinux is disabled

CentOS 關閉啟用selinux

1 臨時關閉以及啟用 usr sbin setenforce 0 立刻關閉 selinux usr sbin setenforce 1 立刻啟用 selinux 加到系統預設啟動裡面 echo usr sbin setenforce 0 etc rc.local 這樣,我們在不需要在centos系統...

mysql 資料安裝後啟用遠端訪問!

mysql是乙個非常好使用的工具,在我們每次安裝後,但他都設定成只能本地訪問!對於我們來講很不方便!所以現在把這個方法記錄下來,給自己方便的同時也給新手們乙個參考!安裝完成後開啟客戶端,並輸入密碼執行以下操作 1 use mysql 2 update user set host where user...

遠端重新啟用3389

遠端重新啟用3389 端服務連線提供了客戶機可用於登入到伺服器上某個會話的鏈結,這種連線需要rdp 遠端桌面協議 支援。也就是說,在2000server中如果安裝了終端服務元件,而且服務也正常執行,但還是有乙個地方可以關掉3389埠的.你開啟 控制面板 管理工具 終端服務配置 在 連線 裡,再在 r...