努力
加油

使用CentOS 8.2安装WordPress推荐用LNMP还是LAMP架构?

先说结论:在 CentOS 8.2 这个特定环境下,强烈建议优先选择 LAMP(Apache + MySQL/MariaDB + PHP)架构,或者更现代一点的方案——直接使用 Docker 部署 WordPress。

至于 LNMP(Nginx + MySQL/MariaDB + PHP),它本身没有错,但在 CentOS 8.2 上安装和配置的成本远高于 LAMP。

下面我从系统兼容性、维护成本、性能表现、以及现实环境四个维度,给你拆解为什么这么选。

1. 核心痛点:CentOS 8 的生命周期与软件源问题

这是最关键的一点,也是很多人忽略的“坑”。

  • CentOS 8 已停止维护(EOL):CentOS 8 于 2021 年底正式结束生命周期。这意味着官方源已经迁移或归档,默认的 yum 命令可能无法直接拉取最新的安全补丁和软件包。
  • Nginx 的版本尴尬:在标准的 CentOS 8 基础源中,Nginx 的版本通常较旧(如 1.14 或 1.16)。虽然你可以添加 Nginx 官方源来获取新版本(1.20+),但这增加了配置的复杂度。相比之下,Apache(httpd)在 CentOS/RHEL 体系中是“一等公民”,默认源支持极好,且与系统服务管理(systemd)集成得非常完美。
  • PHP 版本的支持:WordPress 目前推荐 PHP 7.4 或 8.0+。在 CentOS 8 上,通过 Remi 源安装 PHP 8.0/8.1 时,Apache (mod_php) 的配置比 Nginx + PHP-FPM 要简单得多,出错概率更低。

2. LAMP vs LNMP 在 CentOS 上的实际体验对比

方案 A:LAMP (Apache + MariaDB + PHP)

  • 优势:
    • 开箱即用:yum install httpd mariadb-server php php-mysqlnd 装完就能用大部分功能。
    • .htaccess 友好:WordPress 的重写规则依赖 .htaccess。Apache 原生支持,无需额外配置反向XX规则。对于新手或需要频繁调整伪静态规则的用户,Apache 更直观。
    • 模块化管理:启用 HTTPS、缓存等模块只需 a2enmod 类似的逻辑(虽然 CentOS 用 systemctl 和配置文件),调试方便。
  • 劣势:
    • 并发能力稍弱:Apache 基于进程模型(prefork),高并发下内存占用较大。但如果你只是个人博客、中小企业官网,这点性能瓶颈几乎感知不到。
    • 配置相对繁琐:虚拟主机配置比 Nginx 的 server block 略显冗长。

方案 B:LNMP (Nginx + MariaDB + PHP-FPM)

  • 优势:
    • 高并发王者:Nginx 的事件驱动模型在处理静态资源和高并发请求时效率极高。
    • 资源占用低:相比 Apache,Nginx + PHP-FPM 在空闲状态下内存占用更少。
    • 现代 Web 标准:配合 HTTP/2、HTTP/3 支持更好,前端优化空间更大。
  • 劣势(在 CentOS 8 上被放大):
    • 配置复杂度高:你需要手动编写 Nginx 的 server 块,处理 PHP-FPM 的 socket 或 TCP 连接,配置 .conf 文件实现伪静态。一旦 WordPress 插件更新导致 URL 结构变化,可能需要重新加载 Nginx 配置。
    • 调试门槛:遇到 502 Bad Gateway 时,你需要同时排查 Nginx 日志、PHP-FPM 日志、MySQL 日志,排错链路比 Apache 长。

3. 为什么我不推荐你在 CentOS 8 上死磕 LNMP?

除非你有以下情况,否则别碰 LNMP:

  1. 你非常熟悉 Nginx 配置,且服务器主要承载高流量访问。
  2. 你已经有一套成熟的自动化运维脚本(Ansible/SaltStack)来管理 LNMP 环境。

现实情况是:
大多数使用 CentOS 8 搭建 WordPress 的用户,站点规模并不大。在这种情况下,Apache 的稳定性和易用性远大于 Nginx 的性能收益。而且,由于 CentOS 8 源的问题,手动编译安装 Nginx 或配置第三方源带来的稳定性风险,不值得为那点性能提升去承担。

4. 更推荐的替代方案:Docker 部署

既然你提到了云计算和云服务器,我强烈建议你放弃裸机安装 LNMP/LAMP,改用 Docker Compose 部署 WordPress。

理由如下:

  1. 绕过 CentOS 8 的包管理困境:Docker 镜像自带 PHP、Nginx/Apache、MySQL,不依赖宿主机的软件源。
  2. 版本可控:你可以轻松指定 php:8.1-fpm 或 nginx:1.24-alpine,不受 CentOS 8 仓库限制。
  3. 隔离性好:WordPress 环境与其他服务隔离,升级、迁移、备份极其方便。
  4. 符合云原生趋势:这是目前互联网行业的主流做法。

简单的 docker-compose.yml 示例思路:

version: '3.8'
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data:

注:生产环境建议使用 Nginx 作为反向XX容器,后端接 WordPress 容器(内置 Apache),这样既享受了 Nginx 的高并发,又保留了 WordPress 对 Apache 的原生兼容。

总结建议

场景 推荐架构 原因
个人博客/小型企业站 LAMP (Apache) 配置简单,.htaccess 友好,CentOS 8 源支持好,稳定压倒一切。
高并发/大型网站 Docker + Nginx + PHP-FPM 利用 Docker 解决系统兼容性问题,Nginx 处理高并发,架构灵活可扩展。
学习 Linux 运维 LNMP (手动编译) 如果你想深入理解 Linux 服务原理,可以折腾,但生产环境不建议。

最终操作建议:

  1. 如果必须裸机安装,选 LAMP。
  2. 如果可以接受容器化,选 Docker Compose(内部可组合 Nginx+Apache 或 Nginx+PHP-FPM)。
  3. 重要提醒:CentOS 8 已 EOL,建议尽快迁移至 AlmaLinux 9、Rocky Linux 9 或 Ubuntu 22.04/24.04 LTS,这些系统在软件源支持和长期维护上更有保障。