Day396.环境搭建 -谷粒商城
Posted 阿昌喜欢吃黄桃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day396.环境搭建 -谷粒商城相关的知识,希望对你有一定的参考价值。
一、环境搭建
这里可使用VMWare
,也可以使用VirtualBox
,以下以VirtualBox为例子:
1、安装 linux 虚拟机
- 下载&安装 VirtualBox , 要开启
CPU 虚拟化
https://www.virtualbox.org/
— 官方
-
下载&安装 Vagrant
- https://app.vagrantup.com/boxes/search Vagrant 官方镜像仓库
- https://www.vagrantup.com/downloads.html Vagrant 下载
-
打开 window cmd 窗口,运行 Vagrant init centos/7,即可初始化一个 centos7 系统
Vagrant init centos/7
-
运行 vagrant up 即可启动虚拟机。系统 root 用户的密码是 vagrant
vagrant up
-
vagrant 其他常用命令
-
vagrant ssh:
自动使用 vagrant 用户
连接虚拟机
。 -
vagrant upload source [destination] [name|id]:
上传文件
-
https://www.vagrantup.com/docs/cli/init.html Vagrant 命令行
-
-
默认虚拟机的 ip 地址不是固定 ip,开发不方便
-
Vagrantfile文件一般会生成在用户文件夹下如:
C:\\Users\\PePe
下 -
修改 Vagrantfile,ip的设定根据如何ipconfig来对应虚拟机的ip地址范围
config.vm.network "private_network", ip: "192.168.56.10"
-
这里的 ip 需要在物理机下使用 ipconfig 命令找到
-
改为这个指定的子网地址
重新使用 vagrant up 启动机器即可。然后再 vagrant ssh 连接机器
-
默认只允许 ssh 登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录
Vagrant ssh # 进去系统之后 vi /etc/ssh/sshd_config 修改 PasswordAuthentication yes/no service sshd restart # 重启服务
- 以后可以使用提供的 ssh 连接工具直接连接
注意:VirtualBox 会与包括但不限于如下软件冲突,需要卸载这些软件,然后重启电脑;
冲突的软件:红蜘蛛,360,净网大师(有可能)等
-
-
修改 linux 的 yum 源
-
备份原 yum 源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
-
使用新 yum 源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
-
生成缓存
yum makecache
-
2、安装 docker
Docker 安装文档:
https://docs.docker.com/install/linux/docker-ce/centos/
-
卸载系统之前的 docker
sudo yum remove docker \\ docker-client \\ docker-client-latest \\ docker-common \\ docker-latest \\ docker-latest-logrotate \\ docker-logrotate \\ docker-engine
-
安装 Docker-CE
-
安装必须的依赖
sudo yum install -y yum-utils \\ device-mapper-persistent-data \\ lvm2
-
设置 docker repo 的 yum 位置
sudo yum-config-manager \\ --add-repo \\ https://download.docker.com/linux/centos/docker-ce.repo
-
安装 docker,以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io
-
-
启动 docker
sudo systemctl start docker
-
设置 docker 开机自启
sudo systemctl enable docker
-
测试 docker 常用命令,注意切换到 root 用户下
https://docs.docker.com/engine/reference/commandline/docker/
-
配置 docker 镜像加速
-
阿里云,容器镜像服务
针对 Docker 客户端版本大于 1.10.0 的用户
可以通过修改 daemon 配置文件
/etc/docker/daemon.json
来使用加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
-
-
查询镜像
docker images
-
查询容器
docker ps
3、docker 安装 mysql
-
下载镜像文件
docker pull mysql:5.7
-
创建实例并启动
docker run -p 3306:3306 --name mysql \\ -v /mydata/mysql/log:/var/log/mysql \\ -v /mydata/mysql/data:/var/lib/mysql \\ -v /mydata/mysql/conf:/etc/mysql \\ -e MYSQL_ROOT_PASSWORD=root \\ -d mysql:5.7
-
参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-
MySQL 配置
vi /mydata/mysql/conf/my.cnf
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve #跳过域名解析
-
解决 MySQL 连接慢的问题
#在配置文件中加入如下,并重启 mysql [mysqld] skip-name-resolve #skip-name-resolve:跳过域名解析
-
重启容器
docker ps -a #查看所有的containners
docker restart 容器id #重启容器
-
-
通过容器的 mysql 命令行工具连接
docker exec -it mysql mysql -uroot -proot
- 通过sqlyog连接
- 设置 root 远程访问
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
- 进入容器文件系统
docker exec -it mysql /bin/bash
- 退出容器
exit
4、docker 安装 redis
- 下载镜像文件
docker pull redis
- 创建实例并启动
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
#启动容器并内外映射
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \\
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \\
-d redis redis-server /etc/redis/redis.conf
redis 自描述文件:https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf
- 使用 redis 镜像执行 redis-cli 命令连接
docker exec -it redis redis-cli
- 设置虚拟机重启后,会自动开启以上服务
sudo docker update mysql(服务名) --restart=always
---
## 5、开发环境统一
### ①Maven
apache-maven-3.3.9\\conf\\settings
```xml
<!--配置阿里云镜像-->
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<!--配置 jdk1.8 编译项目-->
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
②Idea&VsCode
-
idea 安装
lombok
、mybatisx
插件 -
Vscode 安装开发必备插件
- Vetur —— 语法高亮、智能感知、Emmet 等包含格式化功能, Alt+Shift+F (格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个 Ctrl需要同时按着)
- EsLint —— 语法纠错
- Auto Close Tag —— 自动闭合 HTML/XML 标签
- Auto Rename Tag —— 自动完成另一侧标签的同步修改
- javascript(ES6) code snippets — — ES6 语 法 智 能 提 示 以 及 快 速 输 入 , 除 js 外 还 支持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含 js 代码文件的时间
- HTML CSS Support —— 让 html 标签上写 class 智能提示当前项目所支持的样式
- HTML Snippets —— html 快速自动补全
- Open in browser —— 浏览器快速打开
- Live Server —— 以内嵌服务器方式打开
- Chinese (Simplified) Language Pack for Visual Studio Code —— 中文语言包
③ 安装配置 git
-
下载 git
https://git-scm.com
-
配置 git,进入
git bash
# 配置用户名 git config --global user.name "username" #(名字) # 配置邮箱 git config --global user.email "username@email.com" #(注册账号时用的邮箱)
-
配置 ssh 免密登录
https://gitee.com/help/articles/4181#article-header0
进入 git bash;使用:
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
命令。连续三次回车。
一般用户目录(C:\\Users\\PePe\\.ssh
)下会有或者
cat ~/.ssh/id_rsa.pub
登录进入 gitee,在设置里面找到 SSH KEY 将.pub文件的内容
粘贴进去使用
ssh -T git@gitee.com
测试是否成功即可Git+码云教程 https://gitee.com/help/articles/4104
6、创建项目微服务
- 从 gitee 初始化一个项目
商品服务、仓储服务、订单服务、优惠券服务、用户服务
-
共同:
- web、openfeign
- 每一个服务,包名 com.achang.achangmall.xxx(product/order/ware/coupon/member)
- 模块名:achangmall-coupon
-
创建各个微服务项目
- 了解人人开源项目,快速搭建后台脚手架
- 修改代码调整为我们的业务逻辑
- 创建各个微服务以及数据库
-
进行git提交忽略,在
.gitignore
文件中
**/mvnw.*
**/mvnw
**/mvnw.cmd
**/.mvn
**/target/
**/.gitignore
- 进行提交上传操作后
7、初始化数据库
- achangmall-oms.sql
drop table if exists oms_order;
drop table if exists oms_order_item;
drop table if exists oms_order_operate_history;
drop table if exists oms_order_return_apply;
drop table if exists oms_order_return_reason;
drop table if exists oms_order_setting;
drop table if exists oms_payment_info;
drop table if exists oms_refund_info;
/*==============================================================*/
/* Table: oms_order */
/*==============================================================*/
create table oms_order
(
id bigint not null auto_increment comment 'id',
member_id bigint comment 'member_id',
order_sn char(32) comment '订单号',
coupon_id bigint comment '使用的优惠券',
create_time datetime comment 'create_time',
member_username varchar(200) comment '用户名',
total_amount decimal(18,4) comment '订单总额',
pay_amount decimal(18,4) comment '应付总额',
freight_amount decimal(18,4) comment '运费金额',
promotion_amount decimal(18,4) comment '促销优化金额(促销价、满减、阶梯价)',
integration_amount decimal(18,4) comment '积分抵扣金额',
coupon_amount decimal(18,4) comment '优惠券抵扣金额',
discount_amount decimal(18,4) comment '后台调整订单使用的折扣金额',
pay_type tinyint comment '支付方式【1->支付宝;2->微信;3->银联; 4->货到付款;】',
source_type tinyint comment '订单来源[0->PC订单;1->app订单]',
status tinyint comment '订单状态【0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单】',
delivery_company varchar(64) comment '物流公司(配送方式)',
delivery_sn varchar(64) comment '物流单号',
auto_confirm_day int comment '自动确认时间(天)',
integration int comment '可以获得的积分',
growth int comment '可以获得的成长值',
bill_type tinyint comment '发票类型[0->不开发票;1->电子发票;2->纸质发票]',
bill_header varchar(255) comment '发票抬头',
bill_content varchar(255) comment '发票内容',
bill_receiver_phone varchar(32) comment '收票人电话',
bill_receiver_email varchar(64) comment '收票人邮箱',
receiver_name varchar(100) comment '收货人姓名',
receiver_phone varchar(32) comment '收货人电话',
receiver_post_code varchar(32) comment '收货人邮编',
receiver_province varchar(32) comment '省份/直辖市',
receiver_city varchar(32) comment '城市',
receiver_region varchar(32) comment '区',
receiver_detail_address varchar(200) comment '详细地址',
note varchar(500) comment '订单备注',
confirm_status tinyint comment '确认收货状态[0->未确认;1->已确认]',
delete_status tinyint comment '删除状态【0->未删除;1->已删除】',
use_integration int comment '下单时使用的积分',
payment_time datetime comment '支付时间',
delivery_time datetime comment '发货时间',
receive_time datetime comment '确认收货时间',
comment_time datetime comment '评价时间',
modify_time datetime comment '修改时间',
primary key (id)
);
alter table oms_order comment '订单';
/*==============================================================*/
/* Table: oms_order_item */
/*==============================================================*/
create table oms_order_item
(
id bigint not null auto_increment comment 'id',
order_id bigint comment 'order_id',
order_sn char(32) comment 'order_sn',
spu_id bigint comment 'spu_id',
spu_name varchar(255) comment 'spu_name',
spu_pic varchar(500) comment 'spu_pic',
spu_brand varchar(200) comment '品牌',
category_id bigint comment '商品分类id',
sku_id bigint comment '商品sku编号',
sku_name varchar(255) comment '商品sku名字',
sku_pic varchar(500) comment '商品sku图片',
sku_price decimal(18,4) comment '商品sku价格',
sku_quantity int comment '商品购买的数量',
sku_attrs_vals varchar(500) comment '商品销售属性组合(JSON)',
promotion_amount decimal(18,4) comment '商品促销分解金额',
coupon_amount decimal(18,4) comment '优惠券优惠分解金额',
integration_amount decimal(18,4) comment '积分优惠分解金额',
real_amount decimal(18,4) comment '该商品经过优惠后的分解金额',
gift_integration int comment '赠送积分',
gift_growth int comment '赠送成长值',
primary key (id)
);
alter table oms_order_item comment '订单项信息';
/*==============================================================*/
/* Table: oms_order_operate_history */
/*==============================================================*/
create table oms_order_operate_history
(
id bigint not null auto_increment comment 'id',
order_id bigint comment '订单id',
operate_man varchar(100) comment '操作人[用户;系统;后台管理员]',
create_time datetime comment '操作时间',
order_status tinyint comment '订单状态【0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单】',
note varchar(500) comment '备注',
primary key (id)
);
alter table oms_order_operate_history comment '订单操作历史记录';
/*==============================================================*/
/* Table: oms_order_return_apply */
/*==============================================================*/
create table oms_order_return_apply
(
id bigint not null auto_increment comment 'id',
order_id bigint comment 'order_id',
sku_id bigint comment '退货商品id',
order_sn char(32) comment '订单编号',
create_time datetime comment '申请时间',
member_username varchar(64) comment '会员用户名',
return_amount decimal(18,4) comment '退款金额',
return_name varchar(100) comment '退货人姓名',
return_phone varchar(20) comment '退货人电话',
status tinyint(1) comment '申请状态[0->待处理;1->退货中;2->已完成;3->已拒绝]',
handle_time datetime comment '处理时间',
sku_img varchar(500) comment '商品图片',
sku_name varchar(200) comment '商品名称',
sku_brand varchar(200) comment '商品品牌',
sku_attrs_vals varchar(500) comment '商品销售属性(JSON)',
sku_count int comment '退货数量',
sku_price decimal(18,4) comment '商品单价',
sku_real_price decimal(18,4) comment '商品实际支付单价',
reason varchar(200) comment '原因',
description述 varchar(500) comment '描述',
desc_pics varchar(2000) comment '凭证图片,以逗号隔开',
handle_note varchar(500) comment '处理备注',
handle_man varchar(200) comment '处理人员',
receive_man varchar(100) comment '收货人',
receive_time datetime comment '收货时间',
receive_note varchar(500) comment '收货备注',
receive_phone varchar(20) comment '收货电话',
company_address varchar(500) comment '公司收货地址',
primary key (id)
);
alter table oms_order_return_apply comment '订单退货申请';
/*==============================================================*/
/* Table: oms_order_return_reason */
/*==============================================================*/
create table oms_order_return_reason
(
id bigint 以上是关于Day396.环境搭建 -谷粒商城的主要内容,如果未能解决你的问题,请参考以下文章
day37 09-Struts2和Hibernate整合环境搭建