LNMP_LAMP_项目实战教程

LNMP/LAMP 项目实战教程

本文档包含三篇实战:MariaDB 基础、WordPress 博客平台部署、ECshop 电商平台部署


第一篇:MariaDB 基础教程(CentOS7)

环境准备

主机名 IP地址
mariadb-server 10.1.8.10/24
mariadb-client 10.1.8.11/24

MariaDB 是 MySQL 的社区分支,语法几乎完全兼容 MySQL,命令、配置、主从复制大部分通用。在 CentOS 7 中,MariaDB 是默认的 MySQL 替代方案。

一、安装

基础配置

以下配置针对 mariadb-server 和 mariadb-client 两台主机分别执行。

bash 复制代码
# mariadb-server
hostnamectl set-hostname mariadb-server
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

# mariadb-client
hostnamectl set-hostname mariadb-client
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 10.1.8.11/24 \
ipv4.gateway 10.1.8.2 ipv4.dns 10.1.8.2 autoconnect yes
nmcli connection up ens33
bash 复制代码
# CentOS7 yum安装
[root@mariadb-server ~]# yum install -y mariadb mariadb-server

# 启动开机自启
systemctl start mariadb
systemctl enable mariadb

# 查看状态
systemctl status mariadb

安全初始化(必做)

注意:生产环境必须执行安全初始化,否则数据库存在严重安全隐患。

bash 复制代码
[root@mariadb-server ~]# mysql_secure_installation

交互要点:

  1. 回车,无 root 密码
  2. 设置 root 密码 y
  3. 删除匿名用户 y
  4. 禁止 root 远程登录 y
  5. 删除 test 库 y
  6. 刷新权限 y

提示mysql_secure_installation 是 MariaDB/MySQL 提供的安全配置脚本,会自动完成设置 root 密码、删除匿名用户、禁止 root 远程登录、删除 test 库等安全加固操作。生产环境务必执行。

二、基础 SQL 命令

⚠️ 注意 :每条 SQL 语句结尾必须以 ; 分号结束。

1. 库操作

bash 复制代码
# 本地登录
[root@mariadb-server ~]# mysql -uroot -p
Enter password: huawei
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.68-MariaDB MariaDB Server

# 指定主机端口
[root@mariadb-server ~]# mysql -uroot -p -h127.0.0.1 -P3306

提示-u 指定用户名,-p 提示输入密码,-h 指定主机地址,-P 指定端口号(默认3306)。

sql 复制代码
-- 查看所有数据库
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

-- 创建数据库
MariaDB [(none)]> create database school;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
+--------------------+
4 rows in set (0.00 sec)

-- 指定字符集创建(推荐utf8mb4支持emoji)
MariaDB [(none)]> create database school2 default character set utf8mb4 collate utf8mb4_general_ci;
Query OK, 1 row affected (0.00 sec)

-- 删除数据库
MariaDB [(none)]> drop database school2;
Query OK, 0 rows affected (0.00 sec)

-- 切换数据库
MariaDB [(none)]> use school;
Database changed

提示 :推荐使用 utf8mb4 字符集而非 utf8。MariaDB/MySQL 中的 utf8 实际只支持最多3字节编码,无法存储 emoji 等特殊字符。utf8mb4 是真正的 UTF-8,支持4字节编码。

2. 表操作

sql 复制代码
-- 查看当前库所有表
MariaDB [school]> show tables;
Empty set (0.00 sec)

-- 创建表
create table student(
id int primary key auto_increment,
name varchar(20),
age int
);

-- 查看表结构
MariaDB [school]> desc student;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20) | YES  |     | NULL    |                |
| age   | int(11)     | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

-- 查看建表语句
MariaDB [school]> show create table student\G
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

-- 删除表
MariaDB [school]> drop table student2;
Query OK, 0 rows affected (0.00 sec)

提示auto_increment 表示该字段自动递增,通常用于主键;varchar(20) 表示可变长度字符串,最大20个字符;InnoDB 是 MariaDB/MySQL 的默认存储引擎,支持事务和行级锁。

3. DML 增删改查

提示:DML(Data Manipulation Language)数据操作语言,包括 INSERT(插入)、UPDATE(更新)、DELETE(删除)、SELECT(查询)四种基本操作。

sql 复制代码
-- 插入
MariaDB [school]> insert into student(name,age) values('zhangsan',18),
('lisi',20);
Query OK, 2 rows affected (0.00 sec)

-- 查询
MariaDB [school]> select * from student;
+----+----------+------+
| id | name     | age  |
+----+----------+------+
|  1 | zhangsan |   18 |
|  2 | lisi     |   20 |
+----+----------+------+
2 rows in set (0.00 sec)

-- 更新
MariaDB [school]> update student set age=19 where id=1;
Query OK, 1 row affected (0.00 sec)

MariaDB [school]> select * from student;
+----+----------+------+
| id | name     | age  |
+----+----------+------+
|  1 | zhangsan |   19 |
|  2 | lisi     |   20 |
+----+----------+------+
2 rows in set (0.00 sec)

-- 删除
MariaDB [school]> delete from student where id=2;
Query OK, 1 row affected (0.00 sec)

MariaDB [school]> select * from student;
+----+----------+------+
| id | name     | age  |
+----+----------+------+
|  1 | zhangsan |   19 |
+----+----------+------+
1 row in set (0.00 sec)

警告DELETE 语句不带 WHERE 条件将删除整表数据!执行删除操作前务必先确认 WHERE 条件正确,建议先用 SELECT 验证条件。

4. 用户与权限

sql 复制代码
-- 创建用户,允许本地登录
create user 'admin'@'localhost' identified by '123456';

-- 允许任意地址登录
create user 'admin'@'%' identified by '123456';
create user 'test'@'%' identified by '123456';

-- 查看创建的账号
MariaDB [(none)]> select user,host from mysql.user;
+-------+-----------+
| user  | host      |
+-------+-----------+
| admin | %         |
| admin | localhost |
| test  | %         |
+-------+-----------+

-- 授权
grant all privileges on school.* to 'admin'@'localhost';
grant all privileges on school.* to 'admin'@'%';

-- 刷新权限
flush privileges;

-- 查看权限
MariaDB [(none)]> show grants for 'admin'@'localhost';
+--------------------------------------------------------------------------------+
| Grants for admin@localhost                                                     |
+--------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'admin'@'localhost'                                      |
| GRANT ALL PRIVILEGES ON `school`.* TO 'admin'@'localhost'                      |
+--------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

权限粒度说明:*.* 表示所有库所有表;school.* 表示 school 库的全部表。'admin'@'%' 中的 % 表示允许从任意 IP 地址连接。生产环境中建议限制具体 IP,如 'admin'@'10.1.8.%'

三、配置文件

  • 主配置文件:/etc/my.cnf
  • 子配置目录:/etc/my.cnf.d/*.cnf
  • 常用配置片段:/etc/my.cnf.d/server.cnf

修改配置后重启服务:

bash 复制代码
systemctl restart mariadb

防火墙放行 3306 端口,否则外部无法连接:

bash 复制代码
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

常用配置参数说明:

ini 复制代码
[mysqld]
# 数据库id,主从复制必须不一样,单机随便写
server-id=1
# 数据目录
datadir=/var/lib/mysql
# 监听地址,0.0.0.0允许远程访问
bind-address=0.0.0.0
# 默认字符集
character-set-server=utf8mb4
# 开启binlog(主从复制需要)
log_bin=mysql-bin
binlog_format=mixed

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

💡 提示

  • server-id:主从复制时主库和从库的 ID 必须不同
  • bind-address=0.0.0.0:允许远程连接,生产环境建议限制为具体 IP
  • log_bin=mysql-bin:开启二进制日志,是主从复制的基础
  • binlog_format=mixed:混合模式,默认用语句模式,遇到不确定语句自动切换为行模式

四、主从复制基础(一主一从)

MariaDB 主从复制原理

MariaDB 主从复制是指主库将数据变更以日志形式传输给从库,从库重放日志实现数据一致。

核心组件说明:

组件 说明
主库二进制日志(binlog) 主库核心日志,记录所有修改数据的 SQL(增删改、建表等),是主从同步的"数据源头"
从库中继日志(relay log) 从库本地日志,存储从主库获取的 binlog 内容,避免直接通过网络读取主库 binlog
主库 binlog dump 线程 负责向从库传输 binlog
从库 IO 线程 负责连接主库、拉取 binlog 并写入本地 relay log
从库 SQL 线程 负责读取 relay log、执行其中的 SQL,还原主库数据变更

主从同步完整原理流程

步骤 1:主库记录数据变更到 binlog

当主库执行数据变更操作(如 INSERT/UPDATE/DELETE、CREATE TABLE 等)时:

  1. 操作先写入事务日志(redo log)保证数据持久化;
  2. 事务提交时,MySQL 会将该操作的 SQL(或数据变更事件)按顺序写入 binlog;

步骤 2:从库 IO 线程连接主库,请求同步 binlog

从库启动后,IO 线程会主动连接主库,并向主库发送两个关键信息:

  • 要同步的主库 binlog 文件名称;
  • 要同步的 binlog 位置(position)(即从哪个位置开始读取);

首次同步时,从库会请求主库全量数据的 binlog(或先全量备份再同步增量),后续仅请求增量 binlog。

步骤 3:主库 binlog dump 线程传输 binlog 给从库

主库接收到从库的同步请求后,会创建 binlog dump 线程响应:

  1. 该线程根据从库指定的 binlog 文件和位置,读取主库 binlog 中的增量数据;
  2. 将读取到的 binlog 内容(事件)通过网络传输给从库的 IO 线程;
  3. 主库会记录"哪些从库正在同步哪个 binlog 位置",确保从库断线重连后能续传。

步骤 4:从库 IO 线程写入 relay log

从库 IO 线程接收到主库传输的 binlog 内容后:

  1. 不会直接执行,而是先写入本地的 relay log(中继日志),避免网络中断导致数据丢失;
  2. 同时更新从库状态文件(master.info/relay-log.info),记录已同步的主库 binlog 文件+位置、本地 relay log 的文件+位置;
    确保从库重启后能继续同步,不重复/遗漏数据。

步骤 5:从库 SQL 线程重放 relay log,实现数据一致

从库 SQL 线程会实时读取 relay log 中的内容:

  1. 按顺序解析 relay log 中的 binlog 事件(SQL 或行变更);
  2. 在从库本地执行这些事件对应的操作,还原主库的数据变更;
  3. 执行完成后,更新 relay-log.info,标记已处理的 relay log 位置,避免重复执行。

主从复制实战配置

环境规划:

主机名 IP地址 角色
mariadb-server1 10.1.8.10/24 主库(Master)
mariadb-server2 10.1.8.11/24 从库(Slave)

基础配置(两台主机均执行):

bash 复制代码
# mariadb-server1
hostnamectl set-hostname mariadb-server1
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

# mariadb-server2
hostnamectl set-hostname mariadb-server2
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 10.1.8.11/24 \
ipv4.gateway 10.1.8.2 ipv4.dns 10.1.8.2 autoconnect yes
nmcli connection up ens33
bash 复制代码
# CentOS7 yum安装(两台均执行)
yum install -y mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb

安全初始化(必做,两台均执行):

bash 复制代码
mysql_secure_installation

交互要点:

  1. 回车,无 root 密码
  2. 设置 root 密码 y
  3. 删除匿名用户 y
  4. 禁止 root 远程登录 y
  5. 删除 test 库 y
  6. 刷新权限 y

主库配置(mariadb-server1)

bash 复制代码
[root@mariadb-server1 ~]# vim /etc/my.cnf

[mysqld] 下添加:

ini 复制代码
[mysqld]
# 添加两行
server-id=1
log_bin=mysql-bin

重启服务:

bash 复制代码
[root@mariadb-server1 ~]# systemctl restart mariadb.service

创建复制账号:

sql 复制代码
[root@mariadb-server1 ~]# mysql -uroot -phuawei
MariaDB [(none)]> create user 'repl'@'%' identified by 'Repl@123456';
MariaDB [(none)]> grant replication slave on *.* to 'repl'@'%';
MariaDB [(none)]> flush privileges;

-- 查看 binlog 状态,记下 File 和 Position 值
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      548 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

提示show master status 输出的 FilePosition 值是从库配置主从同步时必须填写的关键参数,表示从库将从主库的哪个 binlog 文件的哪个位置开始同步。

从库配置(mariadb-server2)

bash 复制代码
[root@mariadb-server2 ~]# vim /etc/my.cnf

[mysqld] 下添加:

ini 复制代码
[mysqld]
# 添加两行
server-id=2
relay_log=mysql-relay-bin

重启服务:

bash 复制代码
[root@mariadb-server2 ~]# systemctl restart mariadb.service

配置主库信息并启动同步:

sql 复制代码
[root@mariadb-server2 ~]# mysql -uroot -phuawei
MariaDB [(none)]> change master to
master_host='10.1.8.10',
master_user='repl',
master_password='Repl@123456',
master_log_file='mysql-bin.000001',
master_log_pos=548;

MariaDB [(none)]> start slave;

查看从库同步状态:

sql 复制代码
MariaDB [(none)]> show slave status\G

⚠️ 关键检查点Slave_IO_Running: YesSlave_SQL_Running: Yes 同时为 Yes 时,代表复制正常。如果任一为 No,请检查网络、账号权限、binlog 文件及位置是否正确。

验证主从同步:

sql 复制代码
-- 在主库创建数据库
MariaDB [(none)]> create database qingqingcaoyuan;

-- 在从库查看(server2没创建也有了)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| qingqingcaoyuan    |
+--------------------+
4 rows in set (0.00 sec)

提示:主从复制成功后,在主库创建数据库或表的操作会自动同步到从库。这实现了数据冗余和读写分离的基础。生产环境中建议定期备份主库全量数据,避免仅依赖主从复制。


第二篇:项目实战 --- LAMP 博客平台 WordPress

项目概述

WordPress 是一款个人博客系统,并逐步演化成一款内容管理系统软件(CMS),使用 PHP 语言和 MySQL/MariaDB 数据库开发。用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客。

💡 提示:WordPress 是全球使用最广泛的 CMS 系统, powering 超过 40% 的互联网网站。LAMP 架构(Linux + Apache + MySQL/MariaDB + PHP)是部署 WordPress 的经典技术栈。

节点规划

节点名称 节点IP 节点功能
wordpress 10.1.8.10/24 LAMP

前提条件

用 CentOS 7 模板克隆一台 server。

基础配置

bash 复制代码
[root@localhost ~]# hostnamectl set-hostname wordpress
[root@localhost ~]# 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
[root@localhost ~]# nmcli connection up ens33

准备好 LAMP 环境

bash 复制代码
[root@wordpress ~]# wget -O /etc/yum.repos.d/epel.repo \
http://mirrors.aliyun.com/repo/epel-7.repo
[root@wordpress ~]# yum install -y mariadb-server mariadb php php-fpm php-mysqlnd \
php-gd php-mbstring php-xml httpd
[root@wordpress ~]# systemctl enable mariadb --now
[root@wordpress ~]# systemctl enable php-fpm --now
[root@wordpress ~]# systemctl enable httpd --now

提示

  • mariadb-server:数据库服务
  • php-fpm:PHP FastCGI 进程管理器,Apache 通过 mod_proxy_fcgi 与 PHP-FPM 交互
  • php-mysqlnd:PHP 连接 MySQL/MariaDB 的原生驱动
  • php-gd:图像处理库,WordPress 缩略图等功能依赖
  • php-mbstring:多字节字符串处理,支持中文等多字节字符
  • php-xml:XML 解析,WordPress 导入导出等功能依赖

准备数据库

bash 复制代码
# 安全初始化
[root@wordpress ~]# mysql_secure_installation

交互要点:

  1. 回车,无 root 密码
  2. 设置 root 密码 y
  3. 删除匿名用户 y
  4. 禁止 root 远程登录 n(项目常用选 n;安全服务器选 y)
  5. 删除 test 库 y
  6. 刷新权限 y
bash 复制代码
[root@wordpress ~]# mysql -u root -phuawei
sql 复制代码
MariaDB [(none)]> CREATE DATABASE wordpress;
MariaDB [(none)]> CREATE USER wordpress@localhost IDENTIFIED BY 'huawei';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

提示:为 WordPress 创建独立的数据库和用户,遵循最小权限原则。不要使用 root 用户连接数据库。

准备 WordPress

这里使用 wordpress-4.9.4 版本,该版本部署起来简单。

bash 复制代码
# 上传到 root 用户家目录
[root@wordpress ~]# unzip wordpress-4.9.4-zh_CN.zip
[root@wordpress ~]# cp -aR wordpress /var/www/html/
[root@wordpress ~]# chown -R apache:apache /var/www/html/wordpress/
[root@wordpress ~]# systemctl restart httpd

配置数据库

客户端登录 http://www.hyc.cloud/wordpress/

提示 :将 www.hyc.cloud 添加到本地 hosts 文件中,指向服务器 IP,即可在浏览器中访问。

方式一:网页端配置

访问 http://www.hyc.cloud/wordpress/,在网页中填写数据库名称(wordpress)、用户名(wordpress)、密码(huawei)、数据库主机(localhost),点击"提交"后点击"运行安装"。

方式二:手动配置文件

bash 复制代码
# 设置WordPress后端数据库
[root@wordpress ~]# cd /var/www/html/wordpress/
[root@wordpress ~]# cp wp-config-sample.php wp-config.php
[root@wordpress ~]# vim wp-config.php

更改如下四个参数:

php 复制代码
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'wordpress');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'huawei');
/** MySQL主机 */
define('DB_HOST', 'localhost');
/** WordPress数据表前缀 */
$table_prefix  = 'wp_';

提示$table_prefix 建议修改为自定义前缀,增加安全性,防止 SQL 注入攻击。

设置目录权限,确保 apache 用户可以创建文件:

bash 复制代码
[root@wordpress ~]# chown -R 755 /var/www/html/wordpress/

配置网站

在网页中填写站点标题、管理员用户名(hyc)、密码、邮箱等信息,点击"安装 WordPress"。

管理网站

安装完成后,使用创建的管理员账号登录 WordPress 后台:

  • 登录地址:http://www.hyc.cloud/wordpress/wp-admin
  • 用户名:hyc
  • 密码:您设定的密码

提示

  • 安装完成后建议立即修改默认密码,使用强密码
  • 定期更新 WordPress 核心、主题和插件到最新版本
  • 安装安全插件(如 Wordfence)增强防护
  • 定期备份网站文件和数据库

第三篇:项目实战 --- LNMP 电商平台 ECshop

项目概述

ECShop 是一款 B2C 独立商城系统,适用于企业搭建自己的网上商店。ECShop 多场景在线商城,支持商品管理、订单管理、会员管理、支付配送等功能。💡 提示:ECShop 早期由 ShopEx 开发,是国内经典的电商开源项目。LNMP 架构(Linux + Nginx + MySQL/MariaDB + PHP)相比 LAMP 在静态文件和并发处理上性能更优。

节点规划

节点名称 节点IP 节点功能
ecshop 10.1.8.10/24 LNMP

准备 LNMP 环境

准备 Nginx

bash 复制代码
[root@ecshop ~]# wget -O /etc/yum.repos.d/epel.repo \
http://mirrors.aliyun.com/repo/epel-7.repo
[root@ecshop ~]# yum install -y nginx
[root@ecshop ~]# systemctl enable nginx.service --now
[root@ecshop ~]# echo "Nginx Test Page" > /usr/share/nginx/html/index.html

准备 MariaDB

bash 复制代码
[root@ecshop ~]# yum install -y mariadb-server
[root@ecshop ~]# systemctl enable mariadb --now

安全初始化:

bash 复制代码
[root@ecshop ~]# mysql_secure_installation

交互要点:

  1. 回车,无 root 密码
  2. 设置 root 密码 y
  3. 删除匿名用户 y
  4. 禁止 root 远程登录 n(项目常用选 n)
  5. 删除 test 库 y
  6. 刷新权限 y

准备 PHP

bash 复制代码
[root@ecshop ~]# yum install -y php php-fpm php-mysqlnd php-gd php-mbstring php-xml

更改 php-fpm 用户配置:

bash 复制代码
# 更改以下两条记录
# user = apache
user = nginx
# group = apache
group = nginx
[root@ecshop ~]# systemctl enable php-fpm.service --now

提示 :LAMP 架构中 php-fpm 运行用户为 apache,而 LNMP 架构中 Nginx 运行用户为 nginx,因此需要将 php-fpm 的运行用户也改为 nginx,确保文件读写权限一致。

客户端测试 PHP 是否正常工作:

bash 复制代码
[root@ecshop ~]# echo "<?php echo 'PHP Test Page'.\"\\n\"; ?>" > \
/usr/share/nginx/html/test.php

浏览器访问 http://服务器IP/test.php,应显示 "PHP Test Page"。

配置 Nginx 虚拟主机

bash 复制代码
[root@ecshop ~]# vim /etc/nginx/conf.d/vhost-shop.hyc.cloud.conf
nginx 复制代码
server {
    listen       80;
    listen       [::]:80;
    server_name  shop.hyc.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;
    }
}
bash 复制代码
[root@ecshop ~]# systemctl restart nginx

提示

  • server_name 设置为 shop.hyc.cloud,需要在本地 hosts 文件中添加 10.1.8.10 shop.hyc.cloud
  • fastcgi_pass 127.0.0.1:9000 将 PHP 请求转发给 php-fpm 处理
  • fastcgi_param SCRIPT_FILENAME 确保 PHP 能正确获取脚本的绝对路径

准备数据库

bash 复制代码
[root@ecshop ~]# mysql -u root -phuawei
sql 复制代码
MariaDB [(none)]> CREATE DATABASE ecshop;
MariaDB [(none)]> CREATE USER ecshop@localhost IDENTIFIED BY 'huawei';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ecshop.* TO ecshop@localhost;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

准备 ECshop 站点

准备 ecshop 站点数据文件,这里使用 ECShop_V4.1.20 版本。

bash 复制代码
# 上传到 root 用户家目录
[root@ecshop ~]# unzip ECShop_V4.1.20_UTF8.zip
[root@ecshop ~]# mv /usr/share/nginx/html/ /usr/share/nginx/html.ori
[root@ecshop ~]# cp -a ECShop_V4.1.20_UTF8_release20250416/source/ecshop \
/usr/share/nginx/html
[root@ecshop ~]# chown nginx:nginx -R /usr/share/nginx/html

安装站点需要的各种扩展包:

bash 复制代码
[root@ecshop ~]# yum install -y php-gd php-common php-pear php-mbstring \
php-mcrypt php-mysqlnd
[root@ecshop ~]# chown nginx:nginx -R /var/lib/php/
[root@ecshop ~]# systemctl restart nginx php-fpm

提示

  • php-gd:图像处理,商品图片缩略图生成
  • php-mbstring:多字节字符串处理,支持中文
  • php-mcrypt:加密扩展,ECShop 部分功能依赖
  • php-mysqlnd:MySQL 连接驱动
  • 部署后务必删除 install 目录,防止被恶意访问

ECshop 配置

客户端登录 http://shop.hyc.cloud

  1. 勾选协议,点击下一步:配置安装环境
  2. 点击下一步:配置系统
    • 页面上方出现的 Warning,提示使用系统时区不安全,暂时忽略
    • 输入数据库账户信息后,点击搜索,选中搜索到的数据库
    • 时区选择亚洲,中国,上海,点击立即安装
  3. 激活系统,享受更多服务。不激活也可以使用。

ECshop 访问

  • 商城首页:http://shop.hyc.cloud
  • 商城管理后台:http://shop.hyc.cloud/admin

提示

  • 首次登录后台使用安装时设置的管理员账号
  • 默认管理员账号为 admin,建议安装后立即修改密码
  • 商店基本信息(名称、地址、配送方式、支付方式等)可在后台"开店向导"中配置
  • 建议配置 SSL 证书,启用 HTTPS 保障交易安全
  • 定期备份商城数据库和文件

相关推荐
李小白661 小时前
1-Shell编程和网络服务介绍
运维·云计算
yuhaiqun19893 小时前
AI往哪长|云计算·边缘计算·世界模型·空间智能·具身智能一次讲透
人工智能·云计算·边缘计算·具身智能·世界模型·空间智能
测试运维日常笔记4 小时前
AWS EKS 集群部署与清理手顺
云计算·aws
AKAMAI14 小时前
2026年Gartner Peer Insights 边缘分布平台客户之声将Akamai评为客户之选
人工智能·云计算
故乡dee云18 小时前
AWS 产品太多不会选?按“网站、数据库、文件、日志”4 类需求快速匹配
数据库·云计算·aws
yunlaodacom1 天前
腾讯云国际站注册:云防火墙外联告警频发?Linux异常连接与恶意进程溯源全指南
云计算·腾讯云·云防火墙
聚搜云——JuSouClouD1 天前
深圳阿里云代理商:云主机性能下滑 诊断优化实战分享
阿里云·云计算
骇客野人2 天前
阿里云运维手册(通用生产版|云上运维标准化文档)
运维·阿里云·云计算
Benszen3 天前
云计算基础-13:Linux网络管理实战-1
linux·运维·云计算