本文完整记录在 CentOS 7 环境下,从零搭建 LNMP(Linux + Nginx + MariaDB + PHP)架构,并部署 ECShop 多场景在线商城的实战过程。涵盖节点规划、中间件安装调优、数据库初始化、站点发布与安装向导配置等关键环节,适合作为运维入门与电商建站参考。

一、项目背景与 ECShop 简介

ECShop 是一款成熟开源的 多场景在线商城 系统,基于 PHP + MySQL 开发,具备商品管理、订单处理、会员体系、营销插件等完整电商能力,因其轻量、可定制、生态成熟,长期被中小企业与个人站长选作自建商城的首选方案。

本项目的目标,是亲手在裸机上搭建一套完整的 LNMP 运行环境,并将 ECShop 商城跑起来——从一条 yum install 命令开始,到浏览器里看到商城首页为止。

二、节点规划

本次实战采用单节点架构,使用 CentOS 7 模板克隆一台全新的服务器作为商城节点:

节点名称节点 IP节点功能
ecshop10.1.8.10/24LNMP 全栈(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 紧密咬合,构成了电商站点的稳固地基。同时,安全初始化、最小权限授权、目录属主修正等实践也提醒我们:部署不只是"跑起来",更是权限边界与安全基线的持续治理。这套流程可直接复用于中小型电商项目的快速落地。

Logo

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

更多推荐