努力
加油

在CentOS或Ubuntu上安装WordPress的步骤和注意事项有哪些?

在 Linux 服务器上部署 WordPress,核心逻辑其实就三步:搭环境(LAMP/LNMP)、装软件、配数据库。

虽然 CentOS 和 Ubuntu 都是主流系统,但它们的包管理器不同(yum/dnf vs apt),且目前 CentOS 8/7 已逐渐走向生命周期末端,Ubuntu 20.04/22.04 LTS 则是更稳健的选择。下面我以当前最稳定、最通用的 LNMP (Linux + Nginx + MySQL/MariaDB + PHP) 架构为例,分别梳理两者的实操步骤和避坑指南。


一、 前置准备:服务器与安全组

不管选哪个系统,第一步永远是确保网络通畅。

  1. 防火墙策略:阿里云/腾讯云等云厂商的控制台里,务必在“安全组”或“防火墙规则”中放行 80 (HTTP) 和 443 (HTTPS) 端口。很多新手只开了 SSH 的 22 端口,导致访问网站超时,排查半天才发现是云厂商的安全组没开 Web 端口。
  2. SSH 连接:使用终端或 Xshell/Putty 登录服务器。

二、 CentOS 系列安装步骤

CentOS 7/8 或 AlmaLinux/Rocky Linux 等衍生版,命令逻辑类似。建议直接使用 dnf 或 yum。

1. 更新系统并安装基础工具

# CentOS 7
sudo yum update -y
sudo yum install epel-release -y

# CentOS 8+ (推荐)
sudo dnf update -y
sudo dnf install epel-release -y

2. 安装 Nginx

sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

验证:浏览器输入 http://你的IP,看到 “Welcome to nginx!” 即成功。

3. 安装 MariaDB (MySQL 替代品,兼容性好)

sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 初始化数据库安全设置
sudo mysql_secure_installation

注意:运行上述脚本时,会提示设置 root 密码、移除匿名用户等,一路 Y 即可。

4. 安装 PHP 及必要扩展

WordPress 强依赖 PHP 的某些模块。

# 安装 PHP 7.4 或 8.x (根据需求,目前 8.1+ 性能更好)
sudo yum install php php-fpm php-mysqlnd php-json php-gd php-curl php-mbstring php-xml php-zip -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

关键点:php-mbstring 处理多语言,php-gd 处理图片缩略图,php-zip 支持插件上传 zip 包。少一个都可能报错。

5. 配置 Nginx 与 PHP-FPM 通信

这是最容易出错的地方。编辑 /etc/nginx/conf.d/default.conf 或 /etc/nginx/nginx.conf,确保 location 块中有如下配置:

location ~ .php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php-fpm/www.sock; # 注意 sock 路径,CentOS 通常是 /run/php-fpm/www.sock
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

修改后重启 Nginx:sudo systemctl restart nginx。


三、 Ubuntu 系列安装步骤

Ubuntu 使用 apt,流程更顺滑一些,社区文档也更多。

1. 更新源

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx, MySQL, PHP

Ubuntu 允许一条命令安装所有组件,非常高效:

sudo apt install nginx mysql-server php-fpm php-mysql php-common php-gd php-json php-curl php-mbstring php-xml php-zip -y

注意:这里会自动拉起 Nginx 和 MySQL 服务。

3. 配置 Nginx

Ubuntu 的默认站点配置文件通常在 /etc/nginx/sites-available/default。同样需要修改 location ~ .php$ 部分。
Ubuntu 的 PHP-FPM socket 路径通常是 /var/run/php/php8.x-fpm.sock(版本号随安装的 PHP 版本变化)。

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 请根据实际安装的 PHP 版本调整
}

测试配置并重载:

sudo nginx -t
sudo systemctl reload nginx

四、 WordPress 本体安装与数据库配置

无论哪种系统,接下来的步骤一致:

1. 下载 WordPress

cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz

2. 权限修正(极其重要!)

# 将所有权交给 www-data (Ubuntu) 或 nginx/apache (CentOS)
# Ubuntu:
sudo chown -R www-data:www-data /var/www/html
# CentOS:
sudo chown -R nginx:nginx /var/www/html

注意:不要随意给 777 权限,这是巨大的安全隐患。

3. 创建数据库和用户

登录 MySQL/MariaDB:

mysql -u root -p

执行 SQL 语句(替换为你的密码和库名):

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

注意:字符集必须用 utf8mb4,否则 Emoji 表情存不进去。

4. 生成密钥并配置 wp-config.php

复制示例文件:

cp wp-config-sample.php wp-config.php

打开 wp-config.php,填入刚才创建的数据库信息,并在 AUTH_KEY 等位置填入从 https://api.wordpress.org/secret-key/1.1/salt/ 获取的唯一密钥串。


五、 关键注意事项与避坑指南

作为过来人,以下几点比安装本身更重要:

  1. PHP 内存限制:
    WordPress 默认 PHP 内存可能只有 128M,对于大型主题或插件不够用。

    • 操作:找到 php.ini (CentOS 通常在 /etc/opt/remi/php81/php.ini 或 /etc/php/8.1/fpm/php.ini;Ubuntu 在 /etc/php/8.1/fpm/php.ini),修改 memory_limit = 256M 或更高。
  2. 文件上传大小限制:
    默认可能只能传 2MB 的图片或附件。

    • 操作:在同一个 php.ini 中修改:
      upload_max_filesize = 64M
      post_max_size = 64M
      max_execution_time = 300
    • 修改后记得重启 PHP-FPM:sudo systemctl restart php-fpm。
  3. SSL 证书配置:
    现在没有 HTTPS 的网站几乎无法生存。推荐使用 Certbot 自动申请 Let’s Encrypt 免费证书。

    • Ubuntu: sudo apt install certbot python3-certbot-nginx
    • CentOS: sudo yum install certbot python3-certbot-nginx
    • 执行 sudo certbot --nginx 按提示操作即可,它会自动帮你改好 Nginx 配置并设置自动续期。
  4. SELinux 问题 (CentOS 特有):
    如果你用的是 CentOS 且开启了 SELinux,可能会遇到“无法写入 wp-content”或“数据库连接错误”。

    • 临时解决:setenforce 0 (不推荐生产环境长期使用)。
    • 正确做法:学习 semanage fcontext 和 restorecon 命令,或者在 Nginx 配置中调整上下文。如果不懂 SELinux,建议直接关闭它 (sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config && setenforce 0),除非你有极高的安全合规要求。
  5. 备份策略:
    安装完只是开始。务必配置定时备份。

    • 数据库:mysqldump 导出到 OSS/S3 或本地磁盘。
    • 文件:rsync 或 tar 打包 /var/www/html。
    • 可以使用 crontab 设置每天凌晨备份一次。
  6. 禁用 XML-RPC:
    为了防暴力破解,建议在 functions.php 或 Nginx 层面禁用 XML-RPC,除非你明确需要远程发布功能。

总结

  • 新手推荐:Ubuntu 22.04 LTS + LNMP。因为 apt 包依赖管理更友好,社区教程多为 Ubuntu 环境,遇到问题更容易搜到解决方案。
  • 企业级/运维偏好:CentOS Stream 或 Rocky Linux。稳定性极高,但需要更注意 SELinux 和 EPEL 源的配置。
  • 终极偷懒方案:如果不想折腾命令行,可以考虑使用宝塔面板(BT Panel)或 CloudPanel。它们提供了可视化的 LEMP/LAMP 环境搭建界面,适合非深度 Linux 用户,但需注意其安全性配置和后台服务的资源占用。

按照上述步骤,你应该能在 20-30 分钟内搞定一个标准的 WordPress 生产环境。