📚 相关阅读

← 返回首页

WordPress Lnmp安装实战:Ubuntu 开发环境 24.04 + Nginx 性能调优 + PHP 8.3 + MySQL 8.0

WordPressLnmpNginxPHPMySQLUbuntu24.04建站

很多人装WordPress,第一步就卡在环境配置上。Lnmp(Linux + Nginx + MySQL + PHP)是WordPress官方推荐的生产环境,但中文互联网的教程要么太老(还在用Ubuntu 20.04),要么漏掉关键配置(socket路径、PHP版本差异),装完一访问就502。

这篇文章是我在两台不同VPS上装Lnmp踩完所有坑后整理的,全部命令在Ubuntu 24.04 LTS上验证过,PHP版本是8.3(Ubuntu 24.04默认),重点标注我在凌晨2点遇到的那5个致命配置错误。

为什么选Lnmp而不是宝塔/1Panel

宝塔和1Panel是可视化面板,适合快速建站。但如果你想:

Lnmp是更干净的选择。WordPress官方文档明确推荐Lnmp作为生产环境,我自己跑了18个月没出过问题。

前置要求

Step 1 — 初始化服务器

登录后先更新包列表:

sudo apt update && sudo apt upgrade -y

创建专用WordPress用户(不是用root运行):

sudo adduser wpuser
sudo usermod -aG www-data wpuser

这个用户将来管理WordPress文件,www-data组让Nginx有权限读取。

Step 2 — 安装Nginx

sudo apt install nginx -y

安装完成后,Nginx会自动启动。验证:

sudo systemctl status nginx

应该看到 Active: active (running)

配置防火墙(如果你启用了UFW):

sudo ufw allow 'Nginx Full'

浏览器访问 http://你的服务器IP,应该看到Nginx欢迎页。

⚠️ 踩坑1:UFW开启时Nginx HTTP没生效

如果 sudo ufw status 显示 Status: inactive,说明UFW没开,不影响。如果开了但没allow Nginx HTTP,外网访问不了。

Step 3 — 安装MySQL 8.0

sudo apt install mysql-server -y

安装完成后,运行安全初始化:

sudo mysql_secure_installation

交互式提示:

创建WordPress专用数据库和用户(这步很多人跳过,直接用root,后期安全隐患大):

sudo mysql

进入MySQL交互界面后:

CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpadmin'@'localhost' IDENTIFIED BY '这里换成你自己的强密码';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wpadmin'@'localhost';
FLUSH PRIVILEGES;
EXIT;

⚠️ 踩坑2:数据库字符集不是utf8mb4

WordPress Emoji和特殊中文需要utf8mb4,不是utf8。如果创建时用了默认字符集,中文评论会乱码。上面的命令已经指定了 utf8mb4

Step 4 — 安装PHP 8.3-FPM和必要扩展

Ubuntu 24.04默认PHP版本是8.3,不是很多教程里的8.1。安装:

sudo apt install php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-xmlrpc php8.3-zip php8.3-bcmath php8.3-intl -y

这些扩展是WordPress核心+主流插件必须的,特别是:

⚠️ 踩坑3:Ubuntu 24.04的socket路径变了

很多教程写的是 /var/run/php/php8.1-fpm.sock,Ubuntu 24.04用的是 /run/php/php8.3-fpm.sock。如果Nginx配置里写错路径,访问PHP文件会502 Bad Gateway。后面配置Nginx时注意。

验证PHP安装:

php -v
# 输出应该是:PHP 8.3.x

Step 5 — 配置Nginx站点

创建站点配置文件:

sudo nano /etc/nginx/sites-available/wordpress

写入以下内容(注意socket路径):

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;  # 换成你的域名
    root /var/www/wordpress;  # 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;  # Ubuntu 24.04正确路径
    }

    location ~ /\.ht {
        deny all;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
}

激活站点:

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t  # 测试配置语法
sudo systemctl reload nginx

⚠️ 踩坑4:sites-enabled里的配置文件被sites-available覆盖

如果你在sites-available里改配置,必须重新 ln -s。如果删除链接,站点就下线了。

创建WordPress目录:

sudo mkdir -p /var/www/wordpress
sudo chown -R www-data:www-data /var/www/wordpress

Step 6 — 安装WordPress(CLI方式,不用浏览器)

下载WordPress

cd /var/www/wordpress
sudo -u www-data curl -O https://wordpress.org/latest.tar.gz
sudo -u www-data tar -xzf latest.tar.gz --strip-components=1
sudo rm latest.tar.gz

⚠️ 踩坑5:权限错误导致安装插件失败

如果目录属于root,WordPress后台无法写入文件。上面的 chown -R www-data:www-data 是关键,很多教程漏掉了。

配置wp-config.php:

sudo -u www-data nano /var/www/wordpress/wp-config.php

在编辑器里填入数据库信息(替换为Step 3里你设置的):

define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wpadmin');
define('DB_PASSWORD', '你的密码');
define('FS_METHOD', 'direct');

⚠️ 关键:数据库用户权限不足时WordPress安装程序会报错

如果浏览器访问 http://你的域名WordPress安装界面说"数据库密码错误",先回Step 3确认密码,再:

mysql -u wpadmin -p
# 输入密码测试是否能连接

如果MySQL连接没问题但WordPress还是报错,在wp-config.php里加一行:

define('DB_HOST', 'localhost');

Step 7 — 配置SSL(Let's Encrypt免费证书)

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

按照提示输入邮箱(用于过期通知),同意服务条款,自动完成验证和证书安装。

certbot会自动修改Nginx配置,添加HTTPS相关配置,并设置HTTP到HTTPS的301重定向。

自动续期测试

sudo certbot renew --dry-run

如果输出包含 Congratulations, all renewals succeeded,说明自动续期配置好了,证书到期前会自动更新。

验证安装

全部完成后,访问 https://你的域名,应该能看到WordPress安装界面。按提示填入站点标题、管理员账号密码即可完成安装。

快速功能验证

Lnmp vs Docker vs 宝塔:怎么选

方案适合人群优点缺点
Lnmp直接安装想学底层、有技术背景资源占用少、完全可控需要手动维护
Docker安装熟悉容器、有快速部署需求环境隔离、一键部署学习成本高
宝塔面板快速建站、预算充足可视化、图形界面绑定、每月费用

Lnmp是资源效率最高的选择。我自己的3个WordPress站点都用Lnmp,跑在1GB内存的VPS上,PHP-FPM进程管理比Docker更省资源。

常见问题

**502 Bad Gateway**:检查PHP-FPM socket路径是否正确(Ubuntu 24.04是 /run/php/php8.3-fpm.sock

数据库连接失败:确认Step 3的密码和Step 6的wp-config.php一致

**上传文件失败**:检查 /var/www/wordpress 目录权限是否为 www-data:www-data

SSL证书申请失败:确认域名已正确解析到服务器IP,DNS传播可能需要等待几分钟

性能优化(可选但推荐)

Lnmp装好后,WordPress还需要额外配置才能跑得快。至少做这几件事:

1. 安装PHP缓存:apt install php8.3-opcache,然后php.ini里启用opcache.enable=1

2. 安装Nginx缓存:配置fastcgi_cache或proxy_cache

3. **配置PHP-FPM进程数**:编辑 /etc/php/8.3/fpm/pool.d/www.conf,根据内存调整 pm.max_children

这部分会在后续WordPress性能优化专题里详细讲,这里先确保能跑起来。

总结

Lnmp安装的核心就7步,最容易出错的地方是:

按照上面步骤走完,你的WordPress生产环境就准备好了。如果遇到问题,先查日志:

sudo tail -f /var/log/nginx/error.log  # 实时看Nginx错误
sudo tail -f /var/log/mysql/error.log  # 实时看MySQL错误

👉 想要更高效地管理和自动化你的建站流程?了解MiniMax API如何赋能自动化建站

验证信息

🔗 Related Tech Articles

Deep dive into related technical topics:

WordPress Lnmp安装实战:Ubuntu 24.04 + Nginx + PHP 8.3 + MySQL 8.0
技术标签: lnmp, nginx
WordPress LEMP Installation: Ubuntu 24.04 + Nginx + PHP 8.3 + MySQL 8.0 Complete Tutorial
技术标签: lemp, nginx
WordPress LEMP Installation: Ubuntu 24.04 + Nginx + PHP 8.3 + MySQL 8.0 Complete Tutorial
技术标签: lemp, nginx
🌐 WordPress Hosting
查看推荐 →