Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
f16b2f35
Commit
f16b2f35
authored
Nov 04, 2019
by
Junling Bu
Browse files
doc
parents
25dd96d4
e95948bf
Changes
6
Hide whitespace changes
Inline
Side-by-side
deploy/README.md
View file @
f16b2f35
...
...
@@ -2,7 +2,7 @@
### 项目打包
1.
在
主机
或者开发机打包项目到deploy;
1.
在
服务器
或者开发机打包项目到deploy;
```
cd litemall
cat ./litemall-db/sql/litemall_schema.sql > ./deploy/db/litemall.sql
...
...
@@ -25,13 +25,13 @@
2.
修改litemall文件夹下面的
*
.yml外部配置文件,当litemall-all模块启动时会
加载外部配置文件,而覆盖默认jar包内部的配置文件。
例如,配置文件中一些地方需要设置成远程
主机
的IP地址
例如,配置文件中一些地方需要设置成远程
服务器
的IP地址
此时deploy部署包结构如下:
*
bin
存放远程
主机
运行的脚本,包括deploy.sh脚本和reset.sh脚本
存放远程
服务器
运行的脚本,包括deploy.sh脚本和reset.sh脚本
*
db
...
...
@@ -39,15 +39,15 @@
*
litemall
存放远程
主机
运行的代码,包括litemall-all二进制可执行包和litemall外部配置文件
存放远程
服务器
运行的代码,包括litemall-all二进制可执行包和litemall外部配置文件
*
util
存放开发
主机
运行的脚本,包括package.sh脚本和lazy.sh脚本。
由于是本地开发
主机
运行,因此开发者可以不用上传到远程
主机
。
存放开发
服务器
运行的脚本,包括package.sh脚本和lazy.sh脚本。
由于是本地开发
服务器
运行,因此开发者可以不用上传到远程
服务器
。
### 项目部署
1.
远程
主机
环境(MySQL和JDK1.8)已经安装好,请确保云
主机
的安全组已经允许相应的端口。
1.
远程
服务器
环境(MySQL和JDK1.8)已经安装好,请确保云
服务器
的安全组已经允许相应的端口。
2.
导入db/litemall.sql
```
bash
cd
/home/ubuntu/deploy/db
...
...
@@ -59,7 +59,7 @@
sudo ln
-f
-s
/home/ubuntu/deploy/litemall/litemall.jar /etc/init.d/litemall
sudo
service litemall start
```
4.
测试是否部署成功(xxx.xxx.xxx.xxx是云
主机
IP):
4.
测试是否部署成功(xxx.xxx.xxx.xxx是云
服务器
IP):
```
http://xxx.xxx.xxx.xxx:8080/wx/index/index
http://xxx.xxx.xxx.xxx:8080/admin/index/index
...
...
@@ -73,26 +73,26 @@
*
util/packet.sh
在开发
主机
运行可以自动项目打包
在开发
服务器
运行可以自动项目打包
*
util/lazy.sh
在开发
主机
运行可以自动项目打包、项目上传远程
主机
、自动登录系统执行项目部署脚本。
在开发
服务器
运行可以自动项目打包、项目上传远程
服务器
、自动登录系统执行项目部署脚本。
注意:
> 1. 开发者需要在util/lazy.sh中设置相应的远程
主机
登录账号和密钥文件路径。
> 2. 开发者需要在bin/reset.sh设置远程
主机
的MySQL的root登录账户。
> 1. 开发者需要在util/lazy.sh中设置相应的远程
服务器
登录账号和密钥文件路径。
> 2. 开发者需要在bin/reset.sh设置远程
服务器
的MySQL的root登录账户。
*
bin/deploy.sh
在远程
主机
运行可以自动部署服务
在远程
服务器
运行可以自动部署服务
*
bin/reset.sh
在远程
主机
运行可以自动项目导入数据、删除本地上传图片、再执行bin/deploy.sh部署服务。
在远程
服务器
运行可以自动项目导入数据、删除本地上传图片、再执行bin/deploy.sh部署服务。
注意:
> 开发者需要在bin/reset.sh设置远程
主机
的MySQL的root登录账户。
> 开发者需要在bin/reset.sh设置远程
服务器
的MySQL的root登录账户。
总结,当开发者设置好配置信息以后,可以在本地运行lazy.sh脚本自动一键部署:
```
bash
...
...
deploy/bin/reset.sh
View file @
f16b2f35
...
...
@@ -14,7 +14,7 @@ PASSWORD=
if
test
-z
"
$PASSWORD
"
then
echo
"请设置云
主机
MySQL的root账号密码"
echo
"请设置云
服务器
MySQL的root账号密码"
exit
1
fi
...
...
deploy/util/lazy.sh
View file @
f16b2f35
...
...
@@ -2,10 +2,10 @@
# 本脚本的作用是
# 1. 项目打包
# 2. 上传云
主机
# 3. 远程登录云
主机
并执行reset脚本
# 2. 上传云
服务器
# 3. 远程登录云
服务器
并执行reset脚本
# 请设置云
主机
的IP地址和账户
# 请设置云
服务器
的IP地址和账户
# 例如 ubuntu@118.24.0.153
REMOTE
=
# 请设置本地SSH私钥文件id_rsa路径
...
...
@@ -14,13 +14,13 @@ ID_RSA=
if
test
-z
"
$REMOTE
"
then
echo
"请设置云
主机
登录IP地址和账户"
echo
"请设置云
服务器
登录IP地址和账户"
exit
1
fi
if
test
-z
"
$ID_RSA
"
then
echo
"请设置云
主机
登录IP地址和账户"
echo
"请设置云
服务器
登录IP地址和账户"
exit
1
fi
...
...
@@ -33,11 +33,11 @@ echo "LITEMALL_HOME $LITEMALL_HOME"
cd
$LITEMALL_HOME
||
exit
2
./deploy/util/package.sh
# 上传云
主机
# 上传云
服务器
cd
$LITEMALL_HOME
||
exit
2
scp
-i
$ID_RSA
-r
./deploy
$REMOTE
:/home/ubuntu/
# 远程登录云
主机
并执行reset脚本
# 远程登录云
服务器
并执行reset脚本
ssh
$REMOTE
-i
$ID_RSA
<<
eeooff
cd /home/ubuntu
sudo ./deploy/bin/reset.sh
...
...
doc/platform.md
View file @
f16b2f35
...
...
@@ -1153,7 +1153,7 @@ public interface Storage {
## 2.4 litemall-all
在章节1.5中讨论的部署方案中设计了一种单
主机
单服务方案,
在章节1.5中讨论的部署方案中设计了一种单
服务器
单服务方案,
也就是说两个后台服务和静态文件都部署在一个Spring Boot可执行jar包中。
查看litemall-all模块,代码仅仅只有一个Application类。
...
...
doc/project.md
View file @
f16b2f35
...
...
@@ -243,7 +243,7 @@ Spring Boot技术栈参考以下文档或者项目:
*
dep
即deploy或者deployment,这里指部署(测试阶段),通常代码已经编译打包运行在远程
主机
中,
即deploy或者deployment,这里指部署(测试阶段),通常代码已经编译打包运行在远程
服务器
中,
可以对外服务。此外,这里服务访问地址通常是IP地址。如果IP是公网IP,那么
部署以后就可以对外服务;如果是内网地址,那么只能内网访问。这里的“用户”主要是
指开发者本身、测试者;当然,如果是局域网或者不介意IP访问的,那么这里的“用户”
...
...
@@ -251,7 +251,7 @@ Spring Boot技术栈参考以下文档或者项目:
*
prod
即product或者production,这里指上线阶段,通常也是代码编译打包运行在远处
主机
中可以对外服务。
即product或者production,这里指上线阶段,通常也是代码编译打包运行在远处
服务器
中可以对外服务。
此外,这里服务访问地址通常是域名地址,同时端口是80web端口。上线以后直接面向的是最终用户。
虽然服务的代码本身和dep是完全一样的,但是考虑到场景的不同,上线阶段可能在运行环境方面需要做
调整,例如采用反向代理屏蔽内部实际项目结构。此外,最大的不同应该是上线环境下要使用域名和80端口,
...
...
@@ -737,7 +737,7 @@ litemall:
在litemall-core模块的`application-core.yml`文件中配置对象存储服务:
* 本地对象存储配置
如果开发者采用当前
主机
保存上传的文件,则需要配置:
如果开发者采用当前
服务器
保存上传的文件,则需要配置:
```
litemall:
storage:
...
...
@@ -830,7 +830,7 @@ litemall:
* litemall-wx模块部署在微信开发者工具中,此外数据API地址指向litemall-wx-api所在服务qi地址
* litemall-admin编译出的静态文件放在web服务器或者tomcat服务器,此外服务器地址设置指向3中litemall-admin-api所在地址
最后,**如果项目部署云
主机
,则根据开发者的部署环境在以下文件中或代码中修改相应的配置。**
最后,**如果项目部署云
服务器
,则根据开发者的部署环境在以下文件中或代码中修改相应的配置。**
1. MySQL数据库设置合适的用户名和密码信息;
2. 后端服务模块设置合适的配置信息;
...
...
@@ -839,33 +839,34 @@ litemall:
实际上,最终的部署方案是灵活的:
* 可以是同一云
主机
中安装一个Spring Boot服务,同时提供litemall-admin、litemall-admin-api和litemall-wx-api三种服务
* 可以单一云
主机
中仅安装一个tomcat/nginx服务器部署litemall-admin静态页面分发服务,
* 可以是同一云
服务器
中安装一个Spring Boot服务,同时提供litemall-admin、litemall-admin-api和litemall-wx-api三种服务
* 可以单一云
服务器
中仅安装一个tomcat/nginx服务器部署litemall-admin静态页面分发服务,
然后部署两个Spring Boot的后端服务;
* 也可以把litemall-admin静态页面托管第三方cdn,然后开发者部署两个后端服务
* 当然,甚至多个服务器,采用集群式并发提供服务。
注意
> 1. `本机`指的是是当前的开发机
> 2. `云
主机
`指的是开发者购买并部署的远程
主机
> 2. `云
服务器
`指的是开发者购买并部署的远程
服务器
以下简单列举几种方案。
### 1.5.1 单机单服务部署方案
本节介绍基于腾讯云的单机单服务部署方案,面向的是服务器数据和应用部署在云
主机
单机中用于演示的场景。
本节介绍基于腾讯云的单机单服务部署方案,面向的是服务器数据和应用部署在云
服务器
单机中用于演示的场景。
其他云应该也是可行的。
主要流程是:创建云
主机
,安装ubuntu操作系统,按照JDK和MySQL应用运行环境,部署单一Spring Boot服务。
主要流程是:创建云
服务器
,安装ubuntu操作系统,按照JDK和MySQL应用运行环境,部署单一Spring Boot服务。

#### 1.5.1.1
主机
#### 1.5.1.1
云服务器
请参考腾讯云官方文档进行相关操作。
1. 创建云主机虚拟机
1. 创建云服务器
请参考腾讯云、阿里云或者其他云平台的官方文档进行相关操作。
建议最低配置是**1核2G**。
2. 安装操作系统
本项目采用ubuntu 16.04.1,但是并不限制其他操作系统。
...
...
@@ -874,16 +875,17 @@ litemall:

目前允许的端口:
8081,8082,8083,
8080,80,443,22,3306
目前允许的端口:8080,80,443,22,3306
注意:
这里其实只需要8080端口,允许其他端口只是方面开发阶段的测试和调试。
这里其实只需要8080端口,允许其他端口只是方便开发阶段的测试和调试。
特别是3306端口,作为MySQL的远程访问端口,请在上线阶段关闭。
4. 设置SSH密钥(可选)
建议开发者设置SSH密钥,可以免密码登录云
主机
,以及用于脚本自动上传应用。
建议开发者设置SSH密钥,可以免密码登录云
服务器
,以及用于脚本自动上传应用。
5. 使用PuTTY远程登录云
主机
5. 使用PuTTY远程登录云
服务器
如果开发者设置SSH密钥,可以采用免密码登录;否则采用账号和密码登录。
...
...
@@ -921,7 +923,7 @@ mysql_secure_installation
#### 1.5.1.4 项目打包
1. 在
主机
或者开发机打包项目到deploy;
1. 在
服务器
或者开发机打包项目到deploy;
```
cd litemall
cat ./litemall-db/sql/litemall_schema.sql > ./deploy/db/litemall.sql
...
...
@@ -946,26 +948,26 @@ mysql_secure_installation
2. 修改litemall文件夹下面的*.yml外部配置文件,当litemall-all模块启动时会
加载外部配置文件,而覆盖默认jar包内部的配置文件。
例如,配置文件中一些地方需要设置成远程
主机
的IP地址
例如,配置文件中一些地方需要设置成远程
服务器
的IP地址
此时deploy部署包结构如下:
* bin
存放远程
主机
运行的脚本,包括deploy.sh脚本和reset.sh脚本
存放远程
服务器
运行的脚本,包括deploy.sh脚本和reset.sh脚本
* db
存放litemall数据库文件
* litemall
存放远程
主机
运行的代码,包括litemall-all二进制可执行包和litemall外部配置文件
存放远程
服务器
运行的代码,包括litemall-all二进制可执行包和litemall外部配置文件
* util
存放开发
主机
运行的脚本,包括package.sh脚本和lazy.sh脚本。
由于是本地开发
主机
运行,因此开发者可以不用上传到远程
主机
。
存放开发
服务器
运行的脚本,包括package.sh脚本和lazy.sh脚本。
由于是本地开发
服务器
运行,因此开发者可以不用上传到远程
服务器
。
#### 1.5.1.5 项目部署
1. 远程
主机
环境(MySQL和JDK1.8)已经安装好,请确保云
主机
的安全组已经允许相应的端口。
1. 远程
服务器
环境(MySQL和JDK1.8)已经安装好,请确保云
服务器
的安全组已经允许相应的端口。
2. 导入db/litemall.sql
```bash
cd /home/ubuntu/deploy/db
...
...
@@ -977,7 +979,7 @@ mysql_secure_installation
sudo ln -f -s /home/ubuntu/deploy/litemall/litemall.jar /etc/init.d/litemall
sudo service litemall start
```
4. 测试是否部署成功(xxx.xxx.xxx.xxx是云
主机
IP):
4. 测试是否部署成功(xxx.xxx.xxx.xxx是云
服务器
IP):
```
http://xxx.xxx.xxx.xxx:8080/wx/index/index
http://xxx.xxx.xxx.xxx:8080/admin/index/index
...
...
@@ -996,26 +998,26 @@ mysql_secure_installation
* util/packet.sh
在开发
主机
运行可以自动项目打包
在开发
服务器
运行可以自动项目打包
* util/lazy.sh
在开发
主机
运行可以自动项目打包、项目上传远程
主机
、自动登录系统执行项目部署脚本。
在开发
服务器
运行可以自动项目打包、项目上传远程
服务器
、自动登录系统执行项目部署脚本。
注意:
> 1. 开发者需要在util/lazy.sh中设置相应的远程
主机
登录账号和密钥文件路径。
> 2. 开发者需要在bin/reset.sh设置远程
主机
的MySQL的root登录账户。
> 1. 开发者需要在util/lazy.sh中设置相应的远程
服务器
登录账号和密钥文件路径。
> 2. 开发者需要在bin/reset.sh设置远程
服务器
的MySQL的root登录账户。
* bin/deploy.sh
在远程
主机
运行可以自动部署服务
在远程
服务器
运行可以自动部署服务
* bin/reset.sh
在远程
主机
运行可以自动项目导入数据、删除本地上传图片、再执行bin/deploy.sh部署服务。
在远程
服务器
运行可以自动项目导入数据、删除本地上传图片、再执行bin/deploy.sh部署服务。
注意:
> 开发者需要在bin/reset.sh设置远程
主机
的MySQL的root登录账户。
> 开发者需要在bin/reset.sh设置远程
服务器
的MySQL的root登录账户。
总结,当开发者设置好配置信息以后,可以在本地运行lazy.sh脚本自动一键部署:
```bash
...
...
@@ -1036,8 +1038,8 @@ cd litemall
1. 专门的云数据库部署数据
2. 专门的云存储方案
3. 专门的CDN分发管理后台的静态文件
4. 一台云
主机
部署管理后台的后端服务
5. 一台或多台云
主机
部署小商场的后端服务
4. 一台云
服务器
部署管理后台的后端服务
5. 一台或多台云
服务器
部署小商场的后端服务
虽然由于环境原因没有正式测试过,但是这种简单的集群式场景应该是可行的。
在1.5.2节中所演示的三个服务是独立的,因此延伸到这里分布式是非常容易的。
...
...
@@ -1086,7 +1088,7 @@ sudo apt-get update
sudo apt-get install nginx
```
有的文档会指出需要防火墙设置,但是腾讯云
主机
防火墙默认没有开启。
有的文档会指出需要防火墙设置,但是腾讯云
服务器
防火墙默认没有开启。
开发者这里自己可以开启设置,或者直接不开启。
打开浏览器,输入以下地址:
...
...
@@ -1356,12 +1358,12 @@ litemall-admin编译得到的前端文件在第一次加载时相当耗时,这
#### 1.7.2.1 deploy部署
当前项目存在deploy部署文件夹,这个是上述1.5.1节部署腾讯云
主机
所采取的一些脚本。
当前项目存在deploy部署文件夹,这个是上述1.5.1节部署腾讯云
服务器
所采取的一些脚本。
流程如下:
1. util脚本是当前开发
主机
运行,用来打包项目和上传腾讯云
主机
;
1. util脚本是当前开发
服务器
运行,用来打包项目和上传腾讯云
服务器
;
2. 打包项目时,会编译打包项目相关模块到litemall和db文件夹中;
3. bin脚本是云
主机
运行,用来安装数据库、导入数据、启动项目服务。
3. bin脚本是云
服务器
运行,用来安装数据库、导入数据、启动项目服务。
这里deploy部署方式比较简单不灵活,开发者可以参考开发自己的项目脚本。
...
...
doc/wxmall.md
View file @
f16b2f35
...
...
@@ -83,9 +83,9 @@
2.
启动后台服务
3.
部署后台服务到云
主机
3.
部署后台服务到云
服务器
4.
litemall-wx的api.js设置云
主机
的域名。
4.
litemall-wx的api.js设置云
服务器
的域名。
编译运行,尝试微信支付。
### 3.0.3 微信退款配置
...
...
@@ -243,7 +243,7 @@ var WxApiRoot = 'http://localhost:8082/wx/';
1.
本机开发时,localhost是当前开发机的地址;
2.
手机预览时,192.168.0.101是开发机的IP地址;
3.
当后台部署在云
主机
中时,118.24.0.153是云
主机
的IP地址;
3.
当后台部署在云
服务器
中时,118.24.0.153是云
服务器
的IP地址;
4.
此外,更最重要的是,如果小程序正式部署时,这里的地址必须是域名,
而不能是IP地址。
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment