开源项目学习之(一)------zheng环境搭建

一、项目简介

 

17年初就接触了zheng这个项目,感觉挺牛的,看他的架构图就知道了

现在都已经18年了,时间好快,特此记录下zheng的环境搭建,虽然,先看下码云上zheng的简介吧:https://gitee.com/shuzheng/zheng

zheng是基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。

 

二、导入项目

 

导入项目的方式有两种,一种是通过git,一种是直接下载源码然后导入到IDEA中,我这里以下载源码来演示,下载之后的源码如下:

有如下一些模块:

 

zheng-common--公共配置、MybatisGenerator扩展插件、通用BaseService、工具类等
zheng-admin--通用后台管理系统,zheng项目所有后台系统都是使用该模块界面作为前端展示。
zheng-ui--各个子系统前台thymeleaf模板,前端资源模块,使用nginx代理,实现动静分离。
zheng-upms--基于RBAC授权和基于用户授权的细粒度权限控制通用平台,并提供单点登录、会话管理和日志管理。
zheng-cms--内容管理系统
zheng-oss--文件存储系统
zheng-ucenter--通用用户管理系统, 实现最常用的用户注册、登录、资料管理、个人中心、第三方登录等基本需求,支持扩展二次开发。
zheng-wechat-mp--微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理、消息群发等基础功能外,还有二维码推广、营销活动、微网站、会员卡、优惠券等。
zheng-wechat-app--微信小程序后台
zheng-pay--一站式支付解决方案,统一下单接口,支持支付宝、微信、网银等多种支付方式。不涉及业务的纯粹的支付平台。
zheng-api--服务网关,对外暴露统一规范的接口和包装响应结果,包括各个子系统的交互接口、对外开放接口、开发加密接口、接口文档等服务,可在该模块支持验签、鉴权、路由、限流、监控、容错、日志等功能。

 

然后打开IDEA---->File---->New---->Module from Existing Sources导入一个存在的Module

然后点击Finsh.导入成功之后,如下:

找到每个项目的跟pom.xml更新下依赖:

然后下载zheng-common中的依赖

三、环境搭建

 

要想成功运行项目,必须要安装一下一些工具:

1、JDK
2、Mysql
3、maven
4、Redis
5、Zookeeper
6、ActiveMQ
7、Nginx

 

4、Redis安装

 

至于JDK,Mysql,maven,的安装太简单了,这里就不演示了,Redis安装如下,去github下载最新的安装包:https://github.com/MSOpenTech/redis/releases

下载Redis-x64-3.2.100-windows.msi安装过程比较简单,一路next就可以了。然后还得安装Redis可视化工具Redis Desktop Manager下载地址如下:https://redisdesktop.com/download

 

选择最新的版本进行下载、下载之后,然后进行安装

安装之后,打开软件

这里要登录密码,由于我装的是安装版,以下是设置密码,在CMD下:

 

 
  1. config get requirepass //获取当前密码

  2. config set requirepass "root"//设置当前密码,服务重新启动后又会置为默认,即无密码;不建议此种方式

 

5、Zookeeper安装

 

首先去官网下载:http://www.apache.org/dyn/closer.cgi/zookeeper/

 

选择3.5.2版本。

 

6、ActiveMQ

 

官网下载地址为:http://activemq.apache.org/download-archives.html 选择最新版本进行下载

这里选择5.9.0版本进行下载。

 

7、Nginx

 

官网下载地址为:http://nginx.org/

四、运行项目

 

A.后台启动顺序:

 

(一)、初始化数据库

 

下面就是启动项目了,在启动项目前还得准备下,首先新建zheng数据库

导入project-datamodel文件夹下的zheng.sql

工具使用的是navicat for premium

导入成功之后,有如下表

(二)、数据库连接配置工作

 

修改各模块下profiles的数据库连接等配置信息

有如下一些module下有这些配置文件

像如下这种密码使用了AES加密,使用com.zheng.common.util.AESUtil工具类修改这些值

在zheng-upms中有个generator.properties

AESUtil使用如下,替换其中的root为数据库密码,然后运行就会有以下信息输出:

比如我这里redis和mysql都是root,所有我把密码修改成如下的密码:

 

(三)、修改本地Host

 

进入到"C:\Windows\System32\drivers\etc"目录下:

 

 
  1. 127.0.0.1 ui.zhangshuzheng.cn

  2. 127.0.0.1 upms.zhangshuzheng.cn

  3. 127.0.0.1 cms.zhangshuzheng.cn

  4. 127.0.0.1 pay.zhangshuzheng.cn

  5. 127.0.0.1 ucenter.zhangshuzheng.cn

  6. 127.0.0.1 wechat.zhangshuzheng.cn

  7. 127.0.0.1 api.zhangshuzheng.cn

  8. 127.0.0.1 oss.zhangshuzheng.cn

  9. 127.0.0.1 config.zhangshuzheng.cn

  10. 127.0.0.1 zkserver

  11. 127.0.0.1 rdserver

  12. 127.0.0.1 dbserver

  13. 127.0.0.1 mqserver

 

(四)、启动并运行相关程序工作

 

 

我把有关的工具都解压到该目录下了:

 

1.启动Zookeeper

 

进入到zookeeper的bin目录,双击zkServer.cmd启动服务。

启动成功之后,输入信息如下:

2、启动ActiveMQ:


1)进入MQ的bin目录D:\zheng_start\apache-activemq-5.9.0-bin\apache-activemq-5.9.0\bin\win64,双击activemq.bat

启动成功之后

 

2)在浏览器中输入http://localhost:8161/admin/输入默认的admin admin

3)出现这样的界面则MQ安装成功。

3、启动Nginx

 

在zheng/project-tools/nginx下提供了ngxin的一些配置

将这两个文件复制到nginx/conf下

修改其中的项目路径:

 

 

或者可以直接修改nginx.conf为如下内容:

 

 
  1. #user nobody;

  2. worker_processes 1;

  3.  
  4. #error_log logs/error.log;

  5. #error_log logs/error.log notice;

  6. #error_log logs/error.log info;

  7.  
  8. #pid logs/nginx.pid;

  9.  
  10.  
  11. events {

  12. worker_connections 1024;

  13. }

  14.  
  15.  
  16. http {

  17. include mime.types;

  18. default_type application/octet-stream;

  19.  
  20. #log_format main '$remote_addr - $remote_user [$time_local] "$request" '

  21. # '$status $body_bytes_sent "$http_referer" '

  22. # '"$http_user_agent" "$http_x_forwarded_for"';

  23.  
  24. #access_log logs/access.log main;

  25.  
  26. sendfile on;

  27. #tcp_nopush on;

  28.  
  29. #keepalive_timeout 0;

  30. keepalive_timeout 65;

  31.  
  32. #gzip on;

  33.  
  34. server {

  35. #监听的端口号,配置这里访问的时候浏览器里可以访问http://localhost:1000/zheng-cms-web/测试是否能看到页面内容(没有直接访问http://localhost:1000,因为这个路径zheng-ui下没有index.html之类的文件,会出现访问错误提示,不好作为判定是否nginx启动配置成功的标志)

  36. listen 1000;

  37. server_name localhost;

  38.  
  39. #charset koi8-r;

  40.  
  41. #access_log logs/host.access.log main;

  42.  
  43. location / {

  44. #root后面内容需要修改为本机的zheng-ui项目的绝对路径位置

  45. root F:/GitHub/zheng/zheng-ui/;

  46. index index.html index.htm;

  47. add_header Access-Control-Allow-Origin *;

  48. }

  49.  
  50. #error_page 404 /404.html;

  51.  
  52. # redirect server error pages to the static page /50x.html

  53. #

  54. error_page 500 502 503 504 /50x.html;

  55. location = /50x.html {

  56. root html;

  57. }

  58.  
  59. # proxy the PHP scripts to Apache listening on 127.0.0.1:80

  60. #

  61. #location ~ \.php$ {

  62. # proxy_pass http://127.0.0.1;

  63. #}

  64.  
  65. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

  66. #

  67. #location ~ \.php$ {

  68. # root html;

  69. # fastcgi_pass 127.0.0.1:9000;

  70. # fastcgi_index index.php;

  71. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

  72. # include fastcgi_params;

  73. #}

  74.  
  75. # deny access to .htaccess files, if Apache's document root

  76. # concurs with nginx's one

  77. #

  78. #location ~ /\.ht {

  79. # deny all;

  80. #}

  81. }

  82.  
  83.  
  84. # another virtual host using mix of IP-, name-, and port-based configuration

  85. #

  86. #server {

  87. # listen 8000;

  88. # listen somename:8080;

  89. # server_name somename alias another.alias;

  90.  
  91. # location / {

  92. # root html;

  93. # index index.html index.htm;

  94. # }

  95. #}

  96.  
  97.  
  98. # HTTPS server

  99. #

  100. #server {

  101. # listen 443 ssl;

  102. # server_name localhost;

  103.  
  104. # ssl_certificate cert.pem;

  105. # ssl_certificate_key cert.key;

  106.  
  107. # ssl_session_cache shared:SSL:1m;

  108. # ssl_session_timeout 5m;

  109.  
  110. # ssl_ciphers HIGH:!aNULL:!MD5;

  111. # ssl_prefer_server_ciphers on;

  112.  
  113. # location / {

  114. # root html;

  115. # index index.html index.htm;

  116. # }

  117. #}

  118.  
  119. }

 

然后在CMD下执行nginx.exe

或者可以在该目录下新建一个nginx.bat文件内容如下:

 

 
  1. @echo off

  2. rem zheng-tools

  3. rem author: shuzheng http://www.zhangshuzheng.cn

  4. rem GitHub: https://github.com/shuzheng

  5. rem OsChina: http://git.oschina.net/shuzheng/zheng

  6.  
  7. echo ==================begin========================

  8.  
  9. cls

  10. SET NGINX_PATH=D:

  11. SET NGINX_DIR=D:\自己的nginx安装路径\nginx-1.11.4\

  12. color 0a

  13. TITLE zheng-tools Power By shuzheng (http://www.zhangshuzheng.cn)

  14.  
  15. CLS

  16.  
  17. ECHO.

  18. ECHO. ********************************************************************

  19. ECHO. * *

  20. ECHO. * *

  21. ECHO. * zheng-tools Power By shuzheng (http://www.zhangshuzheng.cn) *

  22. ECHO. * *

  23. ECHO. * *

  24. ECHO. ********************************************************************

  25. ECHO.

  26.  
  27. :MENU

  28.  
  29. ECHO.---------------------------- nginx 进程列表 --------------------------------

  30. tasklist|findstr /i "nginx.exe"

  31. if ERRORLEVEL 1 (echo nginx未启动) else (echo nginx已启动)

  32. ECHO.----------------------------------------------------------------------------

  33.  
  34.  
  35. ECHO.

  36. ECHO. [1] 启动Nginx

  37. ECHO. [2] 关闭Nginx

  38. ECHO. [3] 重启Nginx

  39. ECHO. [4] 退 出

  40. ECHO.

  41.  
  42. ECHO.请输入选择项目的序号:

  43. set /p ID=

  44. IF "%id%"=="1" GOTO start

  45. IF "%id%"=="2" GOTO stop

  46. IF "%id%"=="3" GOTO restart

  47. IF "%id%"=="4" EXIT

  48. PAUSE

  49.  
  50. :start

  51. call :startNginx

  52. ECHO.============================================================================

  53. ECHO.

  54. ECHO.

  55. GOTO MENU

  56.  
  57. :stop

  58. call :shutdownNginx

  59. ECHO.============================================================================

  60. ECHO.

  61. ECHO.

  62. GOTO MENU

  63. :restart

  64. call :shutdownNginx

  65. call :startNginx

  66. ECHO.============================================================================

  67. ECHO.

  68. ECHO.

  69. GOTO MENU

  70.  
  71. :shutdownNginx

  72. ECHO.

  73. ECHO.关闭Nginx......

  74. taskkill /F /IM nginx.exe > nul

  75. ECHO.OK,关闭所有nginx 进程

  76. goto :eof

  77.  
  78. :startNginx

  79. ECHO.

  80. ECHO.启动Nginx......

  81. IF NOT EXIST "%NGINX_DIR%nginx.exe" ECHO "%NGINX_DIR%nginx.exe"不存在

  82.  
  83. %NGINX_PATH%

  84.  
  85. cd "%NGINX_DIR%"

  86.  
  87. IF EXIST "%NGINX_DIR%nginx.exe" (

  88. echo "start '' nginx.exe"

  89. start "" nginx.exe

  90. )

  91. ECHO.OK

  92. goto :eof


运行效果如下:

 

4、启动Tomcat

 

在tomcat中部署dubbo应用。这里用的是2.5.4,可从这下载:http://download.csdn.net/download/u011781521/10197867 下载之后解压,删除Tomcat目录下的ROOT目录,然后复制dubbo中的ROOT到该目录下:

 

 

然后修改下tomcat的默认端口以防止和下面的jetty冲突,最后在D:\zheng_start\apache-tomcat-8.0.45\bin目录下执行startup.bat启动tomcat,成功之后输出如下:

 

 

访问tomcat的dubbo后台: localhost:8089 用户名与密码都是root

 

 

5、启动Service

 

首先启动 zheng-upms-rpc-service(直接运行src目录下的ZhengUpmsRpcServiceApplication#main方法启动)

启动成功之后如下:

 

6、启动Web服务

 

打开Maven视图

 

debug运行jetty。然后按需启动对应子系统xxx的zheng-xxx-rpc-service(main方法) => zheng-xxx-webapp(jetty)

然后在dubbo管控台上就会有一些服务已经注册了

 

 

7、访问页面

 

然后访问 http://upms.zhangshuzheng.cn:1111/,子系统菜单已经配置到zheng-upms权限中,不用直接访问子系统,默认帐号密码:admin/123456

 

B、zheng-cms启动

 

zheng-cms-admin:启动ActiveMQ-启动 => 启动zheng-rpc-service => 启动zheng-cms-admin

 

 


zheng-cms-web:启动nginx代理zheng-ui静态资源,然后访问: http://upms.zhangshuzheng.cn:1111

 

 

切换到CMS系统

 

 

此时访问CMS首页: http://cms.zhangshuzheng.cn:2224/

 

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011781521/article/details/79012311

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值