公有云从零搭建 LNMP 网站环境(CentOS7 完整实操教程)
一、前言
在公有云服务器(阿里云 / 腾讯云 / 华为云等)上搭建 Web 网站,LNMP(Linux+Nginx+MySQL+PHP)是目前最主流、稳定、高性能的建站组合。本文基于 CentOS 7 公有云 ECS 实例,手把手带你从零编译安装、安全配置、服务联动、PHP 与数据库连通测试,全程附带可直接复制的命令与原理讲解,新手也能一次成功部署!
环境前置说明
- 操作系统:CentOS Linux 7.9 (Maipo) 内核 3.10
- Nginx 版本:1.26.1 稳定版 Web 服务器
- MySQL 版本:8.4.8 社区版 数据库服务
- PHP 版本:8.2.20 动态脚本解析
- 服务器架构:x86_64
- 场景:公有云公网服务器,对外提供 Web 访问服务
二、整体架构知识科普
- Linux:公有云服务器底层操作系统,承担所有服务运行、资源调度
- Nginx:高性能反向代理 + 静态 Web 服务器,处理 80 端口 HTTP 访问,转发 PHP 动态请求给 PHP-FPM
- PHP-FPM:PHP 进程管理程序,专门解析 PHP 动态网页代码
- MySQL:关系型数据库,存储网站所有业务数据、用户数据
- 访问流程:用户公网 IP 访问 → Nginx 接收请求 → 静态文件直接返回、PHP 请求转发 PHP-FPM → PHP 读取 / 写入 MySQL 数据 → 组装页面返回给浏览器
三、步骤 1:服务器基础信息查看
先确认服务器基础环境,执行命令:
uname -a
输出示例:Linux localhost.localdomain 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 x86_64 GNU/Linux
四、步骤 2:安装并配置 Nginx Web 服务
1. 配置 Nginx 官方 YUM 源
官方源保证版本最新、安全稳定,避免系统自带旧版本
sudo tee /etc/yum.repos.d/nginx.repo <<-'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
2. 安装、启动 Nginx 并设置开机自启
# 安装nginx
yum install nginx -y
# 开机自启并立即运行nginx
sudo systemctl enable --now nginx
3. 验证 Nginx 运行状态
# 查看nginx版本
nginx -v
# 本地访问测试
curl http://127.0.0.1

✅ 出现Welcome to nginx!默认页面代码,代表 Nginx 安装启动成功!⚠️ 公有云需在安全组放行 80 端口,浏览器输入服务器公网 IP 即可访问默认页。
五、步骤 3:安装与安全加固 MySQL 数据库
1. 安装 MySQL8.4、启动服务
# 安装MySQL服务
yum install mysql-community-server -y
# 开机自启并立即运行mysqld
sudo systemctl enable --now mysqld
2. 获取 MySQL 初始临时密码
sudo grep 'temporary password' /var/log/mysqld.log

示例输出临时密码:!do2>0%k7Jw3
3. MySQL 初始化安全配置(关键生产安全操作)
执行mysql_secure_installation安全向导,全程安全优化:
mysql_secure_installation
交互选项设置(公有云生产环境标准配置):
Change the password for root ?→ 输入n(本次暂跳过改密码)Remove anonymous users?→ 输入y(删除匿名危险账号)Disallow root login remotely?→ 输入y(禁止 root 远程登录,防暴力破解)Remove test database?→ 输入y(删除默认测试库)Reload privilege tables now?→ 输入y(立即生效权限)✅ 最终提示All done!,MySQL 安全加固完成!
4. 创建网站专属数据库与业务账号
禁止网站直接使用 root 账号连接数据库,权限最小化保障安全
# 登录MySQL
sudo mysql -u root -p
-- 创建网站专属数据库webapp
CREATE DATABASE webapp;
-- 创建独立业务用户webuser,设置强密码
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'webPass@123456';
-- 给用户分配webapp数据库全部权限
GRANT ALL PRIVILEGES ON webapp.* TO 'webuser'@'localhost';
-- 刷新权限生效
FLUSH PRIVILEGES;
EXIT;
六、步骤 4:安装 PHP 与 PHP-FPM 解析引擎
1. 安装 PHP8.2 与 FPM、MySQL 扩展
yum install php php-fpm php-mysqli -y
# 启动并设置开机自启
systemctl enable --now php-fpm
2. 获取 PHP-FPM 监听地址
默认 PHP-FPM 监听本地 9000 端口,用于 Nginx 转发请求
PHP_FPM_LISTEN=$(sudo sed -n 's/^\s*listen\s*=\s*//p' /etc/php-fpm.d/www.conf | head -n 1)
echo "$PHP_FPM_LISTEN"

✅ 输出127.0.0.1:9000,确认监听地址正常。
七、步骤 5:Nginx 配置 PHP 联动解析
1. 修改 Nginx 站点配置文件
编辑默认站点配置,让 Nginx 支持 PHP 文件解析转发
cat > /etc/nginx/conf.d/default.conf <<-'EOF'
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
# 优先识别PHP首页文件
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# 核心PHP转发规则,转发至PHP-FPM 9000端口
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止访问敏感隐藏文件
location ~ /\.ht {
deny all;
}
}
EOF
2. 校验配置 + 重启生效
# 校验配置语法是否错误
nginx -t
# 重载nginx配置
systemctl reload nginx
✅ 提示test is successful代表配置无误!
八、步骤 6:全链路连通性测试
1. 测试 PHP 环境
创建phpinfo.php探针文件,验证 PHP 运行正常
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/phpinfo.php
浏览器访问:http://服务器公网IP/phpinfo.php✅ 出现 PHP8.2 详细信息页面,PHP 解析完全正常!
2. 测试 PHP 连接 MySQL 数据库
创建数据库连接测试脚本
sudo tee /usr/share/nginx/html/test.php <<-'EOF'
<?php
$servername = "localhost";
$username = "webuser";
$password = "webPass@123456";
$dbname = "webapp";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接状态
if ($conn->connect_error) {
die("数据库连接失败: " . $conn->connect_error);
}
echo "🎉 数据库连接成功!LNMP全环境搭建完成!";
?>
EOF
浏览器访问:http://公网IP/test.php✅ 页面输出连接成功,代表 Nginx-PHP-MySQL 全链路完美打通!
九、公有云生产环境优化 & 安全建议
- 安全组策略:仅放行 80、443 必要端口,关闭多余端口暴露
- MySQL 安全:禁止 root 远程访问、定期修改强密码、定期备份数据库
- 防火墙配置:开启系统 firewalld,仅放行业务端口
- HTTPS 部署:后续可配置 SSL 证书,全站 HTTPS 加密访问
- 权限管控:网站目录权限最小化,禁止 777 高危权限
- 版本维护:定期升级 Nginx、MySQL、PHP 补丁,修复高危漏洞
十、最终成果总结
本次我们在公有云 CentOS 服务器上:
✅ 完成 LNMP 整套环境从零搭建
✅ 完成 MySQL 生产级安全加固
✅ 完成 Nginx 与 PHP-FPM 精准联动
✅ 完成 PHP 探针、数据库连通双重验证
✅ 所有配置符合公有云线上业务部署标准
搭建完成后,你就可以直接部署 WordPress、个人博客、企业官网等各类 PHP 网站到公有云服务器对外提供服务啦~
更多推荐




所有评论(0)