diff --git a/deploy/README.md b/deploy/README.md index 903619a2..ff337084 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -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 diff --git a/deploy/bin/reset.sh b/deploy/bin/reset.sh index d486e4a6..4ac1a1a2 100644 --- a/deploy/bin/reset.sh +++ b/deploy/bin/reset.sh @@ -14,7 +14,7 @@ PASSWORD= if test -z "$PASSWORD" then - echo "请设置云主机MySQL的root账号密码" + echo "请设置云服务器MySQL的root账号密码" exit 1 fi diff --git a/deploy/util/lazy.sh b/deploy/util/lazy.sh index fb7fadbd..60defe3c 100644 --- a/deploy/util/lazy.sh +++ b/deploy/util/lazy.sh @@ -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 diff --git a/doc/platform.md b/doc/platform.md index 6e4468f1..c699643a 100644 --- a/doc/platform.md +++ b/doc/platform.md @@ -1153,7 +1153,7 @@ public interface Storage { ## 2.4 litemall-all -在章节1.5中讨论的部署方案中设计了一种单主机单服务方案, +在章节1.5中讨论的部署方案中设计了一种单服务器单服务方案, 也就是说两个后台服务和静态文件都部署在一个Spring Boot可执行jar包中。 查看litemall-all模块,代码仅仅只有一个Application类。 diff --git a/doc/project.md b/doc/project.md index 8409e038..21691c53 100644 --- a/doc/project.md +++ b/doc/project.md @@ -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服务。 ![](pic1/1-11.png) -#### 1.5.1.1 主机 +#### 1.5.1.1 云服务器 -请参考腾讯云官方文档进行相关操作。 - -1. 创建云主机虚拟机 +1. 创建云服务器 + 请参考腾讯云、阿里云或者其他云平台的官方文档进行相关操作。 + 建议最低配置是**1核2G**。 + 2. 安装操作系统 本项目采用ubuntu 16.04.1,但是并不限制其他操作系统。 @@ -874,16 +875,17 @@ litemall: ![](pic1/1-4.png) - 目前允许的端口: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部署方式比较简单不灵活,开发者可以参考开发自己的项目脚本。 diff --git a/doc/wxmall.md b/doc/wxmall.md index acb9821f..ef617693 100644 --- a/doc/wxmall.md +++ b/doc/wxmall.md @@ -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地址。