腾讯云轻量服务器安装Nginx、PHP和MySQL的完整步骤是什么?

在腾讯云轻量应用服务器(Lighthouse)上安装 Nginx + PHP + MySQL(即 LEMP 环境)的完整步骤如下。推荐使用 Ubuntu 22.04/24.04 或 CentOS 7/8/9(但注意 CentOS 8 已停更,建议优先选 Ubuntu)。本指南以 Ubuntu 22.04 LTS 为例(最稳定、社区支持好、腾讯云镜像默认推荐),全程使用 apt 包管理器,安全、高效、兼容性佳。

⚠️ 重要前提:

  • 已购买并启动一台腾讯云轻量服务器(推荐 2C4G 起步,PHP+MySQL 需要一定内存)
  • 已通过 SSH 登录(如:ssh root@你的公网IP
  • 确保系统已更新(首次登录建议先执行)

✅ 一、初始化系统(推荐必做)

# 更新软件包索引并升级系统(避免旧包冲突)
sudo apt update && sudo apt upgrade -y

# 安装常用基础工具(vim、curl、wget、unzip、git 等)
sudo apt install -y vim curl wget unzip git gnupg2 lsb-release ca-certificates

# (可选)配置时区(如中国上海)
sudo timedatectl set-timezone Asia/Shanghai

✅ 二、安装 Nginx

# 安装 Nginx
sudo apt install -y nginx

# 启动并设置开机自启
sudo systemctl enable nginx
sudo systemctl start nginx

# 检查状态(应显示 active (running))
sudo systemctl status nginx

# 🔒 开放防火墙端口(腾讯云需同时配置「安全组」!)
# Ubuntu 默认使用 ufw(若未启用可跳过,但务必配置腾讯云控制台安全组!)
sudo ufw allow 'Nginx Full'  # 允许 80/443
sudo ufw enable

📌 腾讯云关键操作(必须!)
登录 腾讯云轻量服务器控制台 → 找到实例 → 点击「更多」→「安全组」→ 编辑入站规则,添加:

  • 协议端口:HTTP:80HTTPS:443SSH:22(已有)、如需远程 MySQL 可加 TCP:3306(不推荐开放公网!)
  • 来源:建议限制为你的 IP 或 0.0.0.0/0(仅测试用,生产环境务必严格限制)

✅ 浏览器访问 http://你的服务器公网IP,看到 "Welcome to nginx!" 页面即成功。


✅ 三、安装 MySQL(推荐 MySQL 8.0,Ubuntu 22.04 默认源提供)

# 安装 MySQL 服务器
sudo apt install -y mysql-server

# 运行安全加固脚本(强烈推荐!设置 root 密码、禁用匿名用户、移除 test DB 等)
sudo mysql_secure_installation
# ⚠️ 注意:过程中会提示设置 root 密码(记住!),其余选项按提示输入 Y 即可

# (可选)验证 MySQL 状态
sudo systemctl status mysql

# 🔐 创建专用数据库用户(生产环境禁止直接用 root 连接应用!)
sudo mysql -u root -p  # 输入上一步设置的 root 密码

在 MySQL 提示符中执行:

-- 创建数据库(例如名为 myapp)
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建专用用户(如用户名 'webuser',密码 'StrongPass123!')
CREATE USER 'webuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'StrongPass123!';

-- 授予该用户对数据库的全部权限
GRANT ALL PRIVILEGES ON myapp.* TO 'webuser'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

-- 退出
EXIT;

✅ 记下:数据库名 myapp、用户名 webuser、密码 StrongPass123!(请替换为你自己的强密码)


✅ 四、安装 PHP 及常用扩展(PHP 8.1,Ubuntu 22.04 默认)

# 安装 PHP 及核心扩展(含 FPM、MySQL 支持、OPcache、GD、cURL 等)
sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip php-opcache php-cli php-bcmath

# ✅ 验证 PHP 版本
php -v  # 应显示 PHP 8.1.x

# ✅ 检查 PHP-FPM 状态
sudo systemctl status php8.1-fpm
sudo systemctl enable php8.1-fpm

✅ 五、配置 Nginx + PHP-FPM(关键!)

默认站点配置文件路径:/etc/nginx/sites-available/default
或新建配置(推荐,便于管理):

# 备份原配置(可选)
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

# 编辑默认站点(或新建 /etc/nginx/sites-available/myapp)
sudo vim /etc/nginx/sites-available/default

📌 替换全部内容为以下 标准 PHP 支持配置(支持 .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;  # 确保与你的 PHP 版本一致
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 防止泄露敏感文件
    location ~ /.ht {
        deny all;
    }

    # 可选:添加安全响应头(提升安全性)
    add_header X-Frame-Options "DENY" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
}

✅ 保存退出(vim 中按 Esc → 输入 :wq → 回车)

# 测试 Nginx 配置语法是否正确
sudo nginx -t

# 无报错则重载配置
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
  • Loaded Configuration File: /etc/php/8.1/fpm/php.ini
  • mysqlnd 扩展已启用(说明 MySQL 支持 OK)

✅ 测试后删除(安全起见):

sudo rm /var/www/html/info.php

✅ 七、(可选但强烈推荐)安装 phpMyAdmin(可视化管理 MySQL)

# 下载最新稳定版(以 5.2.1 为例,访问 https://www.phpmyadmin.net/downloads/ 查最新)
cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
tar xzf phpMyAdmin-5.2.1-all-languages.tar.gz
sudo mv phpMyAdmin-5.2.1-all-languages /usr/share/phpmyadmin
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

# 生成随机 blowfish_secret(用于 cookie 加密)
sudo sed -i "s/$cfg['blowfish_secret'] = '';/$cfg['blowfish_secret'] = '"$(openssl rand -base64 32)"';/" /usr/share/phpmyadmin/config.inc.php

# 创建 Nginx 别名(在 /etc/nginx/sites-available/default 的 server {} 块内添加)
# 在 location / { ... } 上方添加:
# location /phpmyadmin {
#     alias /usr/share/phpmyadmin;
#     index index.php;
# }
# location ~ ^/phpmyadmin/(.+.php)$ {
#     alias /usr/share/phpmyadmin/$1;
#     fastcgi_pass unix:/run/php/php8.1-fpm.sock;
#     fastcgi_index index.php;
#     include fastcgi_params;
#     fastcgi_param SCRIPT_FILENAME $request_filename;
# }

# 然后重载:sudo nginx -t && sudo systemctl reload nginx

# ✅ 访问:http://你的IP/phpmyadmin → 用 webuser 用户登录(非 root!)

⚠️ 生产环境建议:

  • /phpmyadmin 改为随机路径(如 /admin12345
  • 通过 Nginx Basic Auth 或反向X_X加 HTTPS + Cloudflare 保护
  • 或直接使用命令行 mysql -u webuser -p myapp

✅ 八、部署你的 Web 应用(示例:WordPress / Laravel / 自定义 PHP 项目)

# 示例:部署一个简单 index.php
echo '<?php echo "<h1>Hello LEMP on Tencent Cloud!</h1><p>MySQL status: "; var_dump(@mysqli_connect("localhost", "webuser", "StrongPass123!", "myapp")); ?>' | sudo tee /var/www/html/index.php

✅ 访问 http://你的IP 即可看到结果(含 MySQL 连接测试)。


✅ 九、常见问题排查清单

问题 检查项
Nginx 无法访问 ✅ 腾讯云安全组是否开放 80 端口?sudo ufw statussudo systemctl status nginx
PHP 不解析,显示源码 location ~ .php$ 配置是否正确?fastcgi_pass 路径是否匹配 php8.1-fpm.socksudo systemctl status php8.1-fpm
MySQL 连接拒绝 sudo mysql -u webuser -p 是否能连?检查用户 host 是 'localhost'(非 '%');确认 bind-address = 127.0.0.1(默认安全)
502 Bad Gateway ✅ PHP-FPM 未运行或 sock 文件路径错误;检查 /run/php/ 下是否有对应 .sock 文件
中文乱码/emoji 报错 ✅ 数据库 & 表字符集设为 utf8mb4(建库时已设),PHP 中连接加 charset=utf8mb4

✅ 十、安全加固建议(上线前必做)

  1. 禁用 root 远程 SSHsudo passwd -l root + 创建普通用户并配 SSH 密钥登录
  2. 启用 UFW 防火墙:只开放 22(SSH)、80、443
  3. 配置 Let’s Encrypt HTTPS(强烈推荐):
    sudo apt install -y certbot python3-certbot-nginx
    sudo certbot --nginx -d yourdomain.com  # 需已绑定域名
  4. 定期更新系统sudo apt update && sudo apt upgrade -y(可设 cron)
  5. 备份策略:MySQL 定时导出 + 网站文件 rsync 到 COS 或本地

✅ 总结:你已完成 LEMP 栈部署 ✅

  • ✅ Nginx:高性能 Web 服务器
  • ✅ PHP 8.1:FPM 模式,安全高效
  • ✅ MySQL 8.0:稳定可靠,支持 utf8mb4
  • ✅ 可立即部署 WordPress、Typecho、Laravel、Discuz 等主流应用

需要我为你:

  • ✅ 生成一键安装脚本(Shell)?
  • ✅ 部署 WordPress 详细步骤?
  • ✅ 配置 HTTPS(SSL)完整流程?
  • ✅ 迁移现有网站到该环境?
  • ✅ 优化 PHP-FPM / MySQL 性能参数?

欢迎随时告诉我,我可以为你定制化输出 👍

祝你搭建顺利!🚀

未经允许不得转载:秒懂云 » 腾讯云轻量服务器安装Nginx、PHP和MySQL的完整步骤是什么?