项目实战: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 中的 usergroup
数据库连接失败 数据库账号/密码错误 确认 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.inidate.timezone = Asia/Shanghai,重启 PHP-FPM

八、项目总结

通过本次实战,你已完成:

  • ✅ LNMP 环境完整搭建(Nginx + MariaDB + PHP-FPM)
  • ✅ MariaDB 安全初始化与专用账号创建
  • ✅ Nginx 虚拟主机配置与 PHP 解析联动
  • ✅ ECshop 电商平台源码部署与 Web 安装
  • ✅ 商城前台与后台的正常访问

这套 LNMP 架构不仅适用于 ECshop,也适用于绝大多数 PHP 开源系统(如 ThinkPHP、Laravel 等),是 PHP 开发者必备的基础技能。

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐