实战项目:LNMP-电商平台-ECshop
前言
ECShop是国内成熟开源电商建站系统,支持商品上架、订单管理、会员体系、支付配置、后台管理全套商城功能,基于PHP+MariaDB开发,搭配Nginx高性能Web服务,组成LNMP经典企业网站架构。
本文基于CentOS7系统完整复现ECShop商城从环境安装到后台配置全流程,全程无内容删减,文档内域名laogao全部统一替换为chenxin,所有终端命令可直接复制执行,附带环境校验、数据库配置、网页安装、商城后台操作完整截图说明,运维新手、实训课均可直接复刻。
一、项目环境规划
节点信息表
| 节点名称 | 节点IP | 系统架构 |
|---|---|---|
| ecshop | 10.1.8.10/24 | LNMP(Nginx+MariaDB+PHP) |
二、分步搭建LNMP运行环境
2.1 安装Nginx Web服务
bash
# 下载阿里云epel软件源
[root@ecshop ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 安装Nginx
[root@ecshop ~]# yum install -y nginx
# 设置开机自启并立即启动服务
[root@ecshop ~]# systemctl enable nginx.service --now
# 生成测试首页验证Nginx运行
[root@ecshop ~]# echo "Nginx Test Page" > /usr/share/nginx/html/index.html
2.2 安装并初始化MariaDB数据库
bash
# 安装数据库服务
[root@ecshop ~]# yum install -y mariadb-server
# 开机自启+启动数据库
[root@ecshop ~]# systemctl enable mariadb --now
# 执行生产安全初始化脚本
[root@ecshop ~]# mysql_secure_installation
完整交互操作指引:
Enter current password for root (enter for none):直接回车,新装数据库无root初始密码Set root password? [Y/n] y输入y设置管理员密码,示例密码huaweiNew password:自定义数据库密码Re-enter new password:重复确认密码Remove anonymous users? [Y/n] y删除匿名测试账号,提升安全性Disallow root login remotely? [Y/n] n实验环境允许root本地远程登录Remove test database and access to it? [Y/n] y删除系统自带test测试库Reload privilege tables now? [Y/n] y立即刷新权限,所有配置即时生效
2.3 安装PHP与PHP-FPM解析服务
bash
# 安装PHP主程序与进程管理工具
[root@ecshop ~]# yum install -y php php-fpm
# 修改php-fpm运行用户为nginx(默认apache,会出现目录权限报错)
[root@ecshop ~]# vim /etc/php-fpm.d/www.conf
修改配置两处参数:
ini
user = nginx
group = nginx
bash
# 开机自启并启动php-fpm
[root@ecshop ~]# systemctl enable php-fpm.service --now
2.4 Nginx虚拟主机配置(适配PHP商城)
bash
# 创建商城独立站点配置文件
[root@ecshop ~]# vim /etc/nginx/conf.d/vhost-shop.chenxin.cloud.conf
完整server配置内容:
nginx
server {
listen 80;
listen [::]:80;
server_name shop.chenxin.cloud;
root /usr/share/nginx/html;
# 设置默认首页优先级
index index.php index.html index.htm;
# PHP请求转发至9000端口php-fpm处理
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;
}
}
bash
# 重载Nginx加载新站点配置
[root@ecshop ~]# systemctl restart nginx
# 新建PHP测试页面验证解析环境
[root@ecshop ~]# echo "<?php echo 'PHP Test Page'.\"\n\"; ?>" > /usr/share/nginx/html/test.php
三、创建ECShop专属数据库与账号
登录数据库root管理员执行建库、授权全套SQL:
bash
[root@ecshop ~]# mysql -u root -phuawei
sql
-- 创建商城专用数据库
CREATE DATABASE ecshop;
-- 创建本地数据库访问账号
CREATE USER ecshop@localhost IDENTIFIED BY 'huawei';
-- 授予ecshop库全部操作权限
GRANT ALL PRIVILEGES ON ecshop.* TO ecshop@localhost;
-- 刷新权限使授权生效
FLUSH PRIVILEGES;
-- 退出数据库终端
exit
四、部署ECShop商城源码
本次使用版本:ECShop_V4.1.20 UTF8中文商城源码,提前上传至服务器root目录
bash
# 解压源码压缩包
[root@ecshop ~]# unzip ECShop_V4.1.20_UTF8.zip
# 备份默认Nginx静态目录
[root@ecshop ~]# mv /usr/share/nginx/html /usr/share/nginx/html.ori
# 将商城程序复制到网站根目录
[root@ecshop ~]# cp -a ECShop_V4.1.20_UTF8_release20250416/source/ecshop /usr/share/nginx/html
# 修改商城目录归属为nginx运行用户
[root@ecshop ~]# chown nginx:nginx -R /usr/share/nginx/html
# 安装商城所需PHP扩展库
[root@ecshop ~]# yum install -y php-gd php-common php-pear php-mbstring php-mcrypt php-mysqlnd
# 修改PHP缓存目录权限
[root@ecshop ~]# chown nginx:nginx -R /var/lib/php/
# 重启Nginx与PHP-FPM,加载环境变更
[root@ecshop ~]# systemctl restart nginx php-fpm
五、网页可视化安装ECShop商城
5.1 访问安装首页
客户端浏览器访问地址:http://shop.chenxin.cloud
- 勾选软件许可协议
- 点击【下一步:配置安装环境】

5.2 系统环境校验页面
页面自动检测Linux系统、PHP版本、GD库、目录读写权限,全部显示「可写」代表环境正常,点击【下一步:配置系统】

5.3 数据库与站点管理员配置
页面参数填写规范:
- 数据库主机:localhost
- 端口号:3306
- 用户名:ecshop
- 密码:huawei
- 数据库名:ecshop,点击搜索选中库
- 管理员账号:admin,自定义后台密码
- 时区下拉框选择:亚洲,中国,上海
页面顶部PHP时区Warning可暂时忽略,安装完成后统一修改php.ini永久解决
填写完成点击【立即安装】

5.4 系统激活弹窗
安装完成弹出商派账号激活窗口,无需注册登录,直接关闭网页即可正常使用商城全部基础功能

六、商城前台&后台访问操作
6.1 商城用户前台首页
访问地址:http://shop.chenxin.cloud
展示商品分类、新品活动、搜索栏、购物车、会员登录入口,普通消费者下单购物页面

6.2 商城管理后台登录页
后台地址:http://shop.chenxin.cloud/admin
输入管理员账号admin+自定义密码、验证码登录后台


6.3 商城基础信息配置页面
首次登录后台,设置商城名称、所在省市、配送方式、支付渠道等基础门店信息,点击完成向导

6.4 ECShop管理中心仪表盘
后台总览页面:展示商品统计、订单数据、今日访问、会员数量,左侧菜单栏包含商品、订单、会员、广告、系统设置全管理功能
安全提示:安装完成后删除网站目录下install安装文件夹

七、常见报错修复方案
问题1:页面顶部时区Warning导致安装中断
报错:It is not safe to rely on the system's timezone settings
修复操作:
bash
vim /etc/php.ini
# 找到 ;date.timezone = 修改为
date.timezone = Asia/Shanghai
# 删除行首注释分号,重启php-fpm生效
systemctl restart php-fpm
问题2 目录无写入权限,环境检测提示不可写
根源:php-fpm运行用户是nginx,目录归属为root
修复命令:
bash
chown nginx:nginx -R /usr/share/nginx/html
chown nginx:nginx -R /var/lib/php/
systemctl restart nginx php-fpm
问题3 数据库账号连接失败
原因:MariaDB区分localhost套接字与127.0.0.1TCP账号
补充授权TCP访问账号:
sql
CREATE USER ecshop@'127.0.0.1' IDENTIFIED BY 'huawei';
GRANT ALL PRIVILEGES ON ecshop.* TO ecshop@'127.0.0.1';
FLUSH PRIVILEGES;
八、教程总结
本文完整覆盖LNMP整套环境部署、ECShop商城源码部署、网页一键安装、前后台操作全流程,适配CentOS7实训/生产测试环境。相比LAMP,Nginx高并发性能更强,适合商城类流量场景。