【经典】zheng项目搭建

2023-11-01

一、项目简介

 

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下:

 

[java] view plain copy

  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"目录下:

 

[java] view plain copy

  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为如下内容:

 

[html] view plain copy

  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文件内容如下:

 

[html] view plain copy

  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/

 

转载来自:http://blog.csdn.net/u011781521/article/details/79012311

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【经典】zheng项目搭建 的相关文章

随机推荐

  • Sina实时股票数据接口大全

    From http blog csdn net ablo zhou article details 4283320 实时股票数据接口大全 股票数据的获取目前有如下两种方法可以获取 1 http javascript接口取数据 2 web s
  • 【R语言】期末考试五道题

    question1 setwd G Rexam20174710426 a lt 2 b lt 0 c lt 1 d lt 7 e lt 4 f lt 7 g lt 1 h lt 0 i lt 4 j lt 2 k lt 6 o lt NA
  • 大一python期末复习综合题

    目录 前言 问题1 阶层函数 问题2 文件读取 问题3 嵌套循环 问题4 求最短路径 问题4 1 路径长度 问题4 2 最短路径 问题4 2 1 列表添加元素 问题4 2 2 返回最短路径 问题5 绘图 问题5 1 绘制城市坐标散点图 问题
  • 面试官:说一下SSO 单点登录和 OAuth2.0 的区别

    您好 我是路人 更多优质文章见个人博客 http itsoku com 一 概述 SSO是Single Sign On的缩写 OAuth是Open Authority的缩写 这两者都是使用令牌的方式来代替用户密码访问应用 流程上来说他们非常
  • ibatis的批量增删改

    1 Ibatis的批量添加
  • Multi-Thread Life

    最近一段时间的工作比较有趣 翻译Datasheet 代码调试和讲解 说白了就是写教程 目前已经写好了串口 LCD的驱动讲解 虽然是裸机驱动 无需与OS打交道 但也算得上是驱动开发了吧 so 放弃了开发一个CE驱动的计划 手头的定时器篇马上就
  • python3使用smtplib发送邮件,带xlsx附件

    一 概述 最近在做一个统计报表 需要发送邮件 并带附件的 在之前的文章中 https www cnblogs com xiao987334176 p 10022026 html 已经实现了发送邮件 但是没有实现发送附件功能 二 正式代码 u
  • Android Treble架构学习

    自Android 8 0以来 Google引入了Treble架构 希望对vendor和system分区进行解耦处理 说句不好听的就是aosp soc odm oem 都分开各搞各的 哈哈 期待实现 system进程不加载vendor共享库
  • 【python】详解collections模块中OrderedDict的使用

    很多人认为python中的字典是无序的 因为它是按照hash来存储的 但是python中有个模块collections 英文 收集 集合 里面自带了一个子类OrderedDict 实现了对字典对象中元素的排序 import collecti
  • 亲密关系-【关键对话】-有哪些决定关系的重要议题?

    爱的感觉不来自任何顿悟或哲思 来自日常生活中一场又一场深度沟通 案例 老婆很喜欢一个脱口秀演员 但我非常讨厌 问题怎么解决 重点不在于如何解决这个问题 重点在于 这为什么是个问题 当我们不沟通家庭时间分配问题 某一次加班带来的时间挤占就会成
  • it信息技术草稿

    信息技术介绍 信息技术行业组成 相关职位 深度学习中的泛化之谜如下 为什么使用梯度下降 GD 训练的过度参数化神经网络在真实数据集上泛化得很好 即使它们能够拟合大小相当的随机数据集 此外 在所有适合训练数据的解决方案中 GD 如何找到一个泛
  • STM32F103时钟配置流程

    一般情况下单片机的时钟配置是单片机程序中的第一步 也是很重要的一步 这时候我们需要考虑以下几个问题 1 系统时钟的时钟源用哪个 2 系统时钟频率要多少 3 每个模块的时钟频率要多少 4 如果外部时钟出了问题 这个时候时钟是怎么运行的 下面就
  • 特征工程——归一化处理不适用情况

    哪些机器学习算法不需要做归一化 Normalization 处理 概率模型不需要归一化 因为它们不关心变量的值 而是关心变量的分布和变量之间的条件概率 如决策树 随机森林rf 而像AdaBoost svm Ir KNN KMeans之类的最
  • C++ 模板模板参数

    C 模板模板参数 1 模板模板参数 C 模板的使用一共有以下几种情况 函数模板 类模板 模板参数 成员模板 而本篇介绍模板模板参数 模板参数就是模板的参数 我们一般指定为T类型 实际上可以使用任何的名字 例如指定一个Foo的模板参数 tem
  • 元宇宙浪潮震撼来袭,抓住时机,齐心协力

    互联网诞生至今 世界已与网络互联共生 Z世代 1995 2009年间出生的一代人 对互联网的依赖不同于前辈 他们不再局限于视觉 听觉的网络传播互动 也不仅是通过互联网把视觉 听觉 嗅觉 味觉 触觉相结合 而是互联网的原住民 他们的大部分生活
  • 微信小程序上传头像和昵称持久化保存

    微信小程序上传头像和昵称持久化保存 1 持久化步骤 因为通过微信头像昵称填写功能获取到头像是一个临时头像 这个url只能一段时间内在微信访问 并且无法在公网访问这个url 所以非常有必要把这个url转成我么实际可用的头像到数据库中 让头像持
  • 弹性布局一排为三个时,在循环中最后一排异常

    解决
  • 单件模板

    ifndef FILE HELPER H define FILE HELPER H class FileHelper public FileHelper FileHelper static FileHelper getInstance st
  • redis 网络模型全面解密

    导言 在目前的技术选型中 Redis 俨然已经成为了系统高性能缓存方案的事实标准 因此现在 Redis 也成为了后端开发的基本技能树之一 Redis 的底层原理也顺理成章地成为了必须学习的知识 Redis 从本质上来讲是一个网络服务器 而对
  • 【经典】zheng项目搭建

    一 项目简介 17年初就接触了zheng这个项目 感觉挺牛的 看他的架构图就知道了 现在都已经18年了 时间好快 特此记录下zheng的环境搭建 虽然 先看下码云上zheng的简介吧 https gitee com shuzheng zhe