关于阿里云服务器CentOS7的防火墙问题

在将nodejs express应用的端口从3000改为80时遇到访问问题,发现CentOS7已用firewalld替代iptables。通过`firewalld`命令行工具永久开放80端口,参考自StackOverflow和CentOS教程。

最近在捣鼓个人网站上线的问题,由于nodejs的express框架默认监听的3000端口,在改成80端口时却出现了无法访问的情况,在排查问题的过程中涉及到了CentOS7的防火墙问题,在次做个记录。

Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口:

开启防火墙:

systemctl start firewalld
查看防火墙状态:

systemctl status firewalld
开启端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

命令含义:

--zone #作用域

--add-port=80/tcp #添加端口,格式为:端口/通讯协议

--permanent #永久生效,没有此参数重启后失效

重启防火墙:

firewall-cmd --reload
更多操作可以查看github的这篇回答:

http://stackoverflow.com/questions/24729024/centos-7-open-firewall-port

另附firewalld使用简介:

http://www.centoscn.com/CentOS/help/2015/0208/4667.html





### 部署 Discuz! 论坛的详细步骤 在阿里云 CentOS 7 服务器上手动部署 Discuz! 论坛,需要完成以下任务:安装 LAMP 环境(Linux、Apache、MySQL 和 PHP),下载并解压 Discuz! 源码,配置数据库和论坛环境。以下是具体的操作流程: #### 1. 更新系统并安装必要工具 确保服务器上的软件包是最新的,并安装一些必要的工具: ```bash sudo yum update -y sudo yum install -y wget unzip ``` [^3] #### 2. 安装 Apache 使用 `yum` 命令安装 Apache: ```bash sudo yum install -y httpd sudo systemctl start httpd sudo systemctl enable httpd ``` 验证 Apache 是否正常运行,访问服务器的 IP 地址(如 `http://<服务器IP>`),如果看到默认页面,则表示成功。 [^4] #### 3. 安装 MySQL 数据库 安装 MariaDB(MySQL 的社区版): ```bash sudo yum install -y mariadb-server mariadb sudo systemctl start mariadb sudo systemctl enable mariadb ``` 运行安全脚本以提高数据库的安全性: ```bash sudo mysql_secure_installation ``` 根据提示设置 root 密码并完成其他安全配置。 [^4] #### 4. 创建数据库和用户 登录到 MySQL 并创建一个数据库和用户: ```sql CREATE DATABASE discuz CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'discuzuser'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON discuz.* TO 'discuzuser'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` 将 `your_password` 替换为实际的密码。 #### 5. 安装 PHP 及相关扩展 安装 PHP 7.2 及其常用扩展: ```bash sudo yum install -y epel-release sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm sudo yum install -y php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml ``` 编辑 PHP 配置文件以优化性能: ```bash sudo vi /etc/php.ini ``` 修改以下参数(根据需求调整): ```ini file_uploads = On short_open_tag = On memory_limit = 128M upload_max_filesize = 20M max_execution_time = 300 date.timezone = Asia/Shanghai ``` [^4] #### 6. 下载并解压 Discuz! 源码 从官方仓库下载最新版本的 Discuz! 源码: ```bash cd /var/www/html/ sudo wget https://gitee.com/Discuz/DiscuzX/releases/download/v3.5-20231001/Discuz_X3.5_SC_UTF8_20231001.zip sudo unzip Discuz_X3.5_SC_UTF8_20231001.zip sudo mv upload/ discuz sudo chown -R apache:apache /var/www/html/discuz/ ``` [^2] #### 7. 配置虚拟主机 编辑 Apache 的配置文件以支持 Discuz!: ```bash sudo vi /etc/httpd/conf.d/discuz.conf ``` 添加以下内容: ```apache <VirtualHost *:80> ServerAdmin webmaster@example.com DocumentRoot "/var/www/html/discuz" ServerName your_domain_or_ip <Directory "/var/www/html/discuz"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> ``` 重启 Apache 服务以应用更改: ```bash sudo systemctl restart httpd ``` [^4] #### 8. 完成 Discuz! 安装向导 访问 `http://<服务器IP>/install/`,按照网页上的提示完成 Discuz! 的安装过程: 1. 检查环境要求。 2. 输入数据库信息(数据库名、用户名、密码)。 3. 设置管理员账户。 4. 开始安装。 安装完成后,删除 `install` 文件夹以提高安全性: ```bash sudo rm -rf /var/www/html/discuz/install/ ``` ### 注意事项 - 确保防火墙允许 HTTP(端口 80)和 HTTPS(端口 443)流量。 - 如果需要更高的安全性,可以启用 SSL/TLS 并使用 Let's Encrypt 提供的免费证书。 ```bash sudo yum install -y certbot python2-certbot-apache sudo certbot --apache ``` --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值