
一、部署环境
Debian11/12/13,全程CLI,普通用户也可以,下面先以root用户操作,后面给予非root用户加固方案。
二、更新系统&安装wordpress所需的运行环境与依赖。
1、更新系统软件源索引与升级本机所有已安装软件到源里的最新版本,全程无需人工确认自动下载并安装。
apt update && apt upgrade -y
2、安装WordPress所需的运行环境与依赖,全程无需人工确认自动下载并安装。
apt install -y nginx mariadb-server mariadb-client php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip php-imagint php-intl wget unzip curl
三、 配置 MariaDB(MySQL)
1、安全初始化
mariadb-secure-installation
交互步奏:
1.1、Switch to unix_socket authentication? N
1.2、Change the root password? Y (设置数据库root密码)
1.3、Remove anonymous users? Y
1.4、Disallow root login remotely? Y
1.5、Remove test database? Y
1.6、Reload privilege tables now? Y
2、用root用户登录数据库并创建 WordPress 数据库与账号
mysql -u root -p
进入 mysql 交互,复制执行(修改wpdb、wpuser、你的强密码):
CREATE DATABASE wpdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED '你的强密码';
GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
exit;
三、下载WordPress与设置网站所有者和修改读写权限
cd /var/www
wget https://cn.wordpress.org/latest-zh_CN.zip
unzip latest-zh_CN.zip
mv wordpress yourdomain # 改成你的站点目录名,例:mv wordpress blog
chown -R www-data:www-data /var/www/yourdomain
chmod -R 755 /var/www/yourdomain
四、配置WordPress网站的Nginx配置
1、新建WordPress的配置文件:/etc/nginx/sites-available/yourdomain.conf
nano /etc/nginx/sites-available/yourdomain.conf
2、粘贴下面配置,修改 your.domain.com、root路径、php 版本(Debian12 是 php8.2‑fpm,Debian11 是 php7.4‑fpm,具体以安装的版本为准)。
server {
listen 80;
server_name your.domain.com;
root /var/www/yourdomain;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
3、启用站点,关闭默认站点,校验 nginx 配置,重启Nginx:
ln -s /etc/nginx/sites-available/yourdomain.conf /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t
systemctl reload nginx
五、PHP‑FPM 检查
systemctl status php8.2-fpm
systemctl enable --now php8.2-fpm
六、防火墙(ufw)放行 80、443端口
ufw allow 'Nginx Full'
ufw reload
此时访问 http://your.domain.com 进入 wordpress 网页安装向导,填入刚才数据库名、数据库用户、密码完成安装。
七、命令行申请 SSL 证书(Let’s Encrypt certbot)
1、安装Let’s Encrypt certbot与申请SSL证书。
apt install certbot python3-certbot-nginx -y
certbot --nginx -d your.domain.com
2、按提示输入邮箱,同意条款,开启自动重定向 https。
3、设置证书自动续期:
certbot renew --dry-run
八、安全加固:使用非 root 用户运行WordPress网站,不直接用 root 操作 web
1、遵循最小权限,创建独立 web 用户wpuser ,不用 www‑data 也可以。
groupadd wpuser
useradd -g wpuser -s /bin/bash wpuser
chown -R wpuser:wpuser /var/www/yourdomain
2、修改 nginx 配置中 php‑fpm pool,把运行用户从www‑data 改为wpuser 。
编辑 pool 配置:
nano /etc/php/8.2/fpm/pool.d/www.conf
修改以下配置:
user = wpuser
group = wpuser
listen.owner = www-data
listen.group = www-data
重启 php-fpm:
systemctl restart php8.2-fpm
3、设置WordPress网站的的目录权限。
# 目录755,文件644
find /var/www/yourdomain -type d -exec chmod 755 {} \;
find /var/www/yourdomain -type f -exec chmod 644 {} \;
九、命令行备份(数据库 + 网站文件)
#数据库备份
mysqldump -u wpuser -p wpdb > wpdb_$(date +%Y%m%d).sql
#网站打包
tar -zcvf wp_site_$(date +%Y%m%d).tar.gz /var/www/yourdomain
十、排错快速命令
#看nginx错误
journalctl -u nginx -f
#看php‑fpm错误
journalctl -u php8.2-fpm -f
#测试nginx配置
nginx -t
总结:至此一个WordPress的网站就已经搭建完成,并且完成了初步的安全加固。