在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的错误日志以获取更多信息。