本篇文章主要是記錄Coupons項(xiàng)目在Linux環(huán)境下的安裝過(guò)程
Coupons是一個(gè)從前端到后端完全開(kāi)源的淘寶客項(xiàng)目,目前項(xiàng)目已經(jīng)支持打包成App、微信小程序、QQ小程序、Web站點(diǎn);理論上其他小程序支持,可能需要微調(diào)
Github地址:
項(xiàng)目地址:https://github.com/silently9527/coupons
效果預(yù)覽
一、運(yùn)行環(huán)境
Java
-
使用yum來(lái)搜索安裝包
yum search openjdk
image 這里我們選擇安裝Java8的開(kāi)發(fā)環(huán)境,執(zhí)行如下命令
yum -y install java-1.8.0-openjdk.x86_64
- 驗(yàn)證是否安裝成功
java -version
輸入如下內(nèi)容表示安裝成功
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
Maven
Maven的安裝過(guò)程參考 https://silently9527.cn/?p=65
MySQL
Mysql的詳細(xì)安裝教程參考 https://silently9527.cn/?p=63
Redis
Redis的詳細(xì)安裝教程參考 https://silently9527.cn/?p=64
Nginx
Nginx的詳細(xì)安裝教程參考 https://silently9527.cn/?p=66
二、注冊(cè)第三方賬號(hào)
1. 注冊(cè)大淘客賬號(hào)
MallCoupons后端項(xiàng)目中使用的商品數(shù)據(jù)都是由大淘客API提供 ;
首先需要注冊(cè)大淘客賬號(hào)https://www.dataoke.com/
進(jìn)入到大淘客開(kāi)放平臺(tái)創(chuàng)建一個(gè)應(yīng)用,為應(yīng)用一鍵添加所有的API接口
2. 開(kāi)通MobTech免費(fèi)短信服務(wù)(非必須,需要打包app應(yīng)用才是需要使用)
MallCoupons在App中是通過(guò)手機(jī)號(hào)和驗(yàn)證碼的方式登錄,MobTech提供了免費(fèi)的短信驗(yàn)證碼服務(wù)。
注冊(cè)MobTech賬號(hào) https://www.mob.com/
進(jìn)入到開(kāi)發(fā)者平臺(tái),創(chuàng)建應(yīng)用
3. 注冊(cè)QQ小程序(非必須,根據(jù)個(gè)人需要)
4. 注冊(cè)微信小程序(非必須,根據(jù)個(gè)人需要)
三、下載源碼并解壓
wget https://codeload.github.com/silently9527/coupons/zip/refs/heads/master
unzip coupons-master.zip
四、創(chuàng)建數(shù)據(jù)庫(kù)并初始化
- 輸入密碼登陸MySQL數(shù)據(jù)庫(kù)
mysql --port=3309 -uroot -p
- 創(chuàng)建數(shù)據(jù)庫(kù)mall-coupons
create database mall-coupons default character set utf8mb4 collate utf8mb4_unicode_ci;
- 執(zhí)行如下命令初始化數(shù)據(jù)庫(kù)
use mall-coupons;
source /Users/xxx/Downloads/coupons-master/doc/scheme.sql
source命令后面的文件路徑替換成你自己的路徑;
五、后端項(xiàng)目打包
- 進(jìn)入到解壓項(xiàng)目的coupons-master/server/src/main/resources目錄下
cd coupons-master/server/src/main/resources
- vim編輯文件
application-prod.properties,修改文件中的必要參數(shù)
#填寫(xiě)前面淘客注冊(cè)應(yīng)用的 AppKey、AppSecret
dataoke.appKey=
dataoke.appSecret=
#填寫(xiě)前面注冊(cè)QQ小程序的appId、appSecret
spring.social.qq.app-id=
spring.social.qq.app-secret=
#填寫(xiě)前面注冊(cè)微信小程序的appId、appSecret
spring.social.wechat.app-id=
spring.social.wechat.app-secret=
# 配置MySQL數(shù)據(jù)庫(kù)的地址
spring.datasource.url=jdbc:mysql://localhost:3306/mall-coupons?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=xxx
# 配置Redis服務(wù)器地址
spring.redis.host=
spring.redis.password=
spring.redis.port=
# mob短信服務(wù)的appkey,需要打包收集app的才需要
mob.service.appkey=
- 打包Java項(xiàng)目
mvn clean package -DskipTests
當(dāng)出現(xiàn)了Build Success的時(shí)候就表示打包完成
打包完成之后當(dāng)前目錄會(huì)生成target目錄,cd target進(jìn)入到目錄,查看是否有生成文件mall-coupons-server-0.0.1-SNAPSHOT.jar
- 啟動(dòng)運(yùn)行
mall-coupons-server-0.0.1-SNAPSHOT.jar
java -Djava.security.egd=file:/dev/./urandom -jar mall-coupons-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod > ./mall-coupons-server.log &
六、Nginx配置
- 進(jìn)入到目錄
/etc/nginx/conf.d,創(chuàng)建配置文件coupon.conf
cd /etc/nginx/conf.d
touch coupon.conf
- 編輯配置文件
coupon.conf,輸入如下內(nèi)容:
upstream coupons-services {
server localhost:9090 weight=10;
}
server {
listen 80;
server_name 你的域名;
include /etc/nginx/default.d/*.conf;
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-auth-token';
if ($request_method = 'OPTIONS') {
return 204;
}
proxy_pass http://coupons-services/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10000m;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- 重啟nginx
systemctl restart nginx
七、前端項(xiàng)目打包
前端項(xiàng)目的源碼目錄
coupons-master/client
導(dǎo)入前端代碼到HBuilder中,如何使用HBuilder導(dǎo)入項(xiàng)目、打包可以參考官方文檔 https://uniapp.dcloud.io/quickstart-hx修改發(fā)送短信的模版id(只有需要打包app才需要),文件的路徑
pages/public/login.vue中92行配置短信模板的id,這里的模版id需要在短信平臺(tái)mob上面申請(qǐng)
在uniapp的插件中心購(gòu)買(mǎi)集成mob的插件;MobTech短信原生插件 https://ext.dcloud.net.cn/plugin?id=2189
-
之后在HBuilder中配置appkey
image 配置后臺(tái)api的請(qǐng)求地址,編輯
client/config.js輸入自己服務(wù)器的域名地址
module.exports = {
// APIHOST: "http://localhost:9090"
}
coupons項(xiàng)目相關(guān)的文檔都已更新到博客:https://silently9527.cn/