项目实战 | 基于 LNMP 架构的 ECShop 电商平台部署全流程
本文完整记录在 CentOS 7 环境下,从零搭建 LNMP(Linux + Nginx + MariaDB + PHP)架构,并部署 ECShop 多场景在线商城的实战过程。涵盖节点规划、中间件安装调优、数据库初始化、站点发布与安装向导配置等关键环节,适合作为运维入门与电商建站参考。
文章目录
一、项目背景与 ECShop 简介
ECShop 是一款成熟开源的 多场景在线商城 系统,基于 PHP + MySQL 开发,具备商品管理、订单处理、会员体系、营销插件等完整电商能力,因其轻量、可定制、生态成熟,长期被中小企业与个人站长选作自建商城的首选方案。
本项目的目标,是亲手在裸机上搭建一套完整的 LNMP 运行环境,并将 ECShop 商城跑起来——从一条 yum install 命令开始,到浏览器里看到商城首页为止。
二、节点规划
本次实战采用单节点架构,使用 CentOS 7 模板克隆一台全新的服务器作为商城节点:
| 节点名称 | 节点 IP | 节点功能 |
|---|---|---|
| ecshop | 10.1.8.10/24 | LNMP 全栈(Web + 数据库 + PHP) |
三、LNMP 环境搭建
1. 安装并启动 Nginx
首先配置阿里云 YUM 扩展源,随后安装 Nginx 并设置开机自启,最后写入一个测试首页验证服务状态:
# 配置 EPEL 源(使用阿里云镜像)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 安装 Nginx 并立即启用开机自启
yum install -y nginx
systemctl enable nginx.service --now
# 写入测试首页
echo "Nginx Test Page" > /usr/share/nginx/html/index.html
2. 安装 MariaDB 并完成安全初始化
MariaDB 是 MySQL 的开源分支,在 CentOS 7 中作为默认数据库方案。安装完成后,务必执行 mysql_secure_installation 进行安全加固:
# 安装并启动 MariaDB
yum install -y mariadb-server
systemctl enable mariadb --now
# 安全初始化
mysql_secure_installation
安全初始化过程中的关键交互选项如下,生产环境建议逐项确认:
Enter current password for root (enter for none): # 【初次安装】直接回车(默认无密码)
Set root password? [Y/n] y # 输入 y,设置 root 密码
New password: # 输入要设置的密码(示例:123)
Re-enter new password: # 再次输入密码确认
Remove anonymous users? [Y/n] y # 删除匿名用户(安全加固)
Disallow root login remotely? [Y/n] n # 是否禁止 root 远程登录(项目环境常用 n;安全要求高的服务器选 y)
Remove test database and access to it? [Y/n] y # 删除 test 测试库
Reload privilege tables now? [Y/n] y # 刷新权限,使上述变更立即生效
全部步骤完成后,终端会输出 All done! ... Thanks for using MariaDB!,表示数据库加固完毕。
3. 安装 PHP 并调整 php-fpm 运行身份
安装 PHP 与 php-fpm 进程管理器,并将运行用户由默认的 apache 改为 nginx,确保与 Nginx 身份一致、避免文件权限问题:
yum install -y php php-fpm
# 修改 php-fpm 运行用户身份
vim /etc/php-fpm.d/www.conf
配置文件中的关键修改项:
# 将以下两条记录由 apache 改为 nginx
user = nginx
group = nginx
启动 php-fpm 并设置开机自启:
systemctl enable php-fpm.service --now
4. 配置 Nginx 虚拟主机
新建虚拟主机配置文件,将域名解析到站点根目录,并声明 PHP 页面经由 FastCGI 交由 php-fpm 处理:
vim /etc/nginx/conf.d/vhost-shop.laogao.cloud.conf
配置内容如下:
server {
listen 80;
listen [::]:80;
server_name shop.laogao.cloud;
root /usr/share/nginx/html;
# 设置默认主页
index index.php;
# 设置 PHP 页面处理方式
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重载 Nginx 并写入一个 PHP 测试页面,用于端到端验证:
systemctl restart nginx
# 准备 PHP 测试页面
echo "<?php echo 'PHP Test Page'.\"\n\"; ?>" > /usr/share/nginx/html/test.php
5. 客户端连通性验证
在客户端浏览器访问测试页面,确认 Nginx 与 php-fpm 协同工作正常,LNMP 基础环境即告就绪:

四、数据库准备
登录 MariaDB,为 ECShop 创建专属数据库与业务账户,并按最小权限原则授权(示例密码为 123,生产环境务必使用强密码):
mysql -u root -p123
> create database ecshop;
> create user ecshop@localhost identified by '123';
> grant all privileges on ecshop.* to ecshop@localhost;
> flush privileges;
> exit
五、部署 ECShop 站点
准备站点数据文件,本次实战使用 ECShop_V4.1.20 版本。将源码包上传至 root 用户家目录后,依次执行解压、备份原站点目录、发布站点文件、修正属主:
# 解压源码包
unzip ECShop_V4.1.20_UTF8.zip
# 备份原站点目录,并发布 ECShop 源码
mv /usr/share/nginx/html/ /usr/share/nginx/html.ori
cp -a ECShop_V4.1.20_UTF8_release20250416/source/ecshop /usr/share/nginx/html
# 修正站点目录属主为 nginx
chown nginx:nginx -R /usr/share/nginx/html
随后安装站点运行所依赖的 PHP 扩展包,调整会话目录权限,并重启相关服务:
# 安装站点所需的各种扩展包
yum install -y php-gd php-common php-pear php-mbstring php-mcrypt php-mysqlnd
# 修正 PHP 会话目录属主
chown nginx:nginx -R /var/lib/php/
# 重启 Nginx 与 php-fpm 使配置生效
systemctl restart nginx php-fpm
六、ECShop 安装向导配置
在客户端浏览器访问 http://shop.laogao.cloud,即可进入安装向导。
第一步:勾选许可协议,点击"下一步"进入安装环境配置。页面会自动检测服务器环境,各项依赖满足即可继续:

第二步:进入系统配置环节:

小提示:页面上方可能出现关于"使用系统时区不安全"的 Warning 提示,属于 PHP 时区配置的常规告警,可暂时忽略。
第三步:输入前文创建的数据库账户信息,点击搜索并选中目标数据库;时区依次选择 亚洲 → 中国 → 上海,点击"立即安装":

安装完成后会出现激活提示页面。激活系统可享受更多服务,不激活也不影响正常使用,按需选择后关闭网页即可:

七、商城前台与管理后台访问
1. 商城首页
访问 http://shop.laogao.cloud,商城前台首页已正常呈现,商品分类、轮播广告、推荐商品等模块全部加载成功:

2. 管理后台登录
访问 http://shop.laogao.cloud/admin 进入后台登录页,使用安装时设置的 ecshop 管理员账户登录:


3. 商店初始化与管理中心
登录后首先完善商店的基本信息(店铺名称、联系方式、货币单位等):

至此,ECShop 管理中心界面全貌如下,商品、订单、会员、报表等核心功能模块一应俱全,一座可用的在线商城正式落成。
八、总结
本次实战完整走通了"裸机到商城"的全链路:从节点规划与 LNMP 四大组件的逐一安装,到 php-fpm 身份调整、虚拟主机配置等容易踩坑的细节,再到数据库账户授权、站点文件发布与权限治理,最后通过 ECShop 安装向导一站完成系统落地。整个过程印证了 LNMP 架构轻量高效的优势——Nginx 处理静态请求与反向代理、php-fpm 承载动态逻辑、MariaDB 沉淀业务数据,三者经 FastCGI 紧密咬合,构成了电商站点的稳固地基。同时,安全初始化、最小权限授权、目录属主修正等实践也提醒我们:部署不只是"跑起来",更是权限边界与安全基线的持续治理。这套流程可直接复用于中小型电商项目的快速落地。
更多推荐


所有评论(0)