一、项目简介

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

config get requirepass //获取当前密码
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"目录下:

127.0.0.1 ui.zhangshuzheng.cn
127.0.0.1 upms.zhangshuzheng.cn
127.0.0.1 cms.zhangshuzheng.cn
127.0.0.1 pay.zhangshuzheng.cn
127.0.0.1 ucenter.zhangshuzheng.cn
127.0.0.1 wechat.zhangshuzheng.cn
127.0.0.1 api.zhangshuzheng.cn
127.0.0.1 oss.zhangshuzheng.cn
127.0.0.1 config.zhangshuzheng.cn
127.0.0.1 zkserver
127.0.0.1 rdserver
127.0.0.1 dbserver
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为如下内容:

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {#监听的端口号,配置这里访问的时候浏览器里可以访问http://localhost:1000/zheng-cms-web/测试是否能看到页面内容(没有直接访问http://localhost:1000,因为这个路径zheng-ui下没有index.html之类的文件,会出现访问错误提示,不好作为判定是否nginx启动配置成功的标志)listen       1000;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {#root后面内容需要修改为本机的zheng-ui项目的绝对路径位置root   F:/GitHub/zheng/zheng-ui/;index  index.html index.htm;add_header Access-Control-Allow-Origin *;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

然后在CMD下执行nginx.exe

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

@echo off
rem zheng-tools
rem author: shuzheng http://www.zhangshuzheng.cn
rem GitHub: https://github.com/shuzheng
rem OsChina: http://git.oschina.net/shuzheng/zhengecho ==================begin========================cls
SET NGINX_PATH=D:
SET NGINX_DIR=D:\自己的nginx安装路径\nginx-1.11.4\
color 0a
TITLE zheng-tools Power By shuzheng (http://www.zhangshuzheng.cn)CLS ECHO.
ECHO.    ********************************************************************
ECHO.    *                                                                  *
ECHO.    *                                                                  *
ECHO.    *   zheng-tools Power By shuzheng (http://www.zhangshuzheng.cn)    *
ECHO.    *                                                                  *
ECHO.    *                                                                  *
ECHO.    ********************************************************************
ECHO. :MENU ECHO.---------------------------- nginx 进程列表 --------------------------------
tasklist|findstr /i "nginx.exe"
if ERRORLEVEL 1 (echo nginx未启动) else (echo nginx已启动)
ECHO.----------------------------------------------------------------------------ECHO. ECHO.  [1] 启动Nginx  ECHO.  [2] 关闭Nginx  ECHO.  [3] 重启Nginx  ECHO.  [4] 退 出
ECHO. ECHO.请输入选择项目的序号:
set /p ID=IF "%id%"=="1" GOTO start IF "%id%"=="2" GOTO stop IF "%id%"=="3" GOTO restart IF "%id%"=="4" EXIT
PAUSE :start call :startNginxECHO.============================================================================ECHO. ECHO. GOTO MENU:stop call :shutdownNginxECHO.============================================================================ECHO. ECHO. GOTO MENU
:restart call :shutdownNginxcall :startNginxECHO.============================================================================ECHO. ECHO. GOTO MENU:shutdownNginxECHO. ECHO.关闭Nginx...... taskkill /F /IM nginx.exe > nulECHO.OK,关闭所有nginx 进程goto :eof:startNginxECHO. ECHO.启动Nginx...... IF NOT EXIST "%NGINX_DIR%nginx.exe" ECHO "%NGINX_DIR%nginx.exe"不存在 %NGINX_PATH% cd "%NGINX_DIR%" IF EXIST "%NGINX_DIR%nginx.exe" (echo "start '' nginx.exe"start "" nginx.exe)ECHO.OKgoto :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/

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

  1. 深入谷歌开源项目【1】 - Camer2 - 环境搭建和源码编译

    前言:搞机器视觉,目前一般都有用摄像模组,或者工业相机,可是如果要搞到消费类,手机却不行.因为,手机上有个各种特效,这些都会对视觉效果有影响.所以,要在手机上搞,必须对手机的系统上的摄像头应用能够底层 ...

  2. OpenCV学习1--介绍与环境搭建

    OpenCV学习1--介绍与环境搭建 PS:安装过程中的一些总结和教训 安装文件夹里的V11对应的是VS2012版本,V14对应的是VS2015版本,所以使用VS2012的人可能无法使用opencv3 ...

  3. VUE项目学习(一):搭建VUE前端项目

    VUE项目学习(一):搭建VUE前端项目 1.安装node.js环境 (1)下载node.js,下载地址为:https://nodejs.org/en/ (2)按照默认选项安装node,检查安装版本 ...

  4. Ionic 学习笔记之-痛彻心扉的环境搭建

    Ionic 学习笔记之-痛彻心扉的环境搭建 最近在学习Ionic 做多平台的应用.跨平台应用.就是用html写的界面.js实现逻辑. 在学ionic之前选了各种跨平台APP开发框架.最后选择了ioni ...

  5. FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译

    FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译 什么是Firmament? Firmament (FMT) 是一款基于模型设计 (Model-Based-Design, M ...

  6. 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建

    基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 文章目录 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 一.环境搭建 1.虚拟机Ubuntu系统安装 2.dock ...

  7. DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu)

    DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu) 目录 1.安装nvidia驱动 2.安装CUDA ...

  8. OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...

  9. 用JIRA管理你的项目——(一)JIRA环境搭建

    JIRA,大家应该都已经不陌生了!  最初接触这个工具的时候,我还在一味地单纯依靠SVN管理代码,幻想着SVN可以有个邮件通知,至少在项目成员进行代码修改的时候,我可以第一时间通过邮件获得这个消息!  ...

  10. 开源项目学习系列--02.天天酷音TTKMusicplayer

    开源项目学习系列--02.天天酷音TTKMusicplayer 1 简介 2 代码地址 3 基础知识 4 思路 5 代码分析 5.1 编译 5.2 参考 1 简介 天天酷音播放器,核心功能是采用基于 ...

最新文章

  1. php pthread安装编译,php 多线程扩展 pthreads 安装 及 使用
  2. %@page contentType=text/html;charset=gbk%与meta http-equiv=Content-Type content=text/html; ch...
  3. C# 中socket根据Receive判断 TcpClient关闭连接的处理
  4. js 操作location URL对象进行操作
  5. jquery点击事件传值加载页面_jQuery添加options点击事件并传值
  6. 调用newtonsoft.json反序列出错
  7. python print table_python 6.7 编写printTable()函数表格打印(完整代码)
  8. c# 系列 - 基本知识
  9. 190410每日一句
  10. Vue中解决移动端点击300毫秒延迟的问题
  11. 电脑播放SACD-ISO/DSD/DFF音乐
  12. typedef用法,函数指针
  13. 移动硬盘已连接USB但不显示盘符怎么办
  14. 【easyui】easyui datagrid deleteRow报错修复
  15. 爱奇艺内容中台数据中心的设计与实现
  16. win10安装oracle11g
  17. 关于Adobe PDF 0day的故事
  18. 网页设计(六)——基于HTML+CSS框架的网页设计实例
  19. 基于ICSharpCode.SharpZipLib组件的打包压缩目录的方法
  20. 中国大学MOOC政府会计实务题库及答案

热门文章

  1. txt音乐播放器PC版免费下载(包含C程序源码与exe文件)
  2. Ubuntu 20.04换阿里源
  3. 渗透之——SQLMap参数说明
  4. 赵伯平--警惕台湾的企业管理垃圾!
  5. 国内的微软更新服务器地址,windows update 服务器
  6. 2021-2027全球与中国功能性涂层复合材料市场现状及未来发展趋势
  7. App保持登录状态的常用方法
  8. 电商平台10大商业与盈利模式
  9. 网友眼中的杭州IT公司排名
  10. Android WebView 调用相机、相册,压缩图片后上传