LNMP项目实战:部署ECshop电商平台小白教程

ECShop是开源在线商城电商系统,PHP开发。 LNMP = Linux + Nginx + MariaDB(MySQL) + PHP‑FPM,主流Web网站运行环境。 和LAMP最大区别:Web服务器使用Nginx,PHP由php‑fpm独立进程管理,Nginx通过fastcgi协议调用PHP解析程序。

实验环境

节点名称节点IP功能
ecshop10.1.8.10/24整套LNMP环境,部署ECshop电商商城

一、基础系统配置

修改主机名,配置静态IP地址

hostnamectl set-hostname ecshop

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组件

1. 安装 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 --now nginx

# 写一个简单测试页面验证nginx
echo "Nginx Test Page" > /usr/share/nginx/html/index.html

访问浏览器:http://10.1.8.10,可以看到Nginx Test Page即为正常。

2. 安装 MariaDB数据库

yum install -y mariadb-server
systemctl enable --now mariadb
数据库安全初始化
mysql_secure_installation

交互步骤:

  1. Enter current password for root (enter for none):直接回车,初始root无密码
  2. Set root password? [Y/n] y → 设置root密码,示例密码huawei,输入两次
  3. Remove anonymous users? [Y/n] y → 删除匿名用户,提升安全
  4. Disallow root login remotely? [Y/n] n → 实验环境允许root远程登录;生产服务器选y
  5. Remove test database and access to it? [Y/n] y → 删除test测试库
  6. Reload privilege tables now? [Y/n] y → 刷新权限生效

3. 安装PHP与php‑fpm

⚠️重点:php‑fpm默认运行用户是apache,Nginx运行用户是nginx必须修改php‑fpm运行身份为nginx,否则权限报错!

yum install -y php php-fpm

# 修改php‑fpm配置文件
vim /etc/php-fpm.d/www.conf

修改两处用户配置:

;user = apache
user = nginx
;group = apache
group = nginx

启动php‑fpm服务

systemctl enable --now php-fpm

4. Nginx虚拟主机配置(支持PHP解析)

新建虚拟主机配置文件 /etc/nginx/conf.d/vhost‑shop.meng.cloud.conf

server {
    listen 80;
    listen [::]:80;
    server_name shop.meng.cloud;
    root /usr/share/nginx/html;

    index index.php index.html index.htm;

    # PHP页面解析配置 fastcgi 转发给php‑fpm(127.0.0.1:9000)
    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配置语法,重启nginx

nginx -t
systemctl restart nginx
测试PHP是否正常解析
echo "<?php echo 'PHP Test Page'; ?>" > /usr/share/nginx/html/test.php

浏览器访问 http://10.1.8.10/test.php,页面输出PHP Test Page代表PHP解析环境正常。

三、创建ECshop数据库和账号

登录数据库

mysql -u root -phuawei

执行SQL:

CREATE DATABASE ecshop;
CREATE USER ecshop@localhost IDENTIFIED BY 'huawei';
GRANT ALL PRIVILEGES ON ecshop.* TO ecshop@localhost;
FLUSH PRIVILEGES;
exit;

四、部署ECshop商城代码

使用版本 ECShop_V4.1.20_UTF8,将压缩包上传到服务器root家目录。

# 解压源码包
unzip ECShop_V4.1.20_UTF8.zip

# 备份nginx默认网页目录
mv /usr/share/nginx/html/ /usr/share/nginx/html.ori

# 把ecshop源码复制到网站根目录
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

# 安装ECshop需要的php扩展
yum install -y php-gd php-common php-pear php-mbstring php-mcrypt php-mysqlnd

# 修改php会话目录权限
chown nginx:nginx -R /var/lib/php/

# 重启服务
systemctl restart nginx php-fpm

域名解析提示:测试环境修改本机hosts,把shop.meng.cloud解析到服务器IP 10.1.8.10;也可以直接使用IP访问。

五、网页向导安装ECshop

浏览器访问:http://shop.meng.cloud

  1. 勾选【我已仔细阅读,并同意上述条款中的所有内容】,点击下一步【配置安装环境】

  2. 环境检查页面:全部目录权限显示「可写」,点击下一步【配置系统】

    页面出现时区Warning警告,实验环境直接忽略。

  3. 填写数据库信息

    • 数据库主机:localhost
    • 数据库用户名:ecshop
    • 数据库密码:huawei
    • 数据库名:ecshop,点击搜索选中数据库
    • 设置管理员账号密码
    • 设置时区:亚洲,中国,上海
    • 点击【立即安装】
  4. 出现商派激活页面:不需要注册激活,直接关闭网页即可,不影响商城使用。

六、访问商城前台与后台

  • 🛒商城前台(普通用户购物页面):http://shop.meng.cloud

  • ⚙️商城管理后台:

    http://shop.meng.cloud/admin
    
    • 使用安装时设置的管理员账号密码登录;
    • 可以配置商店名称、上架商品、管理订单、会员等。

✨安装完成后提示:建议删除网站下面install安装目录,防止被恶意重新安装。

📌常见踩坑排错

  1. 网页500 / 空白页面
    • 检查网站目录所有者:chown nginx:nginx -R /usr/share/nginx/html
    • 确认php‑fpm运行用户是nginx;
    • 确认需要的php扩展全部已经安装;
    • 查看nginx错误日志:/var/log/nginx/error.log
  2. 环境检查页面目录权限显示不可写
    • 执行权限修复:chown nginx:nginx -R /usr/share/nginx/html
  3. PHP页面直接下载而不是解析
    • nginx的location ~ \.php$配置写错;
    • php‑fpm服务没有启动。
  4. 浏览器访问超时无法打开网页 放行http服务防火墙:
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
chown nginx:nginx -R /usr/share/nginx/html`
3. PHP页面直接下载而不是解析
   - nginx的`location ~ \.php$`配置写错;
   - php‑fpm服务没有启动。
4. **浏览器访问超时无法打开网页** 放行http服务防火墙:

firewall-cmd --add-service=http --permanent
firewall-cmd --reload
Logo

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

更多推荐