LNMP 是 Linux+Nginx+MySQL+PHP 的建站环境,相比 Apache 的 LAMP,Nginx 并发性能更强、内存占用更低,是国内 VPS / 云服务器主流 PHP 运行环境。
Ubuntu 26.04 LTS(代号 Resolute)默认搭载 PHP8.5、MySQL8.4,官方源下载速度慢,本文针对国内网络优化:先更换国内镜像源提速、适配阿里云 / 腾讯云 / 华为云安全组、强化国内服务器安全策略、补充 Let’s Encrypt 免费 HTTPS 配置,全程可复制命令,新手零门槛。
LNMP架构示意图

一、前置准备(国内服务器必看)
1. 服务器要求
- 国内云服务器:阿里云 ECS / 腾讯云 CVM / 华为云,系统 Ubuntu 26.04 LTS
- 拥有
sudo管理员权限账号,开放22(SSH)、80(HTTP)、443(HTTPS) 安全组端口 - 远程工具:FinalShell/Xshell(国内推荐,解决 SSH 连接卡顿)
2. 关键前置:更换国内 APT 镜像源(解决下载慢、超时)
Ubuntu26.04 抛弃旧sources.list,使用ubuntu.sources DEB822 新格式,直接复制操作:
步骤 1:备份原源文件
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
方案 1:阿里云源(国内云服务器首选,速度最快)
sudo tee /etc/apt/sources.list.d/ubuntu.sources <<EOF
Types: deb
URIs: https://mirrors.aliyun.com/ubuntu/
Suites: resolute resolute-updates resolute-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: https://mirrors.aliyun.com/ubuntu/
Suites: resolute-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
方案 2:清华源(教育网 / 自建服务器推荐)
sudo tee /etc/apt/sources.list.d/ubuntu.sources <<EOF
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
Suites: resolute resolute-updates resolute-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: resolute-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
刷新软件源缓存
sudo apt update && sudo apt upgrade -y
3. 启用 UFW 防火墙(国内服务器安全必备)
云服务器安全组放行端口后,系统内部防火墙同步放行:
# 允许SSH远程连接、全站HTTP/HTTPS
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
# 启用防火墙
sudo ufw enable
# 查看规则
sudo ufw status
二、分步安装 LEMP 环境
Step1:安装 Nginx Web 服务
Nginx 是高性能静态 / 动态网站服务器,安装后自动开机自启:
sudo apt install nginx -y
验证运行状态:
sudo systemctl status nginx
输出active (running)即成功,浏览器访问服务器公网IP,可看到 Nginx 默认欢迎页。
Step2:安装 MySQL8.4 数据库并安全加固
国内建站推荐 MySQL8.4,安装后执行安全脚本删除匿名用户、禁用远程 root、移除测试库:
- 安装数据库
sudo apt install mysql-server -y
- 执行安全加固(全程输入 Y 确认)
sudo mysql_secure_installation
操作说明:
- Validate password 组件:可选关闭(国内自建站无需强密码校验)
- 删除匿名用户、禁止 root 远程登录、删除 test 数据库、刷新权限,全部选
Y
- 验证 MySQL 运行
sudo systemctl status mysql
Step3:安装 PHP8.5 + PHP-FPM 及常用扩展
Nginx 不内置 PHP 解析器,依靠 PHP-FPM 进程池处理 PHP 请求,同步安装国内建站必备扩展(WordPress / 织梦 /laravel 通用):
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
- 查看 PHP 版本(确认 8.5)
php -v
- 查看 PHP-FPM 监听套接字路径(关键配置)
ls /run/php/
# 默认套接字:/run/php/php8.5-fpm.sock
- 验证 PHP-FPM 服务
sudo systemctl status php8.5-fpm
Step4:国内站点 Nginx 配置(适配域名 / IP 访问)
1. 创建网站目录并授权
# 替换example.com为你的域名/服务器IP
sudo mkdir -p /var/www/example.com
# 授予当前用户读写权限,避免国内文件上传报错
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www/example.com
2. 创建站点配置文件
sudo nano /etc/nginx/sites-available/example.com
复制以下配置(适配国内环境,屏蔽.htaccess、404 优化):
server {
listen 80;
listen [::]:80;
# 替换为你的域名,无域名填服务器公网IP
server_name 58jb.com www.58jb.com;
root /var/www/example.com;
index index.html index.htm index.php;
# 静态文件路由
location / {
try_files $uri $uri/ =404;
}
# PHP转发至PHP-FPM套接字
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
}
# 禁止访问隐藏配置文件(安全加固)
location ~ /\.ht {
deny all;
}
}
保存退出:Ctrl+O回车,Ctrl+X
3. 启用站点、删除默认页、校验配置
# 创建软链接启用站点
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
# 删除默认站点,避免访问冲突
sudo unlink /etc/nginx/sites-enabled/default
# 校验Nginx语法(国内配置报错必执行)
sudo nginx -t
# 重载Nginx生效
sudo systemctl reload nginx
Step5:测试 PHP 解析是否正常
创建 PHP 探针文件,验证 Nginx 可正常调用 PHP8.5:
echo "<?php phpinfo();" | sudo tee /var/www/example.com/info.php
浏览器访问http://你的域名/info.php,出现 PHP 信息页即解析成功。
安全提醒:测试完成立即删除探针文件,防止泄露服务器环境信息
sudo rm /var/www/example.com/info.php
Step6:测试 PHP 连接 MySQL 数据库(建站必备)
- 登录 MySQL 创建测试数据库与用户(国内建站标准流程)
sudo mysql
执行 SQL(密码替换为高强度自定义密码):
CREATE DATABASE lemp_test;
CREATE USER 'lemp_user'@'localhost' IDENTIFIED BY '自定义强密码';
GRANT ALL PRIVILEGES ON lemp_test.* TO 'lemp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
- 创建数据库连接测试文件
sudo nano /var/www/example.com/db-test.php
写入代码:
<?php
$mysqli = new mysqli("localhost", "lemp_user", "自定义强密码", "lemp_test");
if ($mysqli->connect_error) {
die("数据库连接失败:" . $mysqli->connect_error);
}
echo "PHP成功连接MySQL版本:" . $mysqli->server_info;
$mysqli->close();
- 浏览器访问页面,显示连接成功即环境完整可用,测试后删除文件:
sudo rm /var/www/example.com/db-test.php
三、国内服务器进阶优化(生产环境必做)
1. 隐藏 Nginx/PHP 版本号,减少攻击面
Nginx 隐藏版本
sudo vim /etc/nginx/nginx.conf
在http{}区块添加:
server_tokens off;
重载 Nginx:sudo systemctl reload nginx
PHP 关闭版本暴露
sudo vim /etc/php/8.5/fpm/php.ini
修改参数:
expose_php = Off
重启 PHP-FPM:sudo systemctl restart php8.5-fpm
2. 一键部署免费 HTTPS(国内 Let’s Encrypt 证书)
国内备案域名可申请免费 SSL 证书,自动配置 HTTP 跳转 HTTPS:
- 安装 Certbot 工具
sudo apt install certbot python3-certbot-nginx -y
- 自动签发证书(替换域名)
sudo certbot --nginx -d example.com -d www.example.com
- 设置自动续期(证书 90 天有效期)
sudo certbot renew --dry-run
四、国内环境高频报错排查
- 访问 PHP 文件直接下载源码 原因:Nginx 未转发 PHP 请求至 PHP-FPM 解决:核对
fastcgi_pass unix:/run/php/php8.5-fpm.sock;路径,重启php8.5-fpm - 502 Bad Gateway 原因:PHP-FPM 未启动、套接字权限不足 排查命令: bash运行
sudo systemctl restart php8.5-fpm ls -l /run/php/ - 无法访问网站 / 超时 国内专属坑:云服务器安全组未放行 80/443 端口,登录阿里云 / 腾讯云控制台添加入站规则。
- apt update 下载超时 解决:切换阿里 / 清华国内镜像源,执行前文换源命令。
- PHP 连接 MySQL 失败 确认
php-mysql已安装、数据库账号密码正确、权限已刷新FLUSH PRIVILEGES;
五、LEMP 与 LAMP 区别(国内建站怎么选)
表格
| 环境 | Web 服务器 | 优势 | 适用场景 |
|---|---|---|---|
| LNMP | Nginx | 高并发、低内存、静态文件速度快 | WordPress、Laravel、企业官网、高流量站点 |
| LAMP | Apache | 支持.htaccess、虚拟主机简单 | 虚拟主机、老旧 PHP 程序 |
国内独立云服务器优先选择 LNMP,并发承载能力更强。
六、后续建站操作
- 部署 WordPress、织梦、Laravel 等 PHP 程序,上传至
/var/www/example.com目录 - 新增多个网站:复制一份 sites-available 站点配置,修改域名与网站根目录
- 定期备份 MySQL 数据库、网站源码,配置服务器定时快照
总结
本文完整覆盖 Ubuntu26.04 国内服务器 LNMP 环境搭建,核心优化点:国内镜像源提速、云服务器安全组适配、系统防火墙加固、免费 HTTPS 部署、国内常见报错解决方案。搭建完成后可直接运行绝大多数 PHP 开源 CMS 与框架,无需额外调整环境参数。
常用命令速查表
表格
| 操作 | 命令 |
|---|---|
| 更新软件源 | sudo apt update |
| 重启 Nginx | sudo systemctl reload nginx |
| 重启 PHP8.5-FPM | sudo systemctl restart php8.5-fpm |
| 校验 Nginx 配置 | sudo nginx -t |
| 放行网站端口 | sudo ufw allow ‘Nginx Full’ |
| MySQL 安全加固 | sudo mysql_secure_installation |
| 申请 SSL 证书 | sudo certbot –nginx -d 域名 |