走啊走
加油

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

服务器价格表

在腾讯云轻量应用服务器(Lighthouse)上安装 Nginx + PHP + MySQL(即 LEMP 环境)的完整步骤如下。推荐使用 Ubuntu 22.04 LTS 或 CentOS Stream 9(官方镜像更稳定),本指南以 Ubuntu 22.04 为例(最常用、兼容性好、软件源丰富),全程基于命令行操作,安全、高效、符合生产实践。

✅ 前提:已购买并登录腾讯云轻量服务器(推荐选择「Ubuntu 22.04」系统镜像),已通过 SSH 连接(如 ssh root@你的公网IP),且具备 root 权限。


🔧 一、基础准备与系统更新

# 1. 更新系统包索引并升级(重要!确保安全补丁和最新版本)
sudo apt update && sudo apt upgrade -y

# 2. 安装常用工具(vim、curl、wget、unzip、git 等,非必须但强烈建议)
sudo apt install -y vim curl wget unzip git gnupg2 lsb-release ca-certificates

# 3. (可选)配置时区(避免日志时间错乱)
sudo timedatectl set-timezone Asia/Shanghai

🌐 二、安装 Nginx

# 1. 安装 Nginx(Ubuntu 官方源已含最新稳定版)
sudo apt install -y nginx

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

# 3. 验证状态(应显示 active (running))
sudo systemctl status nginx

# 4. 检查防火墙(Ubuntu 默认启用 ufw)
sudo ufw status verbose
# 若为 inactive,可跳过;若为 active,需放行 80/443:
sudo ufw allow 'Nginx Full'
# 或仅开放 HTTP/HTTPS:
# sudo ufw allow 80
# sudo ufw allow 443

# ✅ 测试:浏览器访问 http://你的服务器公网IP → 应看到 "Welcome to nginx!" 页面

💡 三、安装 PHP(推荐 PHP 8.1 或 8.2,性能与安全兼顾)

⚠️ 注意:Ubuntu 22.04 默认源为 PHP 8.1,PHP 8.2 可通过 Ondřej Surý PPA 安装(更推荐)

✅ 方案 A:安装 PHP 8.1(官方源,最稳定)

sudo apt install -y php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip php-opcache

# 查看版本确认
php -v  # 应显示 PHP 8.1.x

✅ 方案 B(推荐):安装 PHP 8.2(更新特性 + 更长支持周期)

# 添加 Ondřej Surý 的 PHP PPA(安全可信,被广泛采用)
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

# 安装 PHP 8.2 及常用扩展
sudo apt install -y php8.2-fpm php8.2-cli php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-xmlrpc php8.2-zip php8.2-opcache

# 设置默认 PHP 版本(可选,方便后续调用 php 命令)
sudo update-alternatives --set php /usr/bin/php8.2

# 验证
php -v  # 显示 PHP 8.2.x

🔁 配置 PHP-FPM(关键!使 Nginx 能处理 PHP)

# 编辑 PHP-FPM 主配置(调整进程管理,适合轻量服务器)
sudo vim /etc/php/*/fpm/pool.d/www.conf

修改以下几处(根据轻量服务器内存调整,如 1C2G 建议):

; 将监听方式改为 Unix socket(比 TCP 更高效)
listen = /run/php/php*-fpm.sock   # ✅ 确保路径与实际版本一致(如 php8.2-fpm.sock)
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

; 限制资源(防爆内存)
pm = dynamic
pm.max_children = 10        # 1C2G 推荐 8~12;2C4G 可设 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.max_requests = 500       # 请求后重启子进程,防内存泄漏

; 开启慢日志(调试用,生产可开启)
slowlog = /var/log/php/php*-fpm-slow.log
request_slowlog_timeout = 5s

💡 提示:* 替换为你的 PHP 版本号(如 8.2)。可用 ls /etc/php/ 查看目录名。

# 重启 PHP-FPM 生效
sudo systemctl restart php*-fpm
sudo systemctl enable php*-fpm

# 检查状态
sudo systemctl status php*-fpm

🗄️ 四、安装 MySQL(推荐 MySQL 8.0,腾讯云轻量默认支持)

# Ubuntu 22.04 官方源默认为 MySQL 8.0.x,直接安装
sudo apt install -y mysql-server

# 运行安全加固脚本(强烈建议!设置 root 密码、禁用匿名用户等)
sudo mysql_secure_installation
# 按提示操作:
# - 设置 root 密码(记牢!)
# - Remove anonymous users? [Y]
# - Disallow root login remotely? [Y](轻量服务器通常无需远程 root)
# - Remove test database? [Y]
# - Reload privilege tables? [Y]

# ✅ 验证 MySQL 运行
sudo systemctl status mysql

# (可选)允许 MySQL 监听本地(默认已满足,无需改 bind-address)
# 检查:sudo grep "bind-address" /etc/mysql/mysql.conf.d/mysqld.cnf
# 正常应为 bind-address = 127.0.0.1(仅本地连接,更安全)

🔐 安全提醒:轻量服务器默认不开放 3306 端口到公网(腾讯云控制台安全组默认只放行 22/80/443),因此 MySQL 仅本地应用可连接,无需额外配置防火墙。


🧩 五、配置 Nginx 支持 PHP(关键整合步骤)

# 备份默认站点配置
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

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

替换全部内容为以下生产就绪配置(支持 PHP、隐藏敏感文件、启用 OPcache):

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.2-fpm.sock;  # ✅ 请务必匹配你的 PHP 版本(如 php8.1-fpm.sock)
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 禁止访问敏感文件
    location ~ /.ht {
        deny all;
    }
    location ~ /(composer|vendor|.git|.env|artisan|storage|bootstrap/cache) {
        deny all;
    }
}

验证配置语法 & 重载 Nginx

sudo nginx -t  # 应输出 "syntax is ok", "test is successful"
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 信息页(含 Loaded Modules 中有 mysqlnd、mysqli、pdo_mysql 等)
→ 滚动查看 "Server API" 应为 FPM/FastCGI(证明 PHP-FPM 工作正常)
→ 查看 "mysql.default_socket" 应为 /var/run/mysqld/mysqld.sock(MySQL 连接正常)

✅ 至此,LEMP 环境部署完成!


🛡️ 七、(可选但强烈推荐)安全加固与优化

项目 操作
1. 创建普通用户(禁用 root SSH) adduser deployusermod -aG sudo deploysudo visudo 注释 # %sudo ALL=(ALL:ALL) ALL 下一行加 deploy ALL=(ALL) NOPASSWD: ALLsudo passwd -l root → 修改 /etc/ssh/sshd_configPermitRootLogin nosudo systemctl restart sshd
2. 配置腾讯云安全组 控制台 → 轻量服务器 → 网络 → 安全组 → 仅开放端口:22(SSH)、80(HTTP)、443(HTTPS);关闭 3306、6379 等数据库端口对外暴露
3. 安装 Fail2ban(防暴力破解) sudo apt install -y fail2bansudo systemctl enable fail2ban && sudo systemctl start fail2ban
4. 启用 HTTPS(Let's Encrypt) sudo apt install -y certbot python3-certbot-nginxsudo certbot --nginx -d your-domain.com(需绑定域名)

📌 常见问题快速排查

现象 可能原因 解决命令
502 Bad Gateway PHP-FPM 未运行 / sock 路径错误 sudo systemctl status php*-fpm;检查 fastcgi_pass 路径是否匹配 ls /run/php/
File not found(PHP) root 路径错误或 SCRIPT_FILENAME 未传递 检查 rootfastcgi_param SCRIPT_FILENAME 是否指向 /var/www/html
MySQL 连接拒绝 用户权限不足 / host 限制 登录 MySQL:sudo mysql -u root -pCREATE USER 'web'@'localhost' IDENTIFIED BY 'StrongPass123!'; GRANT ALL ON *.* TO 'web'@'localhost'; FLUSH PRIVILEGES;
Nginx 启动失败 配置语法错误 sudo nginx -t + sudo journalctl -u nginx --no-pager -n 50

总结:你已完成一套安全、高效、可扩展的 LEMP 环境部署
下一步可:

  • 部署 WordPress / Laravel / ThinkPHP 等应用
  • 配置 Redis 缓存(sudo apt install redis-server
  • 使用宝塔面板(不推荐生产环境,但新手可选)

需要我为你生成:
🔹 一键部署脚本(Shell)
🔹 WordPress 完整部署指南
🔹 Nginx + PHP + MySQL + Redis + SSL 五合一配置模板
欢迎随时告诉我 👇

祝你搭建顺利,网站飞驰!🚀