Centos7下安装SonarQube代码质量管理平台!

技术分享 2018年09月27日 阅读 2251 豆浆大叔

这里先介绍如何在linux下安装SonarQube,并非怎么使用!后面会介绍如何使用SonarQube,怎样检测项目下代码存在的风险,错误等等!

sonarqube系统是一个代码质量检测工具 由以下四个组件组成
   1.一个sonarqube服务器 包含三个子进程(web服务(界面管理),搜索服务 计算引擎服务(写入数据库))
   2.一个sonarqube数据库 配置sonarqube服务
   3.多个sonarqube插件 位于解压目录 extensionsplugins目录
   4.一个或者多个sonarqube scanners 用于分析特定的项目

一,准备工作

1,官网地址,SonarQube官网,下面是官网截图:

注意:安装的前提是需要安装java jdk才可以启动sonar

2,下载地址:SonarQube下载地址

3,SonarQube使用版本配置说明
参考地址:环境配置介绍地址
java Jdk 版本

Mysql版本

Web Browser版本

从上面我们可以看到,jdk为1.8版本,mysql为5.6或者5.7版本,ie浏览器支持ie11版本。

二,安装部署sonar环境

服务器ip地址:192.168.153.129

Mysql的版本部署在本机上:5.7.21版本

Sonar支持多种数据库,本身默认使用的是内存数据库,我们选择使用mysql毕竟是常使用的,所以等下要配置下。

1,下载安装包
下载链接:安装包地址

我们使用wget 下载: 下载存放的文件夹是/usr/local/sonar

[root@test sonar]# wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-7.3.zip
或者使用:可以使用rz命令
需要安装  lrzsz yum install lrzsz
sz命令发送文件到本地:
# sz filename
rz命令本地上传文件到服务器:
# rz
执行该命令后,在弹出框中选择要上传的文件即可。

需要使用unzip命令解压,安装:yum install unzip

2,解压压缩包,并配置sonar文件

#执行
[root@test sonar]# unzip sonarqube-7.3

解压完毕以后,进入解压目录查看:sonarqube-7.3/

[root@test sonar]# cd sonarqube-7.3
[root@test sonarqube-7.3]# ls
bin  conf  COPYING  data  elasticsearch  extensions  lib  logs  temp  web
其中,bin 存放程序执行文件,conf 存放配置文件,logs 存放日志文件。

然后,进入到/conf目录下,配置数据库信息,修改sonar.properties文件,添加以下配置:

[root@test sonarqube-7.3]# cd conf/
[root@test conf]# ls
sonar.properties  wrapper.conf
[root@test conf]# vim sonar.properties

添加一下信息:

sonar.jdbc.username=root // 找到该项配置 去掉前面的#号 写上数据库用户名
sonar.jdbc.password=root123 //找到该配置  同样去掉前面#号 数据库密码
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false //找到该项 也是去掉前面#号,

localhost可以更改为你自己的ip地址,我这里是本机就默认。url是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码。

三,创建执行sonar的用户,赋予权限,启动sonar

由于sonar 是不允许root用户情况下运行的,因此需要先创建一个非root用户。 这里,创建一个名为sonar的用户,密码为123456

1,创建用户

[root@test conf]# useradd sonar #创建用户
[root@test conf]# passwd sonar #创建密码 都是123456
Changing password for user sonar.
New password: 
Retype new password: 
Sorry, passwords do not match.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@test conf]# 

2,给用户赋予文件目录权限
新建的sonar用户,对于/usr/local/sonar 目录是没有足够权限的,会导致服务启动失败。因此我们需要设置该目录权限。

#赋予sonar权限
[root@test conf]# chown -R sonar:sonar /usr/local/sonar/sonarqube-7.3
切换到sonar用户:[root@test conf]# su sonar

3,启动sonar
进入执行目录:/usr/local/sonar/sonarqube-7.3/bin/

[sonar@test ~]$ cd /usr/local/sonar/sonarqube-7.3/bin/
[sonar@test bin]$ 
查看执行目录:
[sonar@test bin]$ ls
jsw-license  linux-x86-32  linux-x86-64  macosx-universal-64  windows-x86-32  windows-x86-64
发现存在多个目录,此时根据自己的服务器选择对应的目录,比如我的是Linux 64位,则选择linux-x86-64,进入到该目录下,执行以下命令,启动服务。
[sonar@test bin]$ cd linux-x86-64/
[sonar@test linux-x86-64]$ ./sonar.sh start
Starting SonarQube...
Started SonarQube.
./sonar.sh stop 停止服务 
./sonar.sh restart 重启服务

查看启动日志:

[sonar@test linux-x86-64]$ cat /usr/local/sonar/sonarqube-7.3/logs/sonar.log 
或者
[sonar@test linux-x86-64]$ tail -300f /usr/local/sonar/sonarqube-7.3/logs/sonar.log 

四,配置界面访问

sonar默认监听的端口时9000,可以在sonar.properties中通过sonar.web.port=端口号来修改。

下面是初始化的数据库文件:

通过浏览器访问默认地址:http://192.168.153.129:9000 会发现启动不了!第一时间想到的是端口被占用。

查看端口:

[root@test sonar]# netstat -nltp
[root@test sonar]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      976/php-fpm: master 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1153/nginx: master           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1213/master         
tcp        0      0 127.0.0.1:32000         0.0.0.0:*               LISTEN      9853/java           
tcp        0      0 127.0.0.1:32001         0.0.0.0:*               LISTEN      10521/java          
tcp6       0      0 127.0.0.1:9001          :::*                    LISTEN      9878/java           
tcp6       0      0 :::3306                 :::*                    LISTEN      9502/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      969/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1213/master         
tcp6       0      0 127.0.0.1:38431         :::*                    LISTEN      10187/java          
tcp6       0      0 :::9090                 :::*                    LISTEN      9972/java   #这个是我修改后出现的

这是我这边的情况 9000端口是php-fpm在使用 9001是java在占用 所以我修改为9090端口。

[sonar@test linux-x86-64]$ vim /usr/local/sonar/sonarqube-7.3/conf/sonar.properties 
sonar.web.port=9090 #即可
[sonar@test linux-x86-64]$ ./sonar.sh restart

浏览器访问:http://192.168.153.129:9090

点击右上角的log in,到登陆界面,然后输入admin/admin(默认账户),初次登录成功以后,会跳转到该界面。

这里是让你输入一个用户名,生成一个token,主要用于后面其他插件如idea时,代替用户名、密码登录。可以后面需要的时候再生成,这里跳过,选择右下角的skip this tutorial

汉化 点击界面上的Adminstration,然后选择Marketplace,在Plugins一栏,搜索Chinese Pack,然后点击insatll进行安装,如下所示:

安裝完成以后,点击页面上Restart按钮,重启服务器即可。

下面是我虚拟机报的错:

这个呢,是我虚拟机的根目录磁盘不够用了导致没有空余磁盘空间下载了,所以我这里就没有再继续下去,今天刚把其他盘的清空 合并到根目录。后面我们继续讲解如何使用它来检测我们的代码问题!

豆浆大叔 豆浆大叔 资深PHP工程师@某一线大厂

写了 264486 字,被 3 人关注,共写了 75 篇笔记

(已更名,豆浆大叔)有理想的码农,不应该只探究人性的懒惰面,而是积极的去探索人生道路上的荆棘坎坷,努力提升自己完善自己!
推荐文章:
  • 大数据领域Flink 与 Spark之间的区别?

    学而不思则罔 思而不学则殆,2020年砥砺前行!前言大家都知道已经2020年了,也到了新的一年。作为一个主营电商的公司,年底都会很忙。所以最近的更新进度也停滞不前,本来准备大侃PHP设计模式的,但是因...

    豆浆大叔 3个月前 3 吐槽 264 围观 技术分享
  • php如何实现钩子与实践案例

    前言学而不思则罔,思而不学则殆。30则而立,头顶正则脱光!昨天晚上,突然想起了PHP中的钩子如何使用?说实话,像dz,wordpress,TP,CI框架都已经集成了Hook钩子,尽管我不怎么使用框架以...

    豆浆大叔 3个月前 0 吐槽 101 围观 技术分享
  • Linux无法显示ip地址的解决办法

    今天想趁着有时间,用虚拟机调试一下lua脚本和其他的功能,结果启动虚拟机使用xshell连接不上,然后使用终端查看IP地址无法查看到,记录一下排查错误流程。查看IP地址使用ip addr 或者 ifc...

    豆浆大叔 4个月前 0 吐槽 155 围观 技术分享
  • 高并发性能指标QPS,TPS,RT,并发数,吞吐量是指什么?

    QPS,每秒查询QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系...

    豆浆大叔 4个月前 0 吐槽 365 围观 技术分享
  • 分享一些PHP常用的小算法

    下面分享一些最常见的算法,用PHP如何实现,拓展下知识面。冒泡排序function bubble_sort($arr) { $n=count($arr); for($i=0;$i<$n-1;$...

    我也庸俗 4个月前 0 吐槽 134 围观 技术分享
表情
  • [:821l1001:]
  • [:821l1002:]
  • [:821l1003:]
  • [:821l1004:]
  • [:821l1005:]
  • [:821l1006:]
  • [:821l1007:]
  • [:821l1008:]
  • [:821l1009:]
  • [:821l1010:]
  • [:821l1011:]
  • [:821l1012:]
  • [:821l1013:]
  • [:821l1014:]
  • [:821l1015:]
  • [:821l1016:]
  • [:821l1017:]
  • [:821l1018:]
  • [:821l1019:]
  • [:821l1020:]
  • [:821l1021:]
  • [:821l1022:]
  • [:821l1023:]
  • [:821l1024:]
  • [:821l1025:]
  • [:821l1026:]
  • [:821l1027:]
  • [:821l1028:]
  • [:821l1029:]
  • [:821l1030:]
  • [:821l1031:]
  • [:821l1032:]
  • [:821l1033:]
  • [:821l1034:]
  • [:821l1035:]
  • [:821l1036:]
  • [:821l1037:]
  • [:821l1038:]
  • [:821l1039:]
  • [:821l1040:]
  • [:821l1041:]
  • [:821l1042:]
  • [:821l1043:]
  • [:821l1044:]
  • [:821l1045:]
  • [:821l1046:]
  • [:821l1047:]
  • [:821l1048:]
  • [:821l1049:]
  • [:anger:]
  • [:applause:]
  • [:awkward:]
  • [:brokenheart:]
  • [:clown:]
  • [:confused:]
  • [:decline:]
  • [:diggingmouth:]
  • [:eyebrows:]
  • [:grinning:]
  • [:haha:]
  • [:ill:]
  • [:kiss:]
  • [:lascivious:]
  • [:laugh:]
  • [:love:]
  • [:lovely:]
  • [:rhinorrhea:]
  • [:smile:]
  • [:solid:]
  • [:strong:]
  • [:sweat:]
  • [:tearcollapse:]
  • [:tongue:]
  • [:uncomfortable:]
  • [:weak:]
  • [:worry:]
Tips:支持Markdown语法

0 个评论

抢座沙发~~~~
资深PHP工程师 @ 某一线大厂

登录

第三方账号登录:
GitHub
微信
微博