悟空CRM部署
下载代码
安装git 克隆代码
yum -y install git
https://gitee.com/wukongcrm/crm_pro.git
悟空CRM目录结构
wk_crm
├── admin -- 系统管理模块和用户管理模块
├── authorization -- 鉴权模块,目前仅用于登录鉴权,后期可能有更改
├── bi -- 商业智能模块
├── core -- 通用的代码和工具类
├── crm -- 客户管理模块
├── gateway -- 网关模块
├── job -- 定时任务模块
├── oa -- OA模块
└── work -- 项目管理模块
悟空CRM使用的主要技术栈
名称 |
版本 |
说明 |
端口 |
spring-cloud-alibaba |
2.2.1.RELEASE(Hoxton.SR3) |
核心框架 |
|
swagger |
2.9.2 |
接口文档 |
|
sentinel |
2.2.1.RELEASE |
断路器以及限流 |
8079 |
nacos |
1.2.1.RELEASE |
注册中心以及分布式配置管理 |
8848 |
seata |
1.2.0 |
分布式事务 |
8091 |
elasticsearch |
2.2.5.RELEASE(6.8.6) |
搜索引擎中间件 |
9200,9300 |
xxl-job |
2.1.2 |
分布式定时任务框架 |
|
gateway |
2.2.2.RELEASE |
微服务网关 |
|
使用说明
一、前置环境
二、JDK1.8 Maven3.5安装
JDK安装
#JDK1.8
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html#license-lightbox //需要输入oracel用户名密码
#设置环境变量
cat >>/etc/profile <<-EOF
export JAVA_HOME=/application/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
EOF
source etc/profile
#测试
java -version
Maven3.5安装
yum -y install maven-3.0.5-17.el7.noarch
三、安装Mysql数据库
1.安装略
**2. 修改group by报错 **
vi /etc/my.cnf
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3. 创建数据库
MySQL [nacos]> create database nacos;
MySQL [nacos]> create database seata;
MySQL [nacos]> create database wk_crm_single;
MySQL [nacos]> create database xxl_job;
MySQL [nacos]> grant all on *.* to crm@'%' identified by '123.com.cn'
四、安装Elasticsearch 6.8.6
涉及端口 9200,9300
下载地址 https://mirrors.huaweicloud.com/elasticsearch/
#解压
cd /application
tar -zxvf Elasticsearch 6.8.6.tar.gz
#修改内存
cd elasticsearch-6.8.6/config
vi jvm.options里-Xms512M 和 -Xmx512M
#安装插件
mkdir /application/elasticsearch-6.8.6/plugins/analysis-icu
cd !$
wget https://file.72crm.com/project/analysis-icu-6.8.6.zip
unzip analysis-icu-6.8.6.zip
#创建ES的用户与组和权限
groupadd es
useradd esuser -g es -p elasticsearch
chown -R esuser:es /application/elasticsearch-6.8.6
#运行 (需要使用程序用户启动,后台运行)
sudo -u esuser /bin/bash -c "source /etc/profile && /bin/bash /application/elasticsearch-6.8.6/bin/elasticsearch -d"
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AHvqpurE-1606231559997)(F:\Linux\老男孩文档\image\1606122386251.png)]
五、安装Redis
yum -y install redis
sed -ri '48arequirepass \"123456\"' /etc/redis.conf
systemctl start redis && systemctl enable redis
redis 127.0.0.1:6379> AUTH 123456
六、Nacos安装
涉及端口 8848
#下载解压
cd /application
wget https://github.com/alibaba/nacos/releases/download/1.3.2/nacos-server-1.3.2.tar.gz
unzip nacos-server-1.3.2.tar.gz
#目录结构
nacos/
├── bin
│ ├── shutdown.cmd
│ ├── shutdown.sh
│ ├── startup.cmd
│ └── startup.sh //启动文件
├── conf
│ ├── application.properties
│ ├── application.properties.example
│ ├── cluster.conf.example
│ ├── nacos-logback.xml
│ ├── nacos-mysql.sql //数据文件 需要导入
│ └── schema.sql
├── LICENSE
├── NOTICE
└── target
└── nacos-server.jar
#初始化数据库
将 nacos-mysql.sql导到nacos数据库中
mysql -ucrm -p123.com.cn nacos < nacos/config/nacos-mysql.sql
#修改配置文件
vi application.properties
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=crm
db.password=123.com.cn
启动nacos
startup.sh -m standalone
浏览器访问http://ip:8848/nacos
七、Seata安装
涉及端口8091
#下载并解压
cd /tools
wget https://github.com/seata/seata/releases/download/v1.3.0/seata-server-1.3.0.zip
unzip seata-server-1.3.0.zip
mv seata /application/
下载nacos配置文件进行注册
https://github.com/seata/seata/tree/develop/script/config-center
只下载nacos、config.txt并修改
上传到/application/seate中
#执行导入脚本
cd /application/seata/nacos/
./nacos-config.sh
查看nacos,如图说明注册成功
**修改registry.conf配置为nacos **
cat > /application/seata/conf/registry.conf <<-EOF
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
application = "seata-server"
serverAddr = "127.0.0.1:8848"
namespace = "public"
cluster = "default"
username = "nacos"
password = "nacos"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "127.0.0.1:8848"
namespace = "public"
group = "SEATA_GROUP"
username = "nacos"
password = "nacos"
}
}
EOF
启动seate
./bin/seata-server.sh
八、Sentinel安装
涉及端口 8079
1.下载解压
cd /tools
wget https://github.com/alibaba/Sentinel/releases/download/v1.8.0/sentinel-dashboard-1.8.0.jar
mkdir /application/sentinel && cp sentinel-dashboard-1.8.0.jar /application/sentinel/
cd /application/sentinel && unzip sentinel-dashboard-1.8.0.jar
2.启动
nohup java -Dserver.port=8079 -Dcsp.sentinel.dashboard.server=localhost:8079 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar &
浏览器访问http://ip:8079 默认用户名密码 sentinel\sentinel
九、项目打包
1. 导入初始化sql,目前项目下gateway模块使用的独立数据库,其他模块使用同一数据库
创建数据库
MySQL [nacos]> create database nacos;
MySQL [nacos]> create database seata;
MySQL [nacos]> create database wk_crm_single;
MySQL [nacos]> create database xxl_job;
为了方便这里我就直接使用root用户
MySQL [nacos]> grant all on *.* to crm@'%' identified by '123.com.cn'
**4.导入数据**
导入数据
#1.进入代码DB文件夹
cd /crm_pro/DB && ll
-rw-r--r-- 1 root root 4636 11月 9 17:48 config_info_route.sql
-rw-r--r-- 1 root root 1975 11月 9 17:48 seata.sql
-rw-r--r-- 1 root root 560747 11月 9 17:48 wk_crm_single.sql
-rw-r--r-- 1 root root 10983 11月 9 17:48 xxl_job.sql
#2.导入数据库
mysql -u crm -p123.com.cn nacos < config_info_route.sql
mysql -u crm -p123.com.cn seata < seata.sql
mysql -u crm -p123.com.cn wk_crm_single < wk_crm_single.sql
mysql -u crm -p123.com.cn xxl_job < xxl_job.sql
2.在项目根目录执行mvn install
3.在各个模块下resource目录配置数据库帐号信息以及redis帐号信息(默认使用的是application-dev.yml
配置文件,打包后启动脚本默认使用的application-test.yml
配置文件)
[root@nginx_proxy_02 crm_pro]# find ./ -name application-test.yml | grep "res"
./admin/src/main/resources/application-test.yml
./authorization/src/main/resources/application-test.yml
./bi/src/main/resources/application-test.yml
./crm/src/main/resources/application-test.yml
./job/src/main/resources/application-test.yml
./oa/src/main/resources/application-test.yml
./work/src/main/resources/application-test.yml
./gateway/src/main/resources/application-dev.yml
4.在crm\src\main\resources\application-dev.yml
里面修改elasticsearch配置
spring.elasticsearch.rest.uris = elasticsearch地址 例:127.0.0.1:9200
spring.elasticsearch.rest.username = elasticsearch用户名 例:elastic 无密码可留空
spring.elasticsearch.rest.password = elasticsearch密码 例: password 无密码可留空
5.(可选)项目日志文件在core\src\main\resources\logback-spring.xml
修改
6. 项目再打包部署clean -Dmaven.test.skip=true package
mvn clean -Dmaven.test.skip=true package
·然后把对应模块下target文件夹下
·${name}-${version}-SNAPSHOT.zip/tar.gz上传到服务器,例:admin-0.0.1-SNAPSHOT.zip 并将压缩文件解压,检查对应配置文件。
cd /crm_pro
cp ./admin/target/wk_admin.tar.gz /application/wk_crm/wk_admin/
cp ./authorization/target/wk_authorization.tar.gz /application/wk_crm/wk_authorization/
cp ./bi/target/wk_bi.tar.gz /application/wk_crm/wk_bi/
cp ./crm/target/wk_crm.tar.gz /application/wk_crm/wk_crm/
cp ./gateway/target/wk_gateway.tar.gz /application/wk_crm/wk_gateway/
cp ./job/target/wk_job.tar.gz /application/wk_crm/wk_job/
cp ./oa/target/wk_oa.tar.gz /application/wk_crm/wk_oa/
cp ./work/target/wk_work.tar.gz /application/wk_crm/wk_work/
7. 项目启动
cd /application/wk_crm
export DIR=/application/wk_crm/
cd ${DIR}wk_authorization/ && ./72crm.sh start
cd ${DIR}wk_admin/ && ./72crm.sh start && cd ..
cd ${DIR}wk_bi/ && ./72crm.sh start && cd ..
cd ${DIR}wk_crm/ && ./72crm.sh start && cd ..
cd ${DIR}wk_gataeway/ && ./72crm.sh start && cd ..
cd ${DIR}wk_job/ && ./72crm.sh start && cd ..
cd ${DIR}wk_oa/ && ./72crm.sh start && cd ..
cd ${DIR}wk_work/ && ./72crm.sh start && cd ..
先启动nacos,seata,sentinel, elasticsearch,mysql,redis等基础服务
在第八步解压的文件模块下通过执行`sh 72crm.sh start`(windows下直接运行72crm.bat)启动各个模块服务。
其中项目基础模块:gateway,authorization,admin必须启动,其他模块可按需启动。
启动完成后,在浏览器中访问:http://localhost:8443/即可登录系统
十、浏览器访问
首次访问crm进行注册 访问http://IP:8443
访问 swagger http://IP:8443/swagger-ui.html?urls.primaryName=crm#/ 查看项目状态