【經典】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
- 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