0824LNMP项目实战:部署ECshop电商平台小白教程
文章目录
LNMP项目实战:部署ECshop电商平台小白教程
ECShop是开源在线商城电商系统,PHP开发。 LNMP = Linux + Nginx + MariaDB(MySQL) + PHP‑FPM,主流Web网站运行环境。 和LAMP最大区别:Web服务器使用Nginx,PHP由php‑fpm独立进程管理,Nginx通过fastcgi协议调用PHP解析程序。
实验环境
| 节点名称 | 节点IP | 功能 |
|---|---|---|
| ecshop | 10.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
交互步骤:
Enter current password for root (enter for none):→ 直接回车,初始root无密码Set root password? [Y/n] y→ 设置root密码,示例密码huawei,输入两次Remove anonymous users? [Y/n] y→ 删除匿名用户,提升安全Disallow root login remotely? [Y/n] n→ 实验环境允许root远程登录;生产服务器选yRemove test database and access to it? [Y/n] y→ 删除test测试库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解析到服务器IP10.1.8.10;也可以直接使用IP访问。
五、网页向导安装ECshop
浏览器访问:http://shop.meng.cloud
-
勾选【我已仔细阅读,并同意上述条款中的所有内容】,点击下一步【配置安装环境】
-
环境检查页面:全部目录权限显示「可写」,点击下一步【配置系统】
页面出现时区Warning警告,实验环境直接忽略。
-
填写数据库信息
- 数据库主机:
localhost - 数据库用户名:
ecshop - 数据库密码:
huawei - 数据库名:
ecshop,点击搜索选中数据库 - 设置管理员账号密码
- 设置时区:
亚洲,中国,上海 - 点击【立即安装】
- 数据库主机:
-
出现商派激活页面:不需要注册激活,直接关闭网页即可,不影响商城使用。
六、访问商城前台与后台
-
🛒商城前台(普通用户购物页面):
http://shop.meng.cloud -
⚙️商城管理后台:
http://shop.meng.cloud/admin- 使用安装时设置的管理员账号密码登录;
- 可以配置商店名称、上架商品、管理订单、会员等。
✨安装完成后提示:建议删除网站下面
install安装目录,防止被恶意重新安装。
📌常见踩坑排错
- 网页500 / 空白页面
- 检查网站目录所有者:
chown nginx:nginx -R /usr/share/nginx/html - 确认php‑fpm运行用户是nginx;
- 确认需要的php扩展全部已经安装;
- 查看nginx错误日志:
/var/log/nginx/error.log
- 检查网站目录所有者:
- 环境检查页面目录权限显示不可写
- 执行权限修复:
chown nginx:nginx -R /usr/share/nginx/html
- 执行权限修复:
- PHP页面直接下载而不是解析
- nginx的
location ~ \.php$配置写错; - php‑fpm服务没有启动。
- nginx的
- 浏览器访问超时无法打开网页 放行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
更多推荐




所有评论(0)