通过宝塔面板建站固然方便,但面板本身占用资源且存在一定安全面。手动部署 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_installationmysql_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
- 创建站点目录:
mkdir -p /var/www/wordpress - 下载最新中文版:
wget https://cn.wordpress.org/latest-zh_CN.tar.gz -O /tmp/wp.tar.gz - 解压并移动文件:
tar xzf /tmp/wp.tar.gz -C /tmp && mv /tmp/wordpress/* /var/www/wordpress/ - 设置文件所有者:
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
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 Gateway | PHP-FPM 未运行或 socket 路径错误 | 检查 PHP-FPM 状态,确认 socket 路径与 Nginx 配置一致 |
| 数据库连接错误 | 数据库配置错误 | 核对 wp-config.php 中数据库名、用户名、密码 |
| 文件写入权限错误 | 所有者不是 www-data | 执行 chown -R www-data:www-data /var/www/wordpress |
| Nginx 403 Forbidden | index.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 基础;宝塔面板适合快速建站,管理方便。生产环境推荐根据自身技术水平选择,两者均可靠。