【Linux】CentOs7下SonarQube7.2.1的安裝部署
本文目錄
Linux下SonarQube7.2.1的安裝部署
雖然java語言有阿里規約外掛,但使用一段時間以後,發現阿里規約外掛只是簡單的掃描了一些程式碼的規範,無法對程式碼質量進行檢測,以及一些隱含的漏洞,如空指標等。因此,在瞭解
sonar
以後,發現sonar
比阿里規約外掛更強大,結合Idea,可以在每次提交程式碼時,自動掃描是否存在問題。
1. 環境說明
本次安裝環境說明,目前SonarQube
使用最新的版本7.2.1
,檢視官網的要求說明 ,如下所示:
從上圖可知,jdk
最好是1.8
,對於1.7
和1.9
都不支援。
軟體版本
- jdk : 1.8
- Linux:CentOs7-64位
- Mysql:5.7.21
- SonarQube:7.2.1(點選下載)
相關IP
- 本機IP:192.168.137.1
- mysql:部署在本機,即192.168.137.1
- 伺服器IP:192.168.229.128
2. 安裝部署
2.1 建立資料庫
sonar支援多種資料庫,本身預設使用的是記憶體資料庫,但這裡使用的是Mysql,因此需要做一些配置。
啟動之前,需要建立相關資料庫,這裡建立一個名為sonar
的資料庫:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
只需要建立資料庫即可,sonar
會自動為我們建立相關的表。
2.2 準備安裝包
將下載好的安裝包上傳到/usr/tools/sonar/
(自行建立)目錄下,或者在該目錄下執行wget
命令線上下載:
[root@localhost sonar]# wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-7.2.1.zip
執行unzip
命令解壓:
[root@localhost sonar]# unzip sonarqube-7.2.1.zip
2.2 配置
進入到sonarqube-7.2.1/
目錄下,檢視檔案:
[root@localhost sonar]# cd sonarqube-7.2.1/
[root@localhost sonar]# ls
如下所示:
其中,bin
存放程式執行檔案,conf
存放配置檔案,logs
存放日誌檔案。
然後,進入到/conf
目錄下,配置資料庫資訊,修改sonar.properties
檔案,新增以下配置:
sonar.jdbc.url=jdbc:mysql://192.168.137.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
url
是資料庫連線地址,username
是資料庫使用者名稱,jdbc.password
是資料庫密碼。
2.3 建立使用者
由於
sonar
是不允許root使用者情況下執行的,因此需要先建立一個非root使用者。
這裡,建立一個名為sonar
的使用者,密碼為123456
。
用root賬號登入,使用以下命令:
#建立使用者
[root@localhost user]# useradd sonar
#設定密碼,enter回車後,兩次輸入123456即可
[root@localhost user]# passwd sonar
如下圖所示:
賦予目錄許可權
新建的sonar
使用者,對於/usr/tools/sonar
目錄是沒有足夠許可權的,會導致服務啟動失敗。因此我們需要設定該目錄許可權:
chmod -R 777 /usr/tools/sonar/
然後,執行以下命令,切換到sonar
使用者:
[root@localhost usr]# su - sonar
3. 啟動
切換到sonar
使用者以後,進入到/usr/tools/sonar/sonarqube-7.2.1/bin/
目錄下:
[sonar@localhost ~]$ cd /usr/tools/sonar/sonarqube-7.2.1/bin/
使用ls
命令,檢視該目錄:
發現存在多個目錄,此時根據自己的伺服器選擇對應的目錄,比如我的是Linux 64位,則選擇linux-x86-64
,進入到該目錄下,執行以下命令,啟動服務:
[sonar@localhost linux-x86-64]$ ./sonar.sh start
其它命令:
- ./sonar.sh stop 停止服務
- ./sonar.sh restart 重啟服務
初次啟動會稍微有點慢,因為要初始化資料庫資訊。
此時,檢視日誌:
tail -300f /usr/tools/sonar/sonarqube-7.2.1/logs/sonar.log
出現以上資訊,表示啟動成功。
4. 訪問及介面漢化
sonar預設監聽的埠時
9000
,可以在sonar.properties
中通過sonar.web.port=埠號
來修改。
點選右上角的log in
,到登陸介面,然後輸入admin/admin
(預設賬戶),初次登入成功以後,會跳轉到該介面:
這裡是讓你輸入一個使用者名稱,生成一個token,主要用於後面其他外掛如idea
時,代替使用者名稱、密碼登入。可以後面需要的時候再生成,這裡跳過,選擇右上角的skip this tutorial
。
漢化
點選介面上的Adminstration
,然後選擇Marketplace
,在Plugins
一欄,搜尋Chinese Pack
,然後點選insatll
進行安裝,如下所示:
安裝完成以後,點選頁面上Restart
按鈕,重啟伺服器,如下圖所示:
等待一會兒,重啟完畢以後,會自動跳轉到登入介面。輸入admin/admin
登入以後,便會看到漢化成功:
至此,SonarQube
安裝部署完成。
5. 總結
安裝的過程中可能會出現很多其他的錯誤,當出現錯誤時,請檢查步驟是否出錯。主要有以下注意點。
- 一定要注意各軟體的版本,比如
jdk
版本; - 服務啟動之前必須建立對應的資料庫,不需要建立表,
sonar
會自動初始化表; - root使用者下是無法啟動
sonar
服務,因此需要建立相關非root用,並對安裝目錄擁有足夠許可權; sonar.properties
中資料庫的配置,一定要仔細,一般啟動失敗,很大可能是因為資料庫配置有問題;- 初次啟動時,由於需要初始化資料庫表,因此會比較緩慢。
後續,會補充如何使用sonar-scanner
掃描程式碼,及在idea中如何配置sonar
外掛。