在腾讯云轻量应用服务器(Lighthouse)上安装 Nginx + PHP + MySQL(即 LEMP 环境),推荐使用 Ubuntu 22.04/24.04 或 CentOS Stream 9(官方镜像已优化,兼容性好)。以下为完整、安全、生产就绪的详细步骤(以 Ubuntu 22.04 LTS 为例,适用于大多数轻量服务器,默认系统盘 ≥ 40GB,内存 ≥ 2GB):
✅ 前提准备
-
购买并初始化轻量服务器
- 选择地域、规格(建议 2核4G 起步,PHP+MySQL较吃资源)
- 镜像选择:
Ubuntu 22.04 LTS(官方推荐,APT源稳定,PHP/MySQL版本较新)
⚠️ 避免选“WordPress 应用镜像”等预装环境(可能冲突或过时);如已选,可重装为纯净 Ubuntu。
-
登录服务器(SSH)
ssh -i your-key.pem ubuntu@你的公网IP -
更新系统并设置时区(重要!)
sudo apt update && sudo apt upgrade -y sudo timedatectl set-timezone Asia/Shanghai sudo apt install -y curl wget gnupg2 lsb-release ca-certificates
🌐 第一步:安装 Nginx(Web 服务器)
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
✅ 验证:浏览器访问 http://你的公网IP → 应显示 “Welcome to nginx!” 页面
⚠️ 若无法访问,请检查:
- 腾讯云控制台 → 轻量服务器 → 安全组 → 放行端口
80(HTTP)、443(HTTPS,后续配置) - 本地防火墙(Ubuntu 默认无 ufw,但可确认):
sudo ufw status(若启用,运行sudo ufw allow 'Nginx Full')
💡 第二步:安装 PHP(推荐 PHP 8.1 或 8.2)
Ubuntu 22.04 默认源含 PHP 8.1,安全且性能优秀:
# 安装核心 PHP 及常用扩展(含 MySQL 支持、OPcache、cURL、GD、XML 等)
sudo apt install -y php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring
php8.1-xml php8.1-xmlrpc php8.1-zip php8.1-opcache php8.1-cli
# 启用并启动 PHP-FPM
sudo systemctl enable php8.1-fpm
sudo systemctl start php8.1-fpm
# 验证 PHP 版本
php -v # 应输出 PHP 8.1.x
✅ 关键点:
php8.1-fpm是 FastCGI 进程管理器,Nginx 通过它执行 PHP 脚本。
🗄️ 第三步:安装 MySQL(推荐 MySQL 8.0)
Ubuntu 22.04 默认源提供 MySQL 8.0(比 MariaDB 更适配腾讯云生态):
sudo apt install -y mysql-server
# 运行安全加固脚本(强烈推荐!)
sudo mysql_secure_installation
按提示操作(建议:
✅ 设置 root 密码(记牢!)
✅ 移除匿名用户
✅ 禁止 root 远程登录(保持 localhost)
✅ 删除 test 数据库
✅ 重新加载权限表)
✅ 验证 MySQL:
sudo mysql -u root -p # 输入刚设的密码,进入 MySQL CLI
mysql> SELECT VERSION(); -- 应返回 8.0.x
mysql> EXIT;
🔐 生产注意:不要开放 MySQL 3306 端口到公网! 腾讯云安全组默认已屏蔽,保持即可。PHP 与 MySQL 同机通信走
127.0.0.1:3306或 socket。
⚙️ 第四步:配置 Nginx + PHP-FPM(关键!)
1️⃣ 编辑默认站点配置:
sudo nano /etc/nginx/sites-available/default
替换全部内容为以下生产级配置(支持 PHP、PATH_INFO、防恶意脚本):
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
# 处理 PHP 请求(关键!)
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意版本号匹配!
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 防止泄露敏感文件
location ~ /.ht {
deny all;
}
}
2️⃣ 测试配置并重启:
sudo nginx -t # 检查语法(应输出 "syntax is ok")
sudo systemctl reload nginx
🧪 第五步:测试 PHP 是否正常工作
# 创建测试文件
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
# 设置正确权限(可选,但推荐)
sudo chown -R $USER:$USER /var/www/html/
sudo chmod -R 755 /var/www/html/
✅ 浏览器访问:http://你的公网IP/info.php
→ 应看到完整的 PHP 信息页,重点检查:
Server API:FPM/FastCGI✅mysqlnd扩展已启用 ✅Loaded Configuration File:/etc/php/8.1/fpm/php.ini✅
❌ 若报错 502 Bad Gateway:检查
php8.1-fpm是否运行(sudo systemctl status php8.1-fpm),或 sock 文件路径是否匹配。
🔐 第六步(可选但强烈推荐):配置 HTTPS(Let’s Encrypt)
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com # 替换为你的域名(需已解析到该IP)
# 按提示输入邮箱、同意协议、选择自动重定向(强制 HTTPS)
✅ 完成后自动配置 SSL,Nginx 会重载,访问 https://your-domain.com 即可。
💡 无域名?可用腾讯云「轻量应用服务器」自带的 免费二级域名(如
xxx.lighthouseapp.com),Certbot 支持通配符验证(需 DNS 插件,略复杂,新手可先用 HTTP)。
🧹 第七步:基础安全加固(生产必备)
| 项目 | 命令/操作 |
|---|---|
| 禁用 root SSH 登录 | sudo nano /etc/ssh/sshd_config → PermitRootLogin no → sudo systemctl restart sshd |
| 创建普通用户并授权 sudo | sudo adduser deploy → sudo usermod -aG sudo deploy |
| 启用 UFW 防火墙 | sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable |
| 定期自动更新 | sudo apt install -y unattended-upgrades sudo dpkg-reconfigure -plow unattended-upgrades |
📌 常见问题速查
| 现象 | 解决方案 |
|---|---|
502 Bad Gateway |
检查 sudo systemctl status php8.1-fpm;确认 fastcgi_pass 路径与 ls /run/php/ 下 sock 文件一致 |
Connection refused(PHP 连 MySQL) |
检查 MySQL 是否运行:sudo systemctl status mysql;PHP 中连接用 127.0.0.1(非 localhost,避免 socket 冲突) |
403 Forbidden |
检查 /var/www/html 权限:sudo chown -R www-data:www-data /var/www/html |
phpinfo() 不显示 |
确认 location ~ .php$ 块已正确配置,且 index.php 在 index 行中 |
✅ 最终验证(一键脚本可选)
创建 test-env.sh 验证环境连通性:
#!/bin/bash
echo "=== Nginx Status ==="
systemctl is-active nginx
echo "=== PHP-FPM Status ==="
systemctl is-active php8.1-fpm
echo "=== MySQL Status ==="
systemctl is-active mysql
echo "=== PHP MySQL Extension ==="
php -m | grep mysqli
echo "=== Test DB Connection ==="
mysql -u root -pYOUR_PASSWORD -e "SELECT 1;" 2>/dev/null && echo "✓ MySQL OK" || echo "✗ MySQL Failed"
赋予执行权限并运行:chmod +x test-env.sh && ./test-env.sh
✅ 至此,你已在腾讯云轻量服务器上成功部署 安全、高效、可扩展的 LEMP 环境!
下一步可部署 WordPress、Laravel、ThinkPHP 等应用,或配置 Redis、Supervisor 等增强服务。
需要我为你提供:
- ✅ WordPress 一键部署脚本
- ✅ Laravel 11 环境配置指南
- ✅ 自动备份 MySQL + Nginx 日志到 COS 教程
- ✅ Docker 版 LEMP(更隔离,适合多站)
欢迎随时告诉我 👇
祝你搭建顺利!🚀
云计算HECS