纯命令行部署 WordPress(Nginx+MariaDB+PHP‑FPM,不装宝塔 / 1Panel)

Wordpress建站教程

一、部署环境

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的网站就已经搭建完成,并且完成了初步的安全加固。