1. 程式人生 > >【Linux】CentOs7下SonarQube7.2.1的安裝部署

【Linux】CentOs7下SonarQube7.2.1的安裝部署

本文目錄

Linux下SonarQube7.2.1的安裝部署

雖然java語言有阿里規約外掛,但使用一段時間以後,發現阿里規約外掛只是簡單的掃描了一些程式碼的規範,無法對程式碼質量進行檢測,以及一些隱含的漏洞,如空指標等。因此,在瞭解sonar以後,發現sonar比阿里規約外掛更強大,結合Idea,可以在每次提交程式碼時,自動掃描是否存在問題。

1. 環境說明

本次安裝環境說明,目前SonarQube 使用最新的版本7.2.1,檢視官網的要求說明 ,如下所示:
java要求說明
資料庫要求說明
瀏覽器要求說明

從上圖可知,jdk 最好是1.8,對於1.71.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外掛。