RHCE 【在openEuler系统中搭建基本论坛(网站)】
目录
网站需求:
准备工作:
1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!!
测试:
2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于[www.openlab.com/student](http://www.openlab.com/student) 网站访问学生信息,[www.openlab.com/data](http://www.openlab.com/data)网站访问教学资料[www.openlab.com/money网站访问缴费网站](http://www.openlab.com/money网站访问缴费网站)。
测试(基于客户端):
3.相关要求
(1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。
(2)访问缴费网站实现数据加密基于https访问。
测试:
架设一台NFS服务器,并按照以下要求配置
服务端以及客户端的准备工作:
2、开放/nfs/upload目录,为192.168.xxx.0/24网段主机可以上传目录, 并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210
3、将/home/tom目录仅共享给192.168.xxx.xxx这台主机,并只有用户tom可以完全访问该目录
网站需求:
1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!!
2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于[www.openlab.com/student](http://www.openlab.com/student) 网站访问学生信息,[www.openlab.com/data](http://www.openlab.com/data)网站访问教学资料
[www.openlab.com/money网站访问缴费网站](http://www.openlab.com/money网站访问缴费网站)。
3.要求 (1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。
(2)访问缴费网站实现数据加密基于https访问。
架设一台NFS服务器,并按照以下要求配置
1、开放/nfs/shared目录,供所有用户查询资料
2、开放/nfs/upload目录,为192.168.xxx.0/24网段主机可以上传目录,
并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210
3、将/home/tom目录仅共享给192.168.xxx.xxx这台主机,并只有用户tom可以完全访问该目录
准备工作:
#关闭防火墙,外面才可以访问Linux虚拟机上的服务。
[root@server ~]# systemctl stop firewalld#设置SELinux 成为permissive模式 临时关闭selinux防火墙
[root@server ~]# setenforce 0
[root@server ~]# getenforce
Permissive#openEuler系统自带yum源,安装好httpd
[root@server ~]# yum install httpd -y#安装nginx
[root@server ~]# yum install nginx -y#启动httpd服务
[root@server ~]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.#添加ip,并重启网络配置
[root@server ~]# nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.88.132/24 ipv4.gateway 192.168.88.2 ipv4.dns 114.114.114.114 +ipv4.addresses 192.168.88.133/24[root@server ~]# nmcli connection up ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!!
#使用vim编辑test_httpd.conf文件
[root@server ~]# vim /etc/nginx/conf.d/test_httpd.confserver {listen 192.168.88.132:80;root /www/name/openlab; #主页存放路径server_name www.openlab.com; #服务名location / { index index.html; #配置/www/name/openlab下的资源文件}
}#创建目录
[root@server ~]# mkdir /www/name/openlab/ -pv
mkdir: 已创建目录 '/www'
mkdir: 已创建目录 '/www/name'
mkdir: 已创建目录 '/www/name/openlab/'#将要输出的内容写入其中
[root@server ~]# echo welcome to openlab > /www/name/openlab/index.html#重启nginx服务
[root@server ~]# systemctl restart nginx
测试:
#编辑hosts文件使其客户端能够访问到相应的网站
[root@client ~]# vim /etc/hosts# Loopback entries; do not change.
# For historical reasons, localhost precedes localhost.localdomain:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# See hosts(5) for proper format and other examples:
# 192.168.1.10 foo.mydomain.org foo
# 192.168.1.13 bar.mydomain.org bar192.168.88.132 www.openlab.com#进行测试
[root@client ~]# curl http://www.openlab.com
welcome to openlab
2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于[www.openlab.com/student](http://www.openlab.com/student) 网站访问学生信息,[www.openlab.com/data](http://www.openlab.com/data)网站访问教学资料[www.openlab.com/money网站访问缴费网站](http://www.openlab.com/money网站访问缴费网站)。
#使用vim编辑test_httpd.conf文件
[root@server ~]# vim /etc/nginx/conf.d/test_httpd.confserver {listen 192.168.88.132:80;root /www/name/openlab/student;server_name www.openlab.com/student;location / {index index.html;}
}server {listen 192.168.88.132:80;root /www/name/openlab/data;server_name www.openlab.com/data;location / {index index.html;}
}server {listen 192.168.88.132:80;root /www/name/openlab/money;server_name www.openlab.com/money;location / {index index.html;}
}#创建其子目录
[root@server ~]# mkdir /www/name/openlab/{student,date,money} -pv#将要输出的内容写入其中
[root@server ~]# echo 学生信息网 > /www/name/openlab/student/index.html
[root@server ~]# echo 教学资源网 > /www/name/openlab/date/index.html
[root@server ~]# echo 缴费网 > /www/name/openlab/money/index.html#重启nginx服务
[root@server ~]# systemctl restart nginx
测试(基于客户端):
#编辑hosts文件使其客户端能够访问到相应的网站
[root@client ~]# vim /etc/hosts# Loopback entries; do not change.
# For historical reasons, localhost precedes localhost.localdomain:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# See hosts(5) for proper format and other examples:
# 192.168.1.10 foo.mydomain.org foo
# 192.168.1.13 bar.mydomain.org bar192.168.88.132 www.openlab.com
192.168.88.132 www.openlab.com/student
192.168.88.132 www.openlab.com/data
192.168.88.132 www.openlab.com/money#进行测试
[root@client ~]# curl http://www.openlab.com/student/
学生信息网
[root@client ~]# curl http://www.openlab.com/date/
教学资源网
[root@client ~]# curl http://www.openlab.com/money/
缴费网
3.相关要求
(1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。
#修改配置文件
[root@server ~]# vim /etc/nginx/conf.d/test_httpd.confserver {listen 192.168.88.132:80;root /www/name/openlab/student;server_name www.openlab.com/student;location / {index index.html;auth_basic on;auth_basic_user_file /etc/nginx/users;}
}#用户管理
[root@server ~]# htpasswd -c /etc/nginx/users song
New password:
Re-type new password:
Adding password for user song
[root@server ~]# htpasswd -c /etc/nginx/users tian
New password:
Re-type new password:
Adding password for user tian#重启nginx配置
[root@server ~]# systemctl restart nginx
(2)访问缴费网站实现数据加密基于https访问。
#修改相关配置文件
[root@server ~]# vim /etc/nginx/conf.d/test_https.confserver {listen 192.168.88.132:443 ssl;root /www/name/openlab/money/;server_name www.openlab.com/money;ssl_certificate /etc/pki/tls/certs/openlab.crt;ssl_certificate_key /etc/pki/tls/private/openlab.key;location / {index index.html;}
}#设置其访问时需要https(使用ca加密)
[root@server ~]# openssl req -utf8 -new -key openlab.key -x509 -days 365 -out openlab.crt
Could not read private key from openlab.key
[root@server ~]# openssl genrsa -out /etc/pki/tls/private/openlab.key
[root@server ~]# openssl req -utf8 -new -key /etc/pki/tls/private/openlab.key -x509 -days 365 -out /etc/pki/tls/certs/openlab.crtYou are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:86
State or Province Name (full name) [Some-State]:sichuan
Locality Name (eg, city) []:chengdu
Organization Name (eg, company) [Internet Widgits Pty Ltd]:cdcas
Organizational Unit Name (eg, section) []:xinggong
Common Name (e.g. server FQDN or YOUR name) []:gxc
Email Address []:admin#重启nginx配置
[root@server ~]# systemctl restart nginx
测试:
[root@client ~]# curl https://192.168.88.132 -k
缴费网
架设一台NFS服务器,并按照以下要求配置
服务端以及客户端的准备工作:
#安装nfs配置相应的包
[root@server ~]# yum install rpcbind -y
[root@server ~]# yum install nfs-utils -y#关闭防火墙,外面才可以访问Linux虚拟机上的服务。
[root@server ~]# systemctl stop firewalld#设置SELinux 成为permissive模式 临时关闭selinux防火墙
[root@server ~]# setenforce 0
[root@server ~]# getenforce
Permissive
1、开放/nfs/shared目录,供所有用户查询资料
服务端配置:
#创建目录
[root@server ~]# mkdir /nfs/shared -pv
mkdir: 已创建目录 '/nfs'
mkdir: 已创建目录 '/nfs/shared'#创建10个文件
[root@server ~]# touch /nfs/shared/{1..10}#编辑配置文件
[root@server ~]# vim /etc/exports
/nfs/shared *(ro) #任何用户都可以访问客户端配置:
#创建对应目录
[root@client ~]# mkdir /nfs/shared -pv#挂载对应文件
[root@client ~]# mount 192.168.88.132:/nfs/shared /nfs/shared#验证相应的文件是否挂载成功
[root@client ~]# ll /nfs/shared
总计 0
-rw-r--r--. 1 root root 0 1月11日 03:33 1
-rw-r--r--. 1 root root 0 1月11日 03:33 10
-rw-r--r--. 1 root root 0 1月11日 03:33 2
-rw-r--r--. 1 root root 0 1月11日 03:33 3
-rw-r--r--. 1 root root 0 1月11日 03:33 4
-rw-r--r--. 1 root root 0 1月11日 03:33 5
-rw-r--r--. 1 root root 0 1月11日 03:33 6
-rw-r--r--. 1 root root 0 1月11日 03:33 7
-rw-r--r--. 1 root root 0 1月11日 03:33 8
-rw-r--r--. 1 root root 0 1月11日 03:33 9
2、开放/nfs/upload目录,为192.168.xxx.0/24网段主机可以上传目录, 并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210
服务端配置:
#创建目录
[root@server ~]# mkdir /nfs/upload -pv
mkdir: 已创建目录 '/nfs/upload'#创建5个文件
[root@server ~]# touch /nfs/shared/{1..5}#编辑文件
[root@server ~]# vim /etc/exports
/nfs/shared *(ro)
/nfs/upload 192.168.0.0/24(rw,nfs-upload_squash,anonuid=210,anongid=210)
#,为192.168.xxx.0/24网段主机可以上传目录, 并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210客户端配置:
#创建对应文件
[root@client ~]# mkdir /nfs/upload -pv#挂载对应文件
[root@client ~]# mount 192.168.88.132:/nfs/upload /nfs/upload #查看是否挂载成功
[root@client ~]# ll /nfs/upload
总计 0
-rw-r--r--. 1 root root 0 1月11日 03:53 1
-rw-r--r--. 1 root root 0 1月11日 03:53 2
-rw-r--r--. 1 root root 0 1月11日 03:53 3
-rw-r--r--. 1 root root 0 1月11日 03:53 4
-rw-r--r--. 1 root root 0 1月11日 03:53 5#测试写入功能
[root@client ~]# ll /nfs/upload
总计 0
-rw-r--r--. 1 root root 0 1月11日 03:53 1
-rw-r--r--. 1 root root 0 1月11日 03:53 2
-rw-r--r--. 1 root root 0 1月11日 03:53 3
-rw-r--r--. 1 root root 0 1月11日 03:53 4
-rw-r--r--. 1 root root 0 1月11日 03:53 5
-rw-r--r--. 1 root root 0 1月11日 04:15 6
3、将/home/tom目录仅共享给192.168.xxx.xxx这台主机,并只有用户tom可以完全访问该目录
服务端配置:
#创建相关目录
[root@server ~]# mkdir /home/tom -pv
mkdir: 已创建目录 '/home/tom'#创建10个文件
[root@server ~]# touch /home/tom/{1..10}#编辑配置文件
[root@server ~]# vim /etc/exports/nfs/shared *(ro)
/nfs/upload 192.168.0.0/24(rw,nfs-upload_squash,anonuid=210,anongid=210)
/home/tom 192.168.0.0/24(ro,no_all_squash,anonuid=tom,anongid=tom)
#仅共享给192.168.xxx.xxx这台主机,并只有用户tom可以完全访问该目录客户端配置:
#创建对应目录
[root@client ~]# mkdir /home/tom -pv#挂载对应目录
[root@client ~]# mount 192.168.88.132:/home/tom /home/tom#验证是否挂载成功
[root@client ~]# ll /home/tom
总计 0
-rw-r--r--. 1 root root 0 1月11日 04:21 1
-rw-r--r--. 1 root root 0 1月11日 04:21 10
-rw-r--r--. 1 root root 0 1月11日 04:21 2
-rw-r--r--. 1 root root 0 1月11日 04:21 3
-rw-r--r--. 1 root root 0 1月11日 04:21 4
-rw-r--r--. 1 root root 0 1月11日 04:21 5
-rw-r--r--. 1 root root 0 1月11日 04:21 6
-rw-r--r--. 1 root root 0 1月11日 04:21 7
-rw-r--r--. 1 root root 0 1月11日 04:21 8
-rw-r--r--. 1 root root 0 1月11日 04:21 9
相关文章:
RHCE 【在openEuler系统中搭建基本论坛(网站)】
目录 网站需求: 准备工作: 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! 测试: 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于[www.openla…...
20240112让移远mini-PCIE接口的4G模块EC20在Firefly的AIO-3399J开发板的Android11下跑通【DTS部分】
20240112让移远mini-PCIE接口的4G模块EC20在Firefly的AIO-3399J开发板的Android11下跑通【DTS部分】 2024/1/12 16:20 https://blog.csdn.net/u010164190/article/details/79096345 [Android6.0][RK3399] PCIe 接口 4G模块 EC20 调试记录 https://blog.csdn.net/hnjztyx/artic…...
日志采集传输框架之 Flume,将监听端口数据发送至Kafka
1、简介 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传 输的系统。Flume 基于流式架构,主要有以下几个部分组成。 主要组件介绍: 1)、Flume Agent 是一个 JVM 进程…...
关于Vue前端接口对接的思考
关于Vue前端接口对接的思考 目录概述需求: 设计思路实现思路分析1.vue 组件分类和获取数值的方式2.http 通信方式 分类 如何对接3.vue 组件分类和赋值方式, 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your p…...
【设计模式之美】SOLID 原则之三:里式替换(LSP)跟多态有何区别?如何理解LSP中子类遵守父类的约定
文章目录 一. 如何理解“里式替换原则”?二. 哪些代码明显违背了 LSP?三. 回顾 一. 如何理解“里式替换原则”? 子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。 里氏替换原则…...
代码随想录第六十三天——被围绕的区域,太平洋大西洋水流问题,最大人工岛
leetcode 130. 被围绕的区域 题目链接:被围绕的区域 步骤一:深搜或者广搜将地图周边的’O’全部改成’A’ 步骤二:遍历地图,将’O’全部改成’X’,将’A’改回’O’ class Solution { private:int dir[4][2] {-1, 0…...
Docker 项目如何使用 Dockerfile 构建镜像?
1、Docker 和 Dockerfile 的重要性 1.1、Docker 简介:讲述 Docker 的起源、它是如何革新现代软件开发的,以及它为开发者和运维团队带来的好处。重点强调 Docker 的轻量级特性和它在提高应用部署、扩展和隔离方面的优势。 本文已收录于,我的…...
实践学习PaddleScience飞桨科学工具包
实践学习PaddleScience飞桨科学工具包 动手实践,在实践中学习!本项目可以在AIStudio平台一键运行!地址:https://aistudio.baidu.com/projectdetail/4278591 本项目第一次执行会报错,再执行一次即可。若碰到莫名其妙的…...
Vue 中修改 Element 组件的 下拉菜单(Dropdown) 的样式
Vue 中修改 Element 组件的 下拉菜单(Dropdown) 的样式 今天在项目中碰到一个 UI 改造的需求,需要根据设计图把页面升级成 UI 设计师提供的设计图样式。 到最后页面改造完了,但是 UI 提供的下拉菜单样式全部是黑色半透明的,只能硬着头皮改了。…...
达梦数据库主备集群
1:服务器硬件需求 按实际业务需求,选择合适的服务器,准备 3 台服务器,一台主库服务器,一台备库服务器,一台监视器服务器,服务器参数建议如下: 硬件要求物理内存>16 GB交换区Swa…...
Spark Doris Connector 可以支持通过 Spark 读取 Doris 数据类型不兼容报错解决
1、版本介绍: doris版本: 1.2.8Spark Connector for Apache Doris 版本: spark-doris-connector-3.3_2.12-1.3.0.jar:1.3.0-SNAPSHOTspark版本:spark-3.3.1 2、Spark Doris Connector Spark Doris Connector - Apache Doris 目…...
深入理解 go chan
go 里面,在实际程序运行的过程中,往往会有很多协程在执行,通过启动多个协程的方式,我们可以更高效地利用系统资源。 而不同协程之间往往需要进行通信,不同于以往多线程程序的那种通信方式,在 go 里面是通过…...
java+vue基于Spring Boot的渔船出海及海货统计系统
该渔船出海及海货统计系统采用B/S架构、前后端分离进行设计,并采用java语言以及springboot框架进行开发。该系统主要设计并完成了管理过程中的用户注册登录、个人信息修改、用户信息、渔船信息、渔船航班、海货价格、渔船海货、非法举报、渔船黑名单等功能。该系统操…...
Linux第25步_在虚拟机中备份“ST官方的TF-A源码”
TF-A是ARM公司提供的,ST公司通过修改它,做了一个自己的TF-A代码。因为在后期开发中,若硬件被改变了,我们需要通过修改"ST官方的TF-A源码"就可以自己的TF-A代码了。为了防止源文件被误改了,我们需要将"S…...
统计学-R语言-4.1
文章目录 前言编写R函数图形的控制和布局par函数layout函数 练习 前言 安装完R软件之后就可以对其进行代码的编写了。 编写R函数 如果对数据分析有些特殊需要,已有的R包或函数不能满足,可以在R中编写自己的函数。函数的定义格式如下所示: …...
C++(1) —— 基础语法入门
目录 一、C初识 1.1 第一个C程序 1.2 注释 1.3 变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 二、数据类型 2.1 整型 2.2 sizeof 关键字 2.3 实型(浮点型) 2.4 字符型 2.5 转义字符 2.6 字符串型 2.7 布尔类型 bool 2.8 数据的输入 三…...
构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的支持63个常见模块的PHP8.1.20的RPM包
本文适用:rhel8系列,或同类系统(CentOS8,AlmaLinux8,RockyLinux8等) 文档形成时期:2023年 因系统版本不同,构建部署应略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…...
Vue-插槽(Slots)
1. 介绍 在Vue.js中,插槽是一种强大的功能,它允许你创建可重用的模板,并在使用该模板的多个地方插入自定义内容。 插槽为你提供了一种方式,可以在父组件中定义一些“插槽”,然后在子组件中使用这些插槽,插…...
新火种AI|GPT-5前瞻!GPT-5将具备哪些新能力?
作者:小岩 编辑:彩云 Sam Altman在整个AI领域,乃至整个科技领域都被看作是极具影响力的存在,而2023年OpenAI无限反转的宫斗事件更是让Sam Altman刷足了存在感,他甚至被《时代》杂志评为“2023年度CEO”。 也正因此&…...
安防视频监控系统EasyCVR设备分组中在线/离线数量统计的开发与实现
安防视频监控EasyCVR系统具备较强的兼容性,它可以支持国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。EasyCVR平台可覆盖多类型的设备接入&am…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
