在腾讯云轻量应用服务器(Lighthouse)上安装 Nginx + PHP + MySQL(即 LNMP 环境),推荐使用官方镜像或一键脚本(更稳定、适配轻量服务器优化),但也可手动安装。以下是 兼顾安全性、兼容性与腾讯云轻量特性的完整步骤(以 Ubuntu 22.04 LTS 或 CentOS 7/8 为例,优先推荐 Ubuntu 22.04,因腾讯云新实例默认支持更好,且 PHP/MySQL 版本更新):
✅ 前提准备
-
选择合适镜像(强烈推荐):
- 在腾讯云控制台创建轻量服务器时,直接选择「应用镜像」→「LNMP(Ubuntu 22.04)」(腾讯云官方维护,预装 Nginx 1.18+/PHP 8.1+/MySQL 8.0+,已优化防火墙和权限)。
- 若已创建为「基础系统镜像」(如 Ubuntu 22.04),则按以下手动步骤操作。
-
登录服务器:
ssh -i your-key.pem ubuntu@your-server-ip # Ubuntu 默认用户 ubuntu # 或 ssh -i your-key.pem root@your-server-ip # CentOS 默认用户 root(若启用) -
更新系统并安装基础工具:
# Ubuntu/Debian sudo apt update && sudo apt upgrade -y sudo apt install -y curl wget gnupg2 software-properties-common lsb-release ca-certificates # CentOS 7/8(如使用,但建议 Ubuntu) # sudo yum update -y # sudo yum install -y epel-release curl wget tar gzip
🚀 步骤一:安装 Nginx
# Ubuntu 22.04(官方源已含较新版本)
sudo apt install -y nginx
# 启动并设置开机自启
sudo systemctl enable nginx
sudo systemctl start nginx
# 检查状态
sudo systemctl status nginx # 应显示 active (running)
# 🔒 配置防火墙(腾讯云安全组 + 系统防火墙)
sudo ufw allow 'Nginx Full' # Ubuntu 自带 ufw
sudo ufw enable
✅ 浏览器访问 http://你的服务器IP,应看到 "Welcome to nginx!" 页面。
⚠️ 注意:腾讯云必须在控制台配置安全组规则开放端口(80/443),否则网络无法访问!
🐘 步骤二:安装 MySQL(推荐 MySQL 8.0+)
# Ubuntu 22.04 官方源自带 MySQL 8.0
sudo apt install -y mysql-server
# 运行安全初始化(设 root 密码、禁用匿名用户等)
sudo mysql_secure_installation
# 按提示操作:Y → 设置强密码 → Y → Y → Y → Y
# (可选)允许远程连接(仅限测试,生产环境建议用 SSH 隧道或白名单)
sudo mysql -u root -p <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPass123!';
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'WebUserPass456!';
GRANT ALL PRIVILEGES ON *.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EOF
✅ 验证:
mysql -u root -p -e "SELECT VERSION();"
☕ 步骤三:安装 PHP 及常用扩展(PHP 8.1+)
# Ubuntu 22.04 默认 PHP 8.1,安装核心及 Web 扩展
sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip php-opcache
# 配置 PHP-FPM(关键!)
sudo sed -i 's/listen =.*/listen = /run/php/php8.1-fpm.sock/' /etc/php/8.1/fpm/pool.d/www.conf
sudo sed -i 's/;listen.owner =.*/listen.owner = www-data/' /etc/php/8.1/fpm/pool.d/www.conf
sudo sed -i 's/;listen.group =.*/listen.group = www-data/' /etc/php/8.1/fpm/pool.d/www.conf
sudo sed -i 's/;listen.mode =.*/listen.mode = 0660/' /etc/php/8.1/fpm/pool.d/www.conf
# 启动 PHP-FPM
sudo systemctl enable php8.1-fpm
sudo systemctl start php8.1-fpm
🌐 步骤四:配置 Nginx 支持 PHP(关键!)
编辑默认站点配置:
sudo nano /etc/nginx/sites-available/default
替换全部内容为以下(支持 .php 解析 + 安全防护):
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
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;
}
}
✅ 重载 Nginx:
sudo nginx -t # 检查语法
sudo systemctl reload nginx
🧪 步骤五:验证 LNMP 是否工作
-
创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php -
浏览器访问:
http://你的服务器IP/info.php
✅ 应看到 PHP 信息页,确认 Loaded Modules 中包含mysqli,pdo_mysql,opcache等。 -
(可选)测试数据库连接:
sudo nano /var/www/html/test_db.php内容:
<?php $host = 'localhost'; $user = 'root'; $pass = '你的MySQL root密码'; $conn = new mysqli($host, $user, $pass); if ($conn->connect_error) die("连接失败: " . $conn->connect_error); echo "MySQL 连接成功!版本:" . $conn->server_info; $conn->close(); ?>访问
http://IP/test_db.php验证。
🔐 生产环境加固建议(必做!)
| 项目 | 操作 |
|---|---|
| 安全组 | 腾讯云控制台 → 轻量服务器 → 安全组 → 仅放行 80/443/22,关闭 3306 网络端口 |
| MySQL 远程访问 | 默认禁止!如需远程管理,用 mysql -h 127.0.0.1 -u root -p 本地连接,或通过 SSH 隧道 |
| PHP 安全 | 编辑 /etc/php/8.1/fpm/php.ini:expose_php = Offdisplay_errors = Offupload_max_filesize = 32M |
| Nginx 安全头 | 在 server{} 块中添加:add_header X-Frame-Options "DENY";add_header X-Content-Type-Options "nosniff"; |
| 自动更新 | sudo apt install unattended-upgrades + 配置自动安全更新 |
🚨 常见问题速查
| 现象 | 解决方案 |
|---|---|
502 Bad Gateway |
检查 php8.1-fpm 是否运行:sudo systemctl status php8.1-fpm;确认 sock 路径一致 |
403 Forbidden |
检查 /var/www/html 权限:sudo chown -R www-data:www-data /var/www/html |
Connection refused(MySQL) |
sudo systemctl status mysql;检查是否绑定 127.0.0.1(bind-address = 127.0.0.1 in /etc/mysql/mysql.conf.d/mysqld.cnf) |
| 无法访问网络 | 检查腾讯云安全组和实例防火墙(ufw) 是否放行 80 端口 |
💡 进阶推荐(省心之选)
- ✅ 直接使用腾讯云「LNMP 应用镜像」:控制台创建时选择,5 分钟部署完成,含监控、备份、一键 SSL(Let’s Encrypt)。
- ✅ 用宝塔面板(轻量版):
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh(适合可视化管理,但注意资源占用)。 - ✅ Docker 方式(隔离性强):
sudo apt install docker.io docker-compose && sudo systemctl enable docker # 使用官方镜像:nginx + php:8.1-fpm + mysql:8.0
需要我为你生成:
- ✅ 一键安装脚本(Shell)
- ✅ Nginx + PHP-FPM 详细调优参数(针对 1C2G 轻量服务器)
- ✅ Let’s Encrypt 免费 HTTPS 配置指南
- ✅ WordPress 快速部署步骤
欢迎随时告诉我 👇 我可立即提供!
CLOUD云枢