这篇从一台刚装好的 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/。
八、装完先做四件事
- 固定链接:后台「设置 → 固定链接」选「文章名」,保存后确认文章页能打开(不能打开就回看
try_files)。 - 上传限制:如果主题或插件装不上,改
/etc/php/8.3/fpm/php.ini里的upload_max_filesize和post_max_size,然后systemctl restart php8.3-fpm。 - 备份:数据库用
mariadb-dump,文件用tar,两者都要,别只备一样。 - 更新策略: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),再改配置。