努力
加油

生产环境部署WordPress,应选择哪个长期支持(LTS)版本的Ubuntu或CentOS?

直接给结论:选 Ubuntu 22.04 LTS (Jammy Jellyfish)。

如果你还在纠结 CentOS,建议直接忘掉它。以下是基于国内生产环境实际运维经验、生态兼容性和长期维护成本的深度分析。

1. 为什么不再推荐 CentOS?

首先要澄清一个事实:CentOS Linux 已经正式终止生命周期(EOL)。

  • 历史背景:CentOS 7 已于 2024 年 6 月 30 日彻底停止支持。这意味着你再也拿不到任何安全补丁、Bug 修复或内核更新。在生产环境中运行 EOL 的系统,等同于把服务器大门敞开给黑客,这是严重的安全合规风险。
  • 替代品困境:Red Hat 推出的 CentOS Stream 是滚动发布版本,偏向开发测试,稳定性不如传统的 RHEL 克隆版。对于追求“稳定压倒一切”的 WordPress 部署场景,Stream 并不是最佳选择。
  • 国内现状:虽然国内有 CentOS 的衍生版(如 AlmaLinux, Rocky Linux),它们确实可以作为 RHEL 的二进制兼容替代品,但在国内云厂商的支持力度、文档丰富度以及社区活跃度上,远不及 Ubuntu 生态成熟。且很多老旧教程依赖的 yum 命令在新系统中可能需要适配,增加了迁移成本。

结论:除非你有极其特殊的遗留系统绑定需求(必须用 RHEL 体系),否则不要在新项目中选择任何 CentOS 分支。

2. 为什么 Ubuntu 22.04 LTS 是最佳选择?

Ubuntu 22.04 LTS 提供 5 年的标准支持(截至 2027 年),若购买 Canonical 的 Extended Security Maintenance (ESM),可延长至 10 年。对于大多数中小型企业和个人站长来说,5 年完全足够覆盖一个稳定的生产周期。

核心优势:

  • LAMP/LEMP 栈的完美兼容性:

    • WordPress 重度依赖 PHP、MySQL/MariaDB 和 Nginx/Apache。
    • Ubuntu 的软件源(APT)对这些组件的版本管理非常清晰。你可以轻松安装特定版本的 PHP(如 8.1 或 8.2,这是目前 WordPress 推荐的版本),而无需像在某些 RHEL 系系统中那样编译源码或使用复杂的第三方仓库。
    • apt install php-fpm nginx mysql-server 一条命令搞定基础环境,出错率低。
  • 云厂商原生支持最好:

    • 在国内主流云厂商(阿里云、腾讯云、华为云、AWS China)中,Ubuntu 镜像的预装驱动、网络配置优化、监控插件集成都是最完善的。
    • 使用 Cloud-Init 初始化实例时,Ubuntu 的兼容性几乎没有坑。
  • 社区与问题解决效率:

    • Stack Overflow、GitHub Issues 上关于 WordPress + Ubuntu 的解决方案数量远超 CentOS。
    • 当遇到权限问题、SELinux 策略冲突(CentOS/RHEL 默认开启 SELinux,配置复杂)、防火墙规则等问题时,Ubuntu 默认的 AppArmor 或简单 iptables/nftables 规则更易于理解和调试。
  • 安全性与现代内核:

    • Ubuntu 22.04 搭载较新的 Linux 内核(5.15+),对现代硬件(如 NVMe SSD、最新 CPU 指令集)有更好的性能优化。
    • 定期通过 unattended-upgrades 自动接收安全补丁,降低人工维护负担。

3. 生产环境部署的关键注意事项(避坑指南)

选对操作系统只是第一步,WordPress 在生产环境的稳定性和性能还取决于以下细节:

✅ 必须做:

  1. 禁用 Root 登录,创建专用用户:

    adduser deploy
    usermod -aG sudo deploy

    所有操作通过 sudo 执行,保留审计日志。

  2. 启用 UFW 防火墙:

    ufw allow OpenSSH
    ufw allow 80/tcp
    ufw allow 443/tcp
    ufw enable

    只开放必要端口,其余全部拒绝。

  3. 使用非特权用户运行 Web 服务:
    Nginx 工作进程应以 www-data 身份运行,而非 root。确保文件所有权正确:

    chown -R www-data:www-data /var/www/html
    chmod -R 755 /var/www/html
  4. PHP 配置优化:

    • 修改 /etc/php/8.1/fpm/php.ini:
      • memory_limit = 256M
      • max_execution_time = 300
      • upload_max_filesize = 64M
      • post_max_size = 64M
    • 启用 OPcache 提升性能。
  5. 数据库调优:

    • 如果使用 MySQL 8.0,注意密码认证插件变化(caching_sha2_password),确保 WordPress 能正常连接。
    • 考虑使用 MariaDB 10.6+,它在 WordPress 生态中有更好的兼容性记录。
  6. 备份策略:

    • 不要只依赖云厂商快照。
    • 实现“数据库每日全量备份 + 文件增量备份”,并异地存储(如 OSS/COS)。
    • 定期测试恢复流程!

❌ 避免做:

  • 不要手动从源码编译 PHP/Nginx:除非你有特殊定制需求,否则优先使用 APT 包管理器版本,便于后续安全更新。
  • 不要关闭 Swap:即使内存充足,也建议设置小容量 Swap(如 1-2GB),防止突发流量导致 OOM Kill。
  • 不要忽视 SSL/TLS 证书:强制 HTTPS,使用 Let’s Encrypt 免费证书,并通过 Certbot 自动化续期。

4. 总结

维度 Ubuntu 22.04 LTS CentOS 7 / Stream
安全更新 ✅ 持续至 2027+ ❌ CentOS 7 已停更;Stream 为滚动版
软件包新鲜度 ✅ PHP 8.1/8.2 原生支持 ⚠️ 需额外仓库或编译
学习曲线 低,文档丰富 中高,SELinux 配置复杂
国内云支持 ⭐⭐⭐⭐⭐ ⭐⭐⭐(Alma/Rocky 稍弱)
长期维护成本 低 高(因安全合规压力)

最终建议:
在阿里云、腾讯云等国内平台创建 ECS/CVM 实例时,直接选择 Ubuntu Server 22.04 LTS 64位。配合 Docker 或手动搭建 LEMP 栈,都能获得稳定、高效、易维护的 WordPress 生产环境。

记住:技术选型没有绝对完美,只有最适合当前团队能力和业务需求的方案。 对于绝大多数 WordPress 项目,Ubuntu 22.04 LTS 是当前最稳妥、最省心的选择。