sonarqube For PHP 代碼質量管理

下載jdk&sonarqube&sonar-scanner

安裝jdkphp

基於ubuntu 16.04+apache[具體webserver採用缺省安裝]
推薦下載安裝【底部有網盤地址】css

sonarqube-5.6.6.zip 
jdk-8u121-linux-x64.tar.gz 
sonar-scanner-2.8.zip

解壓安裝配置環境變量

個人在usr/local下,uzip解壓 mv等操做略過 .html

root@ubuntu:/usr/local/sonar# ls
sonarqube-5.6.6  sonar-scanner-2.8
root@ubuntu:/usr/local/sonar#
root@ubuntu:/usr/local/java# ls
jdk1.8.0_121
root@ubuntu:/usr/local/java#
vim ~/.bashrc

打開以後在末尾添加,如下只是參考,只要放到環境變量就行java

export JAVA_HOME=/usr/local/java/YOUR_DOWN_LOAD_VERSION
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

export SONAR_HOME=/usr/local/sonar/sonarqube-5.6.6
export SONAR_RUNNER_HOME=/usr/local/sonar-scanner-2.8
export JAVA_HOME=/usr/local/java/jdk1.8.0_121
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${SONAR_RUNNER_HOME}/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

驗證一下java環境mysql

root@ubuntu:/usr/local/java# java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32      use a 32-bit 
    ...
    ...

mysql數據源配置,sonar配置文件

mysql -u root -p

如下除了第一行都不是必須linux

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
vim /usr/local/sonar/sonar-scanner-2.8/conf

注意如下配置mysql數據源,截取部分..web

#----- Global database settings (not used for SonarQube 5.2+)
sonar.jdbc.username=root
sonar.jdbc.password=root

#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

#----- MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
vim /usr/local/sonar/sonarqube-5.6.6/conf
# The schema must be created first.
sonar.jdbc.username=root
sonar.jdbc.password=root

#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092
#----- MySQL 5.6 or greater
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

啓動sonarqube,配置中文插件

/usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64/sonar.sh start

我這裏已經啓動了, sql

圖片描述

tb@ubuntu:/usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64$ /usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64/sonar.sh status
SonarQube is running (2187).

更好的啓動sonarqube

vim /etc/systemd/system/sonar.serviceapache

[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking

## 能夠具體路徑再改下
ExecStart=/usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64/sonar.sh start
ExecStop/usr/local/sonar/sonarqube-5.6.6/bin/linux-x86-64/sonar.sh stop

User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target

能夠經過如下語句控制ubuntu

systemclt start sonar
systemctl stop sonar
systemctl status sonar

若是有報錯: Process exited with exit value [es]: *

能夠追蹤sonarqube下的log文件,我這裏通過定位是啓動es的時候用root啓動了
須要adduser sonaradmin;passwd sonarsonaradmin;而後chown -R sonaradmin:sonaradmin /sonar_path便可
而後啓動用sonaradmin啓動便可成功。

若是有報錯: Java heap space

官方文檔便可

export SONAR_SCANNER_OPTS="-Xmx1028m"
set SONAR_SCANNER_OPTS=-Xmx512m

是時候來張圖了

具體的php和漢化,能夠經過web頁面install對應的插件。很方便。能夠直接搜索如 php chinese等,後臺默認用戶名 密碼都是 admin

圖片描述


引入具體項目

須要在你的檢測目錄下創建一個配置文件便可

tb@ubuntu:~/sonartest/CI_Cart$ ls
admin  application  ci_cart.sql  css  images  index.php  js  LICENSE  README.md  sonar-project.properties  system  uploads
tb@ubuntu:~/sonartest/CI_Cart$ pwd

上面的sonar-project.properties內容參考以下便可:

sonar.projectKey=org.codehaus.sonar:ci_cart
sonar.projectName=PHP CI_Cart  sonar test 
sonar.projectVersion=1.0 
#這裏是php文件放的地方 
sonar.sources=/home/tb/sonartest/CI_Cart
# 單元測試代碼目錄
#sonar.tests=./tests
#單元測試覆蓋率報告文件
#sonar.php.coverage.reortPath=./logs/clover.xml
#單元測試報告文件
#sonar.php.tests.reportPath=./logs/junit.xml
# Language 
sonar.language=php 
sonar.dynamicAnalysis=false 
# Encoding of the source files 
sonar.sourceEncoding=UTF-8
~

須要檢測代碼目錄執行scanner【須要有sonar配置文件】

root@ubuntu:/home/tb/sonartest/CI_Cart# /usr/local/sonar/sonar-scanner-2.8/bin/sonar-scanner 
INFO: Scanner configuration file: /usr/local/sonar/sonar-scanner-2.8/conf/sonar-scanner.properties
INFO: Project root configuration file: /home/tb/sonartest/CI_Cart/sonar-project.properties
INFO: SonarQube Scanner 2.8
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Linux 4.4.0-62-generic amd64
INFO: User cache: /root/.sonar/cache
INFO: Load global repositories
INFO: Load global repositories (done) | time=221ms

自動化Jenkins瞭解一下

安裝jenkins
圖片描述

須要安裝locale插件漢化,以後須要重啓

Locale     Downloaded Successfully. Will be activated during the next boot
Locale     Success

因爲經過apt-get isntall jenkins安裝的,我直接/etc/init.d/jenkins {start|stop|status|restart|force-reload}便可

百度網盤下載地址
how-to-install-sonarqube-on-ubuntu-16-04

相關文章
相關標籤/搜索