You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
3.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## 安装jdk
安装JDK,如果没有java-1.8.0-openjdk-devel就没有javac命令
```bash
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
```
## 编译打包项目
项目最终需要进行编译打包上传到服务器,生产环境上的配置与测试环境不同,需要独立配置一些东西,满足自己的需要
### 1. mall4j
1. 修改`yami-shop-admin\src\main\resources\application-prod.yml` 更改为生产环境的数据库账号密码,端口号等
2. 修改`yami-shop-admin\src\main\resources\log4j2_prod.xml` 修改里面的`PROJECT_PATH` 将`/opt/projects/yami-shops` 改为自己生产环境的项目路径
3. 修改`yami-shop-api\src\main\resources\application-prod.yml` 更改为生产环境的数据库账号密码,端口号等
4. 修改`yami-shop-api\src\main\resources\log4j2_prod.xml` 修改里面的`PROJECT_PATH` 将`/opt/projects/yami-shops` 改为自己生产环境的项目路径
以上 1、2 工程目录为 `yami-shop-admin` 而 3、4、5 工程目录为 `yami-shop-api` 请注意区分
6. 修改完毕后打包,使用`mvn clean package -DskipTests` 命令进行打包最终会生成很多的jar我们需要其中两个。
- 商城后台接口 `yami-shop-admin\target\yami-shop-admin-0.0.1-SNAPSHOT.jar`
- 商城前端接口`yami-shop-api\target\yami-shop-api-0.0.1-SNAPSHOT.jar`
7. 将两个jar上传到centos环境中
8. 在生产环境中运行时候,需要使用`-Dspring.profiles.active=prod` 在使用admin这个工程项目于生产环境的时候要添加定时任务的配置如`-Dspring.profiles.active=prod,quartz`,运行:
```bash
nohup java -jar -Dspring.profiles.active=prod "${jarPath}/${jarName}" > "${jarPath}/log/${moduleName}-console.log" &
nohup java -jar -Dspring.profiles.active=prod,quartz "${jarPath}/${jarName}" > "${jarPath}/log/${moduleName}-console.log" &
```
- 替换`${jarPath}` 为`jar` 所在路径
- 替换`${jarName}` 为`jar` 所在路径
- 替换`${moduleName}` 为`admin`或`api`
9. 查看控制台日志输出
```bash
# 后台日志
tail -f ${PROJECT_PATH}/log/admin.log
# 前端接口日志
tail -f ${PROJECT_PATH}/log/api.log
```
- 替换`${PROJECT_PATH}` 为`logback-prod.xml` 里面修改的`PROJECT_PATH` 路径
10. 使用nginx将请求指向特定的端口。
### 2.vue
vue项目的打包构建相对比较简单但是要注意跨域的问题相关可以查阅《nginx安装与跨域配置》这篇文章。
下面来说下步骤:
1. 修改`static\config\index-prod.js` 将`baseUrl` 改为vue的请求地址(同源策略),并携带`/apis`的路径,方便修改跨域的配置
2. 使用 `npm run build` 命令对项目进行打包
3. 将步骤2中生成的`dist` 文件夹中的文件,压缩,上传到服务器,解压
4. 使用nginx指向上传解压好的目录
5. 输入域名即可访问
> 同源策略/SOPSame origin policy是一种约定由Netscape公司1995年引入浏览器它是浏览器最核心也最基本的安全功能如果缺少了同源策略浏览器很容易受到XSS、CSRF等攻击。所谓同源是指"协议+域名+端口"三者相同即便两个不同的域名指向同一个ip地址也非同源。
对于上面vue的请求地址很多人不清楚是什么意思比如我们线上的访问 `http://mall4j-admin.gz-yami.com` 这个是我们的商城后台这个东西有两个特点1. 可以用浏览器打开 2.这个是前端的路径),那么根据同源策略,前端只能请求前端的路径,也就是`http://mall4j-admin.gz-yami.com`,那该怎么办呢?
我们`static\config\index-prod.js` 的`baseUrl`写成这个样子`http://mall4j-admin.gz-yami.com/apis`这就会出现一个问题明显看来这个请求的是前端呀怎么访问服务器啊答案就是nginx反向代理将`/apis`指向我们后台启动的端口或域名就好了。相关可以查阅《nginx安装与跨域配置》这篇文章。