开源项目学习之(一)------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下:
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"目錄下:
(四)、啟動并運行相關程序工作
我把有關的工具都解壓到該目錄下了:
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环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大话数据结构学习笔记(8)二叉树
- 下一篇: STK入门级模拟卫星轨道