Ubuntu 20.04 在 CN2 VPS 上部署 LNMP 环境,核心在于验证网络线路是否真实走 CN2 段,并在云控制台正确配置安全组放行 80/443 端口。软件层面需关注 MySQL 认证插件兼容性与 PHP 扩展完整性,避免环境搭建后无法连接数据库或页面报错。
先说结论:部署成功的关键在于网络线路验证、安全组端口放行以及数据库认证方式配置。
- 适合:需要稳定长期维护的 Web 项目,且服务器位于日本或美国 CN2 线路节点。
- 先准备:在云控制台开放 SSH(22)、HTTP(80)、HTTPS(443) 端口,确认系统为 Ubuntu 20.04 LTS。
- 验收:通过 traceroute 确认路由包含 219.158 段,且 Web 服务能正常响应 HTTPS 请求。
命令速用版
以下命令基于 Ubuntu 20.04 默认源,用于快速安装 LNMP 核心组件:
sudo apt update && sudo apt upgrade -y sudo apt install -y nginx sudo apt install -y mysql-server sudo mysql_secure_installation sudo apt install -y php-fpm php-mysql php-gd php-mbstring php-curl
为什么会这样
CN2 线路直接影响国内访问速度,而 Ubuntu 20.04 是长期支持版本,软件源稳定性高。部署时若忽略网络验证,可能实际走的是普通线路;若忽略 MySQL 安全配置,可能导致数据库无法连接或存在安全风险。
分步处理
步骤 1:网络与安全组检查
在云控制台确认安全组已放行 22、80、443 端口。使用traceroute www.google.com查看路由,若路径中包含 219.158.x.x 段,则确认为 CN2 线路。
步骤 2:安装 Nginx 与 MySQL
执行sudo apt install nginx安装 Web 服务器。执行sudo apt install mysql-server安装数据库,随后运行sudo mysql_secure_installation进行安全初始化,设置 root 密码。
步骤 3:安装 PHP 及扩展
Ubuntu 20.04 默认源包含 PHP 7.4,执行sudo apt install php-fpm php-mysql php-gd php-mbstring等扩展。确保安装 php-fpm 以便与 Nginx 联动。
步骤 4:配置 Nginx 联动 PHP
修改/etc/nginx/sites-enabled/default,取消 location ~ \.php$ 块注释,确保 fastcgi_pass 指向正确的 sock 文件路径。
怎么验证是否生效
使用nginx -v、mysql -V、php -v查看版本确认安装成功。在浏览器访问服务器 IP,看到 Nginx 欢迎页表示 Web 服务正常。创建 info.php 文件写入<?php phpinfo(); ?>,访问该文件确认 PHP 解析生效。
常见坑
防火墙拦截:Ubuntu 默认可能开启 ufw,若未放行 80/443 端口会导致外部无法访问,可执行sudo ufw status检查。
MySQL 认证插件:新版 MySQL 默认使用 caching_sha2_password,部分 PHP 版本不支持,建议在 MySQL 配置中改为 mysql_native_password。
PHP 扩展缺失:WordPress 等程序需要 gd、mbstring 等扩展,安装时需一次性装全,避免后续报错。
常见问题
MySQL 连接报错 Error establishing a database connection 怎么办?
检查 wp-config.php 中的数据库密码是否正确,并确认 MySQL 用户认证插件是否为 mysql_native_password。
Ubuntu 20.04 默认 PHP 版本是多少?
Ubuntu 20.04 默认软件源提供的 PHP 版本通常为 7.4,如需更高版本需添加第三方源。
安全组端口开放后仍然无法访问 80 端口?
检查服务器内部防火墙 ufw 状态,确认是否执行了 sudo ufw allow 'Nginx Full'。
参考来源
- 日本 CN2 云主机安装 Web 环境的流程与注意事项
- Ubuntu 20.04 上 Node.js 生产环境部署:Nginx+PM2 最佳实践
- Ubuntu24 手动部署 LNMP 环境 - い果粒橙ぺ - 博客园
- 【简单易懂】Ubuntu20.04 服务器 LNMP 环境安装 Chevereto 图床
- 手动搭建 LNMP 环境 (Ubuntu)