从零搭建!公有云环境下 LAMP/LEMP 手动部署全流程复盘
最近在公有云服务器上完成了一套 Nginx+PHP+MySQL 环境的手动部署,踩了不少坑,也总结了一套清晰的流程。这篇博文就以我的 CentOS 7 服务器为例,完整复盘从环境准备到服务连通的全过程,帮你理解公有云手动部署的核心逻辑与关键细节。
一、部署背景与环境说明
很多新手刚接触公有云时,习惯用宝塔这类一键面板搭建环境,但手动部署的过程,能让你彻底理解 Web 服务的运行原理、服务间的通信逻辑,也能更精准地控制每个组件的版本和配置,避免面板带来的冗余和安全隐患。
本次部署的核心环境与目标:
- 云服务器系统:CentOS 7
- 目标服务栈:LEMP(Linux + Nginx + MySQL/MariaDB + PHP)
- 核心目标:完成 Nginx 服务部署、PHP 解析配置、MySQL 安全加固与 PHP 数据库连通测试,实现从 Web 请求到数据库的全链路打通。
二、第一步:Nginx 服务的安装与基础验证
Nginx 作为 Web 服务的入口,是整个环境的第一步,我们先通过官方 YUM 源安装稳定版 Nginx,避免依赖冲突。
1. 添加官方 Nginx YUM 源
CentOS 7 默认源的 Nginx 版本较旧,我们直接使用官方稳定源:

执行完成后,系统会自动生成 Nginx 的 YUM 源配置文件,后续安装会自动校验官方签名包,保证安装包的安全性。
2. 安装并启动 Nginx
直接通过 YUM 安装 Nginx,过程中会自动导入官方公钥并完成依赖安装:

3. 验证 Nginx 服务是否正常
安装完成后,我们在服务器本地直接访问 127.0.0.1,验证服务是否正常运行:

返回的是 Nginx 默认的欢迎页面 HTML 代码,说明 Nginx 服务已经成功启动,Web 服务的基础入口已经搭建完成。
三、第二步:MySQL 服务安装与安全加固
数据库是 Web 应用的核心存储,安装后必须先完成安全加固,再创建业务用户和数据库。
1. 初始化 MySQL 安全配置
很多新手安装完 MySQL 后直接使用 root 账号远程登录,这是公有云环境的高危操作。我们通过官方的安全脚本完成加固:

脚本执行过程中,关键配置如下:
- 设置 root 用户密码(如果未设置),建议使用强密码,避免弱口令被爆破
- 移除匿名用户,避免未授权用户直接登录
- 禁止 root 用户远程登录,仅允许从localhost本地访问 root 账号
- 删除测试数据库
test,移除所有用户对测试库的访问权限 - 重载权限表,让所有配置立即生效
2. 创建业务数据库与用户
为了后续 PHP 应用的连接,我们创建一个专用的业务用户和数据库,避免直接使用 root 账号操作业务库:

这里的用户webuser仅允许从localhost连接,即使密码泄露,攻击者也无法从远程登录你的数据库,大幅提升了安全性。
四、第三步:PHP 环境安装与解析配置
要让 Nginx 支持 PHP 文件解析,需要安装 PHP-FPM(FastCGI 进程管理器),并配置 Nginx 将 PHP 请求转发给 PHP-FPM 处理。
1. 安装 Remi 源,获取新版 PHP
CentOS 7 默认源的 PHP 版本老旧,我们通过 Remi 源安装 PHP 8.2 版本:

2. 安装 PHP 与常用扩展
安装 PHP-FPM 和 MySQL 相关扩展,确保 PHP 能连接数据库:
sudo yum install -y php-fpm php-mysqlnd
# 启动PHP-FPM并设置开机自启
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
3. 配置 Nginx 支持 PHP 解析
修改 Nginx 的默认站点配置,让它能处理 PHP 请求并转发给 PHP-FPM:

配置完成后,重载 Nginx 让配置生效:
sudo nginx -s reload
4. 验证 PHP 环境是否正常
创建phpinfo.php文件,验证 PHP 环境

在浏览器访问http://你的服务器IP/phpinfo.php,能看到 PHP 版本信息页面,说明 PHP 解析配置成功,Nginx 和 PHP-FPM 的通信已经打通。
五、第四步:PHP 与 MySQL 的连通性测试
环境搭建的最后一步,是验证 PHP 能否正常连接到 MySQL 数据库,确保 Web 应用能正常读写数据。
1. 创建数据库连接测试脚本
在 Nginx 的网站根目录创建test.php文件,写入数据库连接代码:
2. 验证连接结果
在浏览器访问http://你的服务器IP/test.php,如果页面显示 “数据库连接成功!”,说明 PHP 和 MySQL 的通信完全正常,整个 LEMP 环境的全链路已经打通。
六、公有云手动部署的关键避坑指南
- 安全组配置:公有云服务器的安全组必须放行 80(HTTP)、443(HTTPS)端口,否则外部无法访问你的 Web 服务;数据库端口 3306 不要对公网放行,仅保留本地访问即可。
- 服务权限控制:MySQL 用户尽量使用仅本地访问的账号,避免创建
root@%这类允许所有 IP 访问的用户;PHP-FPM 的运行用户要和 Nginx 的用户保持一致,避免文件权限问题。 - 依赖版本兼容:CentOS 7 的软件版本较老,安装高版本 PHP、Nginx 时,一定要用官方 / Remi 这类第三方源,避免依赖冲突;PHP 和 MySQL 的扩展版本要匹配,否则会出现连接失败的问题。
- 防火墙配置:如果服务器开启了 firewalld,记得放行 HTTP 服务:
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload
七、写在最后:手动部署的意义
很多人觉得公有云部署用一键面板更省事,但手动部署的过程,是你理解 Web 服务运行逻辑的最好方式。从 Nginx 接收请求,到转发给 PHP-FPM 解析,再到 PHP 连接 MySQL 读写数据,每一步的配置和验证,都能帮你建立对服务器环境的掌控感。
更多推荐
所有评论(0)