这篇从一台刚装好的 Ubuntu VPS 开始,到 WordPress 能打开后台为止。环境以 Ubuntu 24.04 + Nginx + MariaDB + PHP-FPM 为例;其他发行版路径不同,思路一致。

开始前确认两件事:

  • 域名已经解析到这台机器的 IP(A 记录);
  • 你知道服务器的 root 密码或密钥,能 SSH 登录。

零、版本先对齐

WordPress 官方需求页当前写的是:

PHP version 8.3 or greater.

MariaDB version 10.11 or greater OR MySQL version 8.0 or greater.

HTTPS support

Ubuntu 24.04 官方源里的 PHP 与 MariaDB 版本满足这个推荐值。如果用 22.04,先查版本:

php -v
mariadb --version

低于推荐值就别硬装,换系统或加软件源更省事。

一、装 Nginx、MariaDB、PHP

apt update && apt upgrade -y
apt install -y nginx mariadb-server php-fpm php-mysql \
  php-curl php-gd php-mbstring php-xml php-zip unzip

装完确认三个服务都在跑:

systemctl status nginx --no-pager
systemctl status mariadb --no-pager
systemctl status php8.3-fpm --no-pager

PHP 版本号以你机器上的实际版本为准,下文出现的 8.3 都要替换成它。

二、建数据库和用户

先做基础安全设置:

mariadb-secure-installation

然后进数据库:

mariadb
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '换成你自己的强密码';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

这三行对应官方安装步骤里的「创建数据库,以及拥有全部权限的 MySQL/MariaDB 用户」。

三、下载 WordPress 并放到位

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mkdir -p /var/www/wordpress
cp -a /tmp/wordpress/. /var/www/wordpress/

设权限,让 Nginx 的运行用户 www-data 能读写,同时不给多余权限:

chown -R www-data:www-data /var/www/wordpress
find /var/www/wordpress -type d -exec chmod 755 {} \;
find /var/www/wordpress -type f -exec chmod 644 {} \;

四、配置 wp-config.php

cd /var/www/wordpress
cp wp-config-sample.php wp-config.php

编辑 wp-config.php,把这几项换成第二步的值:

define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', '你设置的密码' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

密钥不要自己随手编。官方给了生成页:

https://api.wordpress.org/secret-key/1.1/salt/

打开后整段复制,替换掉 wp-config.php 里 Authentication Unique Keys and Salts 那一段。最后把文件权限收紧:

chown www-data:www-data wp-config.php
chmod 640 wp-config.php

五、写 Nginx server 块

新建 /etc/nginx/sites-available/wordpress:

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    root /var/www/wordpress;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

fastcgi_pass 的 socket 名必须和机器上的一致,先看一眼:

ls /run/php/

启用站点并检查语法:

ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t
systemctl reload nginx

try_files 那一行是为了固定链接能正常工作:请求先找真实文件,找不到就交给 index.php。

六、上 HTTPS

apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com

按提示选「重定向 HTTP 到 HTTPS」。证书会自动续期,确认一下定时任务存在即可:

systemctl list-timers | grep certbot

如果开了 ufw,记得放行:

ufw allow 'Nginx Full'

七、完成安装

浏览器打开:

https://example.com/wp-admin/install.php

按页面填站点标题、管理员用户名、密码和邮箱。这一步对应官方安装流程的最后一步「运行安装脚本」。装完删掉安装脚本入口不需要手动做,WordPress 会自己处理。

登录后台:https://example.com/wp-admin/。

八、装完先做四件事

  1. 固定链接:后台「设置 → 固定链接」选「文章名」,保存后确认文章页能打开(不能打开就回看 try_files)。
  2. 上传限制:如果主题或插件装不上,改 /etc/php/8.3/fpm/php.ini 里的 upload_max_filesize 和 post_max_size,然后 systemctl restart php8.3-fpm。
  3. 备份:数据库用 mariadb-dump,文件用 tar,两者都要,别只备一样。
  4. 更新策略:WordPress 核心、主题、插件的小版本可以自动更新;大版本先在备份上试。

常见故障对照

现象 优先检查
502 Bad Gateway fastcgi_pass 的 socket 路径、php-fpm 是否在跑
数据库连接错误 wp-config.php 的库名/用户名/密码、MariaDB 是否运行
后台能进,文章页 404 Nginx 的 try_files 是否漏了 /index.php?$args
上传失败 upload_max_filesize、post_max_size、目录权限
站点一直跳 HTTP certbot 是否选了重定向、浏览器缓存

一句话总结

顺序是:对齐版本 → 装三个组件 → 建库 → 放文件 → 配 wp-config → 写 Nginx → 上 HTTPS → 跑安装脚本。中途任何一步报错,先看服务状态和日志(/var/log/nginx/error.log、journalctl -u php8.3-fpm),再改配置。