项目实战:LNMP 电商平台 ECshop 部署全攻略
项目实战:LNMP 电商平台 ECshop 部署全攻略
项目简介:ECshop 是一款国产开源多场景在线商城系统,基于 PHP + MySQL 开发。本文将带你从零开始,在 CentOS 7 上搭建完整的 LNMP 环境(Linux + Nginx + MariaDB + PHP),并成功部署 ECshop 电商平台。
一、节点规划与基础环境
1.1 节点规划
| 节点名称 | 节点 IP | 节点功能 |
|---|---|---|
| ecshop | 10.1.8.10/24 | LNMP 服务器(Nginx + MariaDB + PHP) |
1.2 基础配置(设置主机名与静态 IP)
bash
# 设置主机名
hostnamectl set-hostname ecshop
# 配置静态 IP
nmcli connection modify ens33 ipv4.method manual \
ipv4.addresses 10.1.8.10/24 \
ipv4.gateway 10.1.8.2 \
ipv4.dns 10.1.8.2 \
autoconnect yes
# 重启网卡使配置生效
nmcli connection up ens33
二、部署 LNMP 环境
2.1 安装 Nginx
bash
# 添加 EPEL 源(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
# 测试 Nginx(写入测试页面)
echo "Nginx Test Page" > /usr/share/nginx/html/index.html
浏览器访问
http://10.1.8.10应能看到 “Nginx Test Page”。
2.2 安装 MariaDB
bash
# 安装 MariaDB
yum install -y mariadb-server
# 启动并设置开机自启
systemctl enable mariadb --now
安全初始化(mysql_secure_installation)
bash
mysql_secure_installation
| 交互提示 | 操作 | 说明 |
|---|---|---|
Enter current password for root |
直接回车 | 初始无密码 |
Set root password? |
y → 输入 huawei |
设置 root 密码 |
Remove anonymous users? |
y |
删除匿名用户 |
Disallow root login remotely? |
n |
项目环境允许 root 远程(生产请选 y) |
Remove test database? |
y |
删除测试库 |
Reload privilege tables? |
y |
刷新权限 |
2.3 安装 PHP 及相关组件
bash
# 安装 PHP 和 PHP-FPM
yum install -y php php-fpm
修改 PHP-FPM 运行用户(从 apache 改为 nginx)
bash
vim /etc/php-fpm.d/www.conf
找到并修改以下两行:
ini
user = nginx
group = nginx
为什么要改? PHP-FPM 默认以
apache用户运行,但我们的 Web 服务器是 Nginx,改为nginx用户可避免权限冲突。
启动 PHP-FPM
bash
systemctl enable php-fpm --now
2.4 配置 Nginx 虚拟主机
创建虚拟主机配置文件:
bash
vim /etc/nginx/conf.d/shop.wzh.cloud.conf
写入以下内容:
nginx
server {
listen 80;
listen [::]:80;
server_name shop.wzh.cloud;
root /usr/share/nginx/html;
index index.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;
}
}
测试 PHP 解析
创建 PHP 测试页面:
bash
echo "<?php echo 'PHP Test Page'; ?>" > /usr/share/nginx/html/test.php
重启 Nginx:
bash
systemctl restart nginx
浏览器访问 http://shop.wzh.cloud/test.php,应显示 “PHP Test Page”。
注意:需要在本地 hosts 文件中将
shop.wzh.cloud解析到10.1.8.10,或配置内部 DNS。
三、准备 ECshop 数据库
登录 MariaDB 并创建专用数据库和账号:
bash
mysql -uroot -phuawei
执行以下 SQL:
sql
-- 创建电商数据库
CREATE DATABASE ecshop;
-- 创建专用账号(仅允许本地登录)
CREATE USER ecshop@localhost IDENTIFIED BY 'huawei';
-- 授予全部权限
GRANT ALL PRIVILEGES ON ecshop.* TO ecshop@localhost;
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
EXIT;
四、部署 ECshop 站点
4.1 上传并解压源码
将 ECShop_V4.1.20_UTF8.zip 上传到 /root/ 目录:
bash
# 解压源码包
unzip ECShop_V4.1.20_UTF8.zip
# 备份默认 Nginx 页面目录
mv /usr/share/nginx/html /usr/share/nginx/html.ori
# 复制 ECshop 源码到 Web 目录
cp -a ECShop_V4.1.20_UTF8_release20250416/source/ecshop /usr/share/nginx/html
# 设置属主为 nginx(与 PHP-FPM 运行用户一致)
chown nginx:nginx -R /usr/share/nginx/html
4.2 安装 PHP 扩展包
bash
yum install -y php-gd php-common php-pear php-mbstring php-mcrypt php-mysqlnd
这些扩展的作用:
php-gd:图像处理(验证码、缩略图)php-mbstring:多字节字符串支持(中文)php-mcrypt:加密解密(用户密码)php-mysqlnd:MySQL 数据库连接驱动
4.3 调整 PHP 会话目录权限
bash
chown nginx:nginx -R /var/lib/php/
4.4 重启服务
bash
systemctl restart nginx php-fpm
五、ECshop 安装配置(Web 界面)
5.1 访问安装向导
在浏览器中访问:http://shop.wzh.cloud
如果域名未解析,可修改本地
hosts文件:text
10.1.8.10 shop.wzh.cloud
5.2 安装步骤
| 步骤 | 操作 |
|---|---|
| 第一步:许可协议 | 勾选"我已阅读并同意",点击"下一步" |
| 第二步:环境检测 | 检查 PHP 版本、扩展等,全部通过后点击"下一步" |
| 第三步:配置系统 | 填写数据库信息 + 设置管理员账号 |
数据库配置填写:
| 配置项 | 填写内容 |
|---|---|
| 数据库主机 | localhost |
| 数据库用户名 | ecshop |
| 数据库密码 | huawei |
| 数据库名 | ecshop |
| 数据表前缀 | ecs_(默认即可) |
管理员账号设置:
| 配置项 | 填写内容 |
|---|---|
| 管理员用户名 | 自定义(如 admin) |
| 管理员密码 | 自定义(如 admin123) |
| 管理员邮箱 | 自定义邮箱 |
点击 “立即安装” 按钮,等待安装完成。
5.3 安装完成
安装成功后,会提示"激活系统"页面,直接关闭即可,不影响正常使用。
六、访问商城
6.1 用户端(商城首页)
访问:http://shop.wzh.cloud
https://%E5%9B%BE%E7%89%87%E4%BD%8D%E7%BD%AE%E7%A4%BA%E6%84%8F
6.2 管理后台
访问:http://shop.wzh.cloud/admin
使用安装时设置的管理员账号登录:
| 字段 | 内容 |
|---|---|
| 用户名 | admin |
| 密码 | admin123 |
登录后即可看到 ECshop 管理中心界面,进行商品、订单、会员等管理操作。
七、常见问题排错
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
| 访问页面空白/502 | PHP-FPM 未启动或用户不对 | systemctl status php-fpm,检查 www.conf 中的 user 和 group |
| 数据库连接失败 | 数据库账号/密码错误 | 确认 MySQL 中 ecshop@localhost 账号存在且密码正确 |
| 页面报错 “No input file specified” | Nginx 配置中 root 路径错误 |
检查虚拟主机配置文件中的 root 路径 |
| 安装时提示目录不可写 | 文件属主不对 | chown nginx:nginx -R /usr/share/nginx/html |
| PHP 扩展缺失 | 部分扩展未安装 | yum install -y php-gd php-mbstring php-mysqlnd |
| 时区警告(Warning) | PHP 时区未设置 | 修改 /etc/php.ini 中 date.timezone = Asia/Shanghai,重启 PHP-FPM |
八、项目总结
通过本次实战,你已完成:
- ✅ LNMP 环境完整搭建(Nginx + MariaDB + PHP-FPM)
- ✅ MariaDB 安全初始化与专用账号创建
- ✅ Nginx 虚拟主机配置与 PHP 解析联动
- ✅ ECshop 电商平台源码部署与 Web 安装
- ✅ 商城前台与后台的正常访问
这套 LNMP 架构不仅适用于 ECshop,也适用于绝大多数 PHP 开源系统(如 ThinkPHP、Laravel 等),是 PHP 开发者必备的基础技能。
更多推荐



所有评论(0)