LNMP_LAMP_项目实战教程

LNMP/LAMP 项目实战教程

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


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

环境准备

主机名IP地址
mariadb-server10.1.8.10/24
mariadb-client10.1.8.11/24

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

一、安装

基础配置

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

# 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
# CentOS7 yum安装
[root@mariadb-server ~]# yum install -y mariadb mariadb-server

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

# 查看状态
systemctl status mariadb

安全初始化(必做)

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

[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. 库操作

# 本地登录
[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)。

-- 查看所有数据库
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. 表操作

-- 查看当前库所有表
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(查询)四种基本操作。

-- 插入
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. 用户与权限

-- 创建用户,允许本地登录
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

修改配置后重启服务:

systemctl restart mariadb

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

firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

常用配置参数说明:

[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-server110.1.8.10/24主库(Master)
mariadb-server210.1.8.11/24从库(Slave)

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

# 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
# CentOS7 yum安装(两台均执行)
yum install -y mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb

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

mysql_secure_installation

交互要点:

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

主库配置(mariadb-server1)

[root@mariadb-server1 ~]# vim /etc/my.cnf

[mysqld] 下添加:

[mysqld]
# 添加两行
server-id=1
log_bin=mysql-bin

重启服务:

[root@mariadb-server1 ~]# systemctl restart mariadb.service

创建复制账号:

[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)

[root@mariadb-server2 ~]# vim /etc/my.cnf

[mysqld] 下添加:

[mysqld]
# 添加两行
server-id=2
relay_log=mysql-relay-bin

重启服务:

[root@mariadb-server2 ~]# systemctl restart mariadb.service

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

[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;

查看从库同步状态:

MariaDB [(none)]> show slave status\G

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

验证主从同步:

-- 在主库创建数据库
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节点功能
wordpress10.1.8.10/24LAMP

前提条件

用 CentOS 7 模板克隆一台 server。

基础配置

[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 环境

[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 导入导出等功能依赖

准备数据库

# 安全初始化
[root@wordpress ~]# mysql_secure_installation

交互要点:

  1. 回车,无 root 密码
  2. 设置 root 密码 y
  3. 删除匿名用户 y
  4. 禁止 root 远程登录 n(项目常用选 n;安全服务器选 y)
  5. 删除 test 库 y
  6. 刷新权限 y
[root@wordpress ~]# mysql -u root -phuawei
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 版本,该版本部署起来简单。

# 上传到 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),点击"提交"后点击"运行安装"。

方式二:手动配置文件

# 设置WordPress后端数据库
[root@wordpress ~]# cd /var/www/html/wordpress/
[root@wordpress ~]# cp wp-config-sample.php wp-config.php
[root@wordpress ~]# vim wp-config.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 用户可以创建文件:

[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节点功能
ecshop10.1.8.10/24LNMP

准备 LNMP 环境

准备 Nginx

[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

[root@ecshop ~]# yum install -y mariadb-server
[root@ecshop ~]# systemctl enable mariadb --now

安全初始化:

[root@ecshop ~]# mysql_secure_installation

交互要点:

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

准备 PHP

[root@ecshop ~]# yum install -y php php-fpm php-mysqlnd php-gd php-mbstring php-xml

更改 php-fpm 用户配置:

# 更改以下两条记录
# 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 是否正常工作:

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

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

配置 Nginx 虚拟主机

[root@ecshop ~]# vim /etc/nginx/conf.d/vhost-shop.hyc.cloud.conf
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;
    }
}
[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 能正确获取脚本的绝对路径

准备数据库

[root@ecshop ~]# mysql -u root -phuawei
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 版本。

# 上传到 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

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

[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 保障交易安全
  • 定期备份商城数据库和文件

考虑阶梯碳交易 - 绿证联合机制的虚拟电厂多时间尺度优化调度研究(Matlab代码实现)内容概要:本文研究了考虑阶梯碳交易与绿证联合机制的虚拟电厂多时间尺度优化调度问题,并提供了基于Matlab的代码实现。研究构建了涵盖电能、碳排放权及绿色证书多重市场机制的综合调度模型,通过多时间尺度(如日前、日内、实时)协调优化虚拟电厂内部多种分布式能源(如风电、光伏、储能、可控负荷等)的出力计划,旨在实现经济收益最大化与碳排放最小化的双重目标。文中详细阐述了阶梯碳交易机制的设计,即碳排放成本随排放量增加呈阶梯式上升,激励更深层次减排;同时融合绿证交易机制,促进可再生能源消纳。通过算例仿真验证了所提模型在降低成本、减少碳排放和提升可再生能源利用率方面的有效性。; 适合人群:具备电力系统、能源经济或优化理论基础,从事综合能源系统、虚拟电厂、碳交易机制等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习和复现考虑复杂市场机制(阶梯碳价+绿证)的虚拟电厂优化调度模型;② 研究多时间尺度协调优化算法在能源系统中的应用;③ 获取Matlab代码实现,用于教学演示、科研验证或进一步开发。; 阅读建议:读者应结合文中模型公式与提供的Matlab代码对照学习,重点关注目标函数和约束条件的代码实现逻辑,建议自行调整参数和场景进行仿真,以深入理解阶梯碳交易和绿证机制对调度结果的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值