開源項目學習之(一)------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下:

[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/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章