通过宝塔面板建站固然方便,但面板本身占用资源且存在一定安全面。手动部署 LNMP(Linux + Nginx + MySQL + PHP-FPM)能让你对服务器有更深入的掌控,也是进阶运维的必备技能。本文以 Debian 12 / Ubuntu 22.04 为例,从安装软件包到 WordPress 可访问,一步步完整演示。

本文要点

  • 用 apt 安装 Nginx、MySQL 8.0、PHP 8.1-FPM
  • 创建 MySQL 数据库与专用用户
  • 编写 Nginx 虚拟主机配置文件
  • 下载解压 WordPress,正确设置文件权限
  • 完成 wp-config.php 配置与安装向导

安装 Nginx

apt update && apt install -y nginx
systemctl enable --now nginx

在浏览器访问服务器 IP,看到 Nginx 欢迎页即安装成功。

安装 MySQL 8.0

apt install -y mysql-server
systemctl enable --now mysql
mysql_secure_installation

mysql_secure_installation 向导会引导你设置 root 密码、删除匿名用户、禁止 root 远程登录等安全操作,建议逐项确认。

创建 WordPress 数据库与用户

mysql -u root -p

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 8 的密码强度策略默认较高,建议使用包含大小写字母、数字和特殊符号的 16 位以上密码。若遇到 ERROR 1819,可先执行 SET GLOBAL validate_password.policy=LOW; 降低策略再创建用户。

安装 PHP 8.1-FPM

apt install -y php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd \
    php8.1-mbstring php8.1-xml php8.1-zip php8.1-intl
systemctl enable --now php8.1-fpm

验证 PHP-FPM 是否运行:

systemctl status php8.1-fpm

配置 Nginx 虚拟主机

为 WordPress 站点新建 Nginx 配置文件:

nano /etc/nginx/sites-available/wordpress

写入以下内容(将 example.com 替换为你的域名或 IP):

server {
    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.1-fpm.sock;
    }

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

启用配置并测试:

ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

下载并部署 WordPress

  1. 创建站点目录:mkdir -p /var/www/wordpress
  2. 下载最新中文版:wget https://cn.wordpress.org/latest-zh_CN.tar.gz -O /tmp/wp.tar.gz
  3. 解压并移动文件:tar xzf /tmp/wp.tar.gz -C /tmp && mv /tmp/wordpress/* /var/www/wordpress/
  4. 设置文件所有者:chown -R www-data:www-data /var/www/wordpress
  5. 设置目录/文件权限:find /var/www/wordpress -type d -exec chmod 755 {} \; && find /var/www/wordpress -type f -exec chmod 644 {} \;

配置 wp-config.php

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

修改以下关键配置项:

配置项说明示例值
DB_NAME数据库名wordpress
DB_USER数据库用户名wpuser
DB_PASSWORD数据库密码你设置的强密码
DB_HOST数据库主机localhost
table_prefix表前缀(建议修改)wp2024_

为什么要修改表前缀

默认 wp_ 前缀是 SQL 注入攻击的常见目标,修改为自定义前缀(如 wp2024_)能有效降低自动化攻击成功率。同时建议替换 wp-config.php 中的 AUTH_KEY 等安全盐值(访问 WordPress 密钥生成器获取)。

完成安装向导

在浏览器访问 http://你的IP或域名,WordPress 会自动检测到配置并弹出安装向导。依次填写站点标题、管理员账号密码、邮箱后点击安装。安装完成后登录 /wp-admin 后台即可开始使用。

安装验证

登录后台后进入 设置 → 固定链接,选择"文章名"格式并保存,Nginx 的 try_files 规则会确保伪静态正常工作,文章 URL 将更美观且利于 SEO。

常见报错排查

报错信息可能原因解决方法
502 Bad GatewayPHP-FPM 未运行或 socket 路径错误检查 PHP-FPM 状态,确认 socket 路径与 Nginx 配置一致
数据库连接错误数据库配置错误核对 wp-config.php 中数据库名、用户名、密码
文件写入权限错误所有者不是 www-data执行 chown -R www-data:www-data /var/www/wordpress
Nginx 403 Forbiddenindex.php 不存在或权限问题确认 WordPress 文件已正确移动到根目录

小结

  • 手动 LNMP 部署让你深入理解各组件的配置逻辑
  • Nginx + PHP-FPM Unix Socket 比 TCP 连接性能更优
  • 文件权限(www-data 所有者,755/644)是 WordPress 正常运行的基础
  • 安装后记得配置固定链接,验证伪静态规则是否生效

常见问题

PHP 版本如何选择?

WordPress 6.x 支持 PHP 7.4 到 8.3,推荐 PHP 8.1 或 8.2,性能更好且官方长期维护。

MySQL 和 MariaDB 可以互换吗?

可以,WordPress 完全兼容 MariaDB,安装命令改为 apt install -y mariadb-server 即可,后续操作相同。

如何给 Nginx 站点添加 SSL?

安装 Certbot:apt install -y certbot python3-certbot-nginx,然后运行 certbot --nginx -d example.com,按提示操作即可自动申请证书并修改 Nginx 配置。

手动部署和宝塔面板哪个更适合生产环境?

手动部署安全面更小、资源消耗更少,但需要有一定 Linux 基础;宝塔面板适合快速建站,管理方便。生产环境推荐根据自身技术水平选择,两者均可靠。