公有云ECS手动搭建LNMP+WordPress网站实战总结

发布时间:2026/6/10 7:25:10

公有云ECS手动搭建LNMP+WordPress网站实战总结 摘要本次实训基于阿里云ECS公有云服务器完成LNMP环境手动部署与WordPress博客网站搭建全流程操作。本文结合实操步骤梳理环境准备、组件安装、服务配置、数据库授权、网站部署及安全优化等核心内容总结实操踩坑点、组件协同原理与公有云建站规范适合新手学习Linux云服务建站、Web服务架构部署。一、实训概述1. 环境说明本次使用阿里云ECSCentOS 7 公有云服务器采用经典LNMP架构Linux Nginx MySQL PHP搭建动态网站。Nginx高性能Web反向代理服务器负责处理静态资源、转发PHP动态请求MySQL 8.4关系型数据库存储网站数据、文章、用户信息PHP 8.2动态脚本语言实现网站业务逻辑WordPress主流开源博客/建站程序基于PHPMySQL运行。2. 整体流程环境初始化 → 分步安装Nginx/MySQL/PHP → 配置Nginx解析PHP → 验证LNMP连通性 → 数据库规划 → 部署WordPress → 站点调试与安全清理。二、前期环境准备公有云ECS初始化是部署的基础所有操作前置完成1. 确保服务器网络正常可正常访问外网2. 替换为国内YUM源阿里云源提升软件下载速度3. 关闭防火墙、SELinux避免端口拦截生产环境建议按需放行80、3306等端口不直接关闭防护4. 通过云平台Workbench或SSH工具远程连接ECS实例。三、分步部署LNMP环境一安装与配置NginxNginx作为前端Web服务是用户访问网站的入口。1. 添加官方YUM源并安装通过tee命令写入Nginx官方源文件保证软件版本正规随后执行安装bashsudo tee /etc/yum.repos.d/nginx.repo -EOF[nginx-stable]namenginx stable repobaseurlhttps://nginx.org/packages/centos/7/$basearch/gpgcheck1enabled1gpgkeyhttps://nginx.org/keys/nginx_signing.keymodule_hotfixestrueEOFsudo yum -y install nginx2. 启动服务并设置开机自启bashsudo systemctl enable --now nginx3. 验证服务本地执行 curl http://127.0.0.1终端输出Nginx默认首页HTML代码代表安装成功。二安装并安全加固MySQL 8.4MySQL负责数据存储安全加固是公有云部署的必备环节防止数据库被非法入侵。1. 导入MySQL官方仓库并安装服务bashsudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpmsudo yum install -y mysql-server2. 启动并设置开机自启bashsudo systemctl enable --now mysqld3. 安全初始化核心步骤查看日志获取MySQL初始临时密码bashsudo grep temporary password /var/log/mysqld.log执行加固脚本sudo mysql_secure_installation按照生产规范配置1. 修改root密码强密码大小写字母数字特殊符号长度≥12位2. 移除匿名用户3. 禁止root账号远程登录4. 删除默认测试库5. 重载权限表使配置立即生效。 重点公有云服务器暴露在公网禁止root远程登录是基础安全底线。三安装PHP及依赖扩展WordPress属于PHP动态程序需安装PHP、PHP-FPM以及MySQL连接扩展。1. 安装Remi源启用PHP 8.2版本bashsudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpmsudo yum install -y yum-utilssudo yum-config-manager --enable remi-php822. 安装PHP、PHP-FPM、MySQL连接组件bashsudo yum install -y php php-fpm php-mysqlnd3. 启动并设置开机自启bashsudo systemctl enable --now php-fpm四配置Nginx支持PHP解析Nginx默认仅处理静态文件必须配置转发规则才能将PHP请求交给PHP-FPM处理否则会出现页面下载、404等问题。1. 备份原有配置文件防止配置出错无法回滚bashsudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak2. 查看PHP-FPM通信方式bashPHP_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:9000TCP端口、/run/php-fpm/www.sockUnix Socket本地通信性能更高。3. 重写Nginx站点配置修改配置文件添加PHP请求转发规则指定默认首页bashsudo tee /etc/nginx/conf.d/default.conf -EOFserver {listen 80;server_name localhost;root /usr/share/nginx/html;index index.php index.html index.htm;location / {try_files $uri $uri/ /index.php?$query_string;}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;}error_page 500 502 503 504 /50x.html;location /50x.html {root /usr/share/nginx/html;}}EOF4. 语法检查与重启服务bashsudo nginx -t 检查配置出现successful代表无误sudo systemctl restart nginx五全环境连通性验证1. 验证PHP环境创建phpinfo.php测试文件访问http://ECS公网IP/phpinfo.php页面正常展示PHP版本、扩展信息即解析成功。bashecho ?php phpinfo(); ? | sudo tee /usr/share/nginx/html/phpinfo.php✅ 安全规范测试完成后立即删除该文件页面会泄露服务器软件版本、路径等敏感信息。bashrm /usr/share/nginx/html/phpinfo.php2. 验证PHP连接MySQL1. 登录MySQL创建独立业务库与普通用户不使用root运行网站bashsudo mysql -u root -pCREATE DATABASE webapp;CREATE USER webuserlocalhost IDENTIFIED BY 自定义强密码;GRANT ALL PRIVILEGES ON webapp.* TO webuserlocalhost;FLUSH PRIVILEGES;EXIT;2. 创建数据库连接测试脚本访问公网IP查看结果bashsudo tee /usr/share/nginx/html/test.php -EOF?php$servername localhost;$username webuser;$password 你的数据库密码;$dbname webapp;$conn new mysqli($servername, $username, $password, $dbname);if ($conn-connect_error) {die(数据库连接失败: . $conn-connect_error);}echo 数据库连接成功;?EOF页面输出数据库连接成功代表LNMP三大组件协同正常。✅ 安全规范测试完毕删除test.php避免数据库账号密码明文泄露。四、部署WordPress动态网站LNMP环境就绪后开始搭建WordPress博客站点分为数据库准备、程序下载、配置文件修改、Nginx适配、站点初始化五步。一创建WordPress专用数据库与用户遵循业务隔离原则为网站单独创建数据库和账号不共用其他业务库bashmysql -u root -pCREATE DATABASE wordpress;CREATE USER wp_userlocalhost IDENTIFIED BY 强密码;GRANT ALL PRIVILEGES ON wordpress.* TO wp_userlocalhost;FLUSH PRIVILEGES;EXIT;记录数据库名、用户名、密码后续配置需要使用。二下载并解压WordPress进入Nginx网站根目录下载中文版WordPress并解压bashcd /usr/share/nginx/htmlwget https://cn.wordpress.org/wordpress-6.8.5-zh_CN.zipyum install unzip -yunzip wordpress-6.8.5-zh_CN.zip三配置WordPress数据库连接1. 进入WordPress目录复制示例配置文件bashcd /usr/share/nginx/html/wordpresscp wp-config-sample.php wp-config.php2. 编辑wp-config.php填入刚才创建的数据库信息bashvim wp-config.php修改对应字段phpdefine(DB_NAME, wordpress);define(DB_USER, wp_user);define(DB_PASSWORD, 数据库密码);define(DB_HOST, localhost);四适配Nginx与PHP-FPM配置本次改用Unix Socket通信性能优于TCP端口需同步修改两处配置1. 修改PHP-FPM监听方式bashvim /etc/php-fpm.d/www.conf将 listen 127.0.0.1:9000 改为 listen /run/php-fpm/www.sock取消注释并修改属主属组listen.owner nginxlisten.group nginx重启PHP-FPMbashsystemctl restart php-fpm2. 修改Nginx配置指向WordPress目录与Socket地址修改站点配置将网站根目录指向WordPress文件夹fastcgi_pass 改为 unix:/run/php-fpm/www.sock。3. 检查语法并重启Nginxbashnginx -tsystemctl restart nginx五浏览器初始化WordPress1. 本地浏览器访问 http://ECS公网IP进入WordPress安装向导2. 填写站点标题、后台管理员账号、密码、邮箱3. 点击安装完成后使用账号密码登录后台网站正式搭建完成。五、实操核心知识点与踩坑总结1. 架构原理Nginx处理静态资源通过fastcgi协议将PHP请求转发给PHP-FPMPHP-FPMPHP进程管理器接收请求并执行PHP代码再访问MySQL查询数据两种通信方式TCP端口适合多主机分离部署、Unix Socket本地部署高性能、更安全。2. 高频报错与解决1. 访问PHP文件直接下载Nginx未配置location ~ \.php$转发规则2. 502 Bad GatewayPHP-FPM未启动、监听地址与Nginx配置不一致、Socket文件权限错误3. WordPress连不上数据库账号密码写错、数据库授权范围错误、MySQL服务未启动4. 公网无法访问云服务器安全组未放行80端口、本地防火墙未关闭。3. 公有云专属安全要点重中之重1. MySQL必须执行安全加固禁止root远程登录、删除匿名用户2. 网站使用独立数据库账号最小化权限不使用root运行业务3. 所有测试脚本phpinfo、数据库测试页使用后立即删除防止敏感信息泄露4. 密码统一使用高强度组合密码杜绝弱口令5. 云平台安全组按需开放端口生产环境不要直接关闭服务器防火墙。六、实训收获与后续学习方向本次完整完成公有云ECS下LNMP环境搭建与WordPress网站部署打通了云服务器 Web架构 动态网站的完整链路。1. 理解了LNMP各组件的分工与协同逻辑不再单纯机械敲命令2. 掌握了公有云服务器的基础安全规范树立云服务安全意识3. 熟悉了Nginx配置、PHP-FPM调优、MySQL用户授权等常用运维操作。后续可以继续深入学习Nginx反向代理、HTTPS证书配置、WordPress主题与插件部署、网站数据备份、服务器监控、负载均衡等企业级运维技能。总结公有云建站流程清晰但细节决定成败配置路径、权限、通信地址、账号密码任一出错都会导致网站无法访问。实操中一定要养成备份配置、及时清理测试文件、强化安全设置的习惯。

相关新闻