在 Alibaba Cloud Linux 3(基于 CentOS Stream 8/AlmaLinux/Rocky Linux 体系)上部署宝塔面板(BT Panel),核心痛点在于软件包管理器的兼容性以及内核级别的防火墙策略。
以下是必须注意的关键问题及解决方案,按优先级排序:
1. 强制使用 yum/dnf 安装,严禁手动编译或下载二进制包
Alibaba Cloud Linux 3 默认使用 dnf 作为包管理器,且依赖关系与 CentOS 7 完全不同。
- 错误做法:直接下载
.sh脚本运行后,尝试通过yum install nginx php等命令安装组件,可能会因为仓库源不匹配导致大量依赖冲突。 - 正确做法:
- 确保系统已更新到最新状态:
sudo dnf update -y - 宝塔官方脚本通常会自动适配环境,但首次运行前需确认基础依赖齐全。
- 关键点:在安装宝塔过程中,如果提示缺少某些库(如
libcurl,openssl等),请优先使用dnf install <package>解决,而不是去网上找 RPM 包手动安装,这会破坏系统的完整性校验。
- 确保系统已更新到最新状态:
2. 防火墙配置:禁用 firewalld,改用 iptables 或宝塔自带防火墙
这是最常见的“连不上 SSH”或“网站打不开”的原因。
- 背景:CentOS 8/Alibaba Cloud Linux 3 默认启用
firewalld,其规则复杂且对非标准端口支持不佳。 -
操作建议:
- 停止并禁用 firewalld:
systemctl stop firewalld systemctl disable firewalld - 安装 iptables-services(宝塔面板更习惯使用 iptables):
dnf install iptables-services -y systemctl enable iptables systemctl start iptables -
开放必要端口:
- SSH 端口(默认 22)
- 宝塔面板端口(默认 8888,务必修改!)
- HTTP/HTTPS (80, 443)
- FTP (21, 20)
- 数据库端口(3306, 5432 等,如需远程访问)
注意:如果在阿里云控制台的安全组中未放行这些端口,即使服务器内部防火墙已开,外部也无法访问。务必检查阿里云 ECS 实例的“安全组”规则。
- 停止并禁用 firewalld:
3. SELinux 必须设置为 Permissive 或 Disabled
Alibaba Cloud Linux 3 默认开启 SELinux,而宝塔面板的自动化脚本和文件权限管理常与 SELinux 策略冲突,导致网站无法启动、日志无权限写入等问题。
- 操作:
setenforce 0 # 临时生效 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 重启系统使配置永久生效 reboot推荐:生产环境中建议将 SELinux 设为
permissive(记录警告但不阻止),而非完全disabled,以兼顾安全性与兼容性。
4. 面板端口修改与安全加固
- 默认端口危险:宝塔默认面板端口为 8888,极易被扫描器攻击。
- 操作:安装完成后,立即在面板设置中修改面板端口,并设置强密码。
- IP 白名单:在宝塔面板后台 → 安全 → 添加你的固定 IP 地址为白名单,避免暴露给公网所有用户。
5. PHP 版本选择与扩展兼容性
- AlmaLinux/Rocky/CentOS Stream 特性:这些发行版对较新版本的 PHP 支持更好,但部分老旧插件可能仅兼容 CentOS 7。
- 建议:
- 优先选择 PHP 7.4 或 8.1+,避免使用过时的 PHP 5.6/7.0。
- 若使用 WordPress,确保安装了
opcache、redis、memcached等提速扩展。 - 注意:Alibaba Cloud Linux 3 的 EPEL 源可能不包含某些第三方 PHP 扩展,需通过宝塔面板内的“PHP 扩展”界面一键安装,不要手动
pecl install。
6. Nginx/Apache 服务管理
- Nginx 是首选:宝塔默认安装 Nginx,性能优于 Apache。
- 进程守护:确保
bt服务正在运行。若重启服务器后宝塔面板无法登录,检查systemctl status bt。 - 日志排查:若网站 502 Bad Gateway,查看
/www/wwwlogs/下的错误日志,常见原因包括 PHP-FPM 未启动、权限不足(属主应为www:www)。
7. 数据盘挂载与目录规划
- 默认路径:宝塔默认将所有网站数据放在
/www目录下。 - 重要提醒:如果你的云服务器有额外的数据盘(如
/dev/vdb),必须在安装宝塔前完成格式化并挂载到/www或其他指定目录。否则,一旦系统盘空间满,会导致整个面板崩溃。- 示例:假设数据盘为
/dev/vdb,将其挂载到/www:mkfs.ext4 /dev/vdb mkdir /www mount /dev/vdb /www echo '/dev/vdb /www ext4 defaults 0 0' >> /etc/fstab
- 示例:假设数据盘为
8. 阿里云专属优化建议
- 使用云监控插件:安装宝塔后,建议在阿里云控制台开启“云监控”,以便实时观察 CPU、内存、磁盘 IO 使用情况。
- 快照备份:在执行任何重大操作(如升级系统、更换 PHP 版本)前,先在阿里云控制台创建系统盘快照。这是最可靠的回滚手段。
- 内网互通:若你有多台服务器,建议将数据库服务器与应用服务器分离,并通过阿里云内网 IP 连接,提升性能并降低延迟。
总结 Checklist
- [ ] 更新系统:
dnf update -y - [ ] 关闭 firewalld,启用 iptables
- [ ] 设置 SELinux 为 permissive
- [ ] 挂载数据盘至
/www(如有) - [ ] 安装宝塔面板(使用官方脚本)
- [ ] 修改面板端口,设置 IP 白名单
- [ ] 在阿里云安全组中放行相关端口
- [ ] 创建系统盘快照
遵循以上步骤,可最大程度避免因环境差异导致的部署失败和安全风险。
CLOUD云枢