在CentOS系統中,使用firewalld作為默認的防火墻管理工具。要配置firewalld以允許LNMP(Linux, Nginx, MySQL/MariaDB, PHP)服務,你需要按照以下步驟操作:
啟動firewalld服務(如果尚未啟動):
sudo systemctl start firewalld
啟用firewalld服務(以便在系統啟動時自動運行):
sudo systemctl enable firewalld
檢查firewalld狀態:
sudo firewall-cmd --state
開放HTTP和HTTPS端口(Nginx默認使用80和443端口):
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
重新加載firewalld配置以應用更改:
sudo firewall-cmd --reload
檢查開放的端口:
sudo firewall-cmd --list-all
如果MySQL/MariaDB服務需要遠程訪問,你需要開放3306端口(或者你選擇的任何其他端口):
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
如果你的PHP應用程序需要連接到數據庫,確保數據庫服務器允許來自PHP應用程序服務器的連接。這通常在數據庫服務器上配置,例如在MySQL中,你可能需要編輯my.cnf
文件并確保bind-address
設置為服務器的IP地址或者注釋掉這一行。
如果你使用SELinux,可能需要調整相關的策略以允許Nginx和PHP-FPM等服務正常工作。
請注意,這些步驟假設你已經安裝了Nginx、MySQL/MariaDB和PHP。如果尚未安裝,你可以使用以下命令安裝它們:
sudo yum install nginx mariadb-server php-fpm
安裝完成后,啟動并啟用Nginx和MariaDB服務:
sudo systemctl start nginx mariadb
sudo systemctl enable nginx mariadb
對于PHP-FPM,啟動并啟用它:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
最后,確保Nginx配置文件中的PHP處理部分正確設置,以便Nginx可以將PHP請求傳遞給PHP-FPM。
以上步驟應該可以幫助你在CentOS系統上配置firewalld以支持LNMP環境。如果你遇到任何問題,請檢查防火墻規則是否正確應用,并查看Nginx、MySQL/MariaDB和PHP的錯誤日志以獲取更多信息。