一、項目簡介
?
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
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"目錄下:
?
[java]?view plain?copy
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為如下內容:
?
[html]?view plain?copy
#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文件內容如下:
?
[html]?view plain?copy
@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/zheng????echo?==================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?:startNginx??????ECHO.============================================================================??????ECHO.???????ECHO.???????GOTO?MENU????:stop???????call?:shutdownNginx??????ECHO.============================================================================??????ECHO.???????ECHO.???????GOTO?MENU??:restart???????call?:shutdownNginx??????call?:startNginx??????ECHO.============================================================================??????ECHO.???????ECHO.???????GOTO?MENU????:shutdownNginx??????ECHO.???????ECHO.關閉Nginx......???????taskkill?/F?/IM?nginx.exe?>?nul??????ECHO.OK,關閉所有nginx?進程??????goto?:eof????:startNginx??????ECHO.???????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.OK??????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
總結
以上是生活随笔為你收集整理的【经典】zheng项目搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。