Cetos 7 安装sonar

Cetos 7 安装sonar
安装jdk,
rpm -ivh jdk-8u221-linux-x64.rpm
#java -version 如果显示openjdk后,一定要先删除先
rpm -qa | grep java
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
linux RPM格式安装mysql出现 错误:依赖检测失败: mariadb-libs 被 mysql-community-libs-8.0.13-1.el7.x86_64 取代
一个命令:yum remove mysql-libs解决
清除之前安装过的依赖即可
Mysql用户名:root
密码:Root12#$
高版本卸载,需要删除数据文件/var/lib/mysqll低版本才能使用
在/home/sonar,下新建三个文件夹分别为mysq,sonar,java
一:安装JDK
(1)
cd /home/soanr/java/
chmod 777 jdk-8u111-linux-x64.rpm
 
(4)使用命令安装rpm文件
sudo rpm -ivh jdk-8u111-linux-x64.rpm
 
(5)使用命令检查jdk
java -version
如果出现了版本号,则是成功的
[sonar@sonar ~]$ java -version
java version “1.8.0_111”
Java™ SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot™ 64-Bit Server VM (build 25.111-b14, mixed mode)
[sonar@sonar ~]$
(6)在用户的主目录,使用命令 vi .bash_profile可以打开文件,按下Insert键可以进行操作
修改前
export PATH
修改后
export PATH
export JAVA_HOME=/usr/bin/java
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
export CLASSPATH=./ J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
关于怎么得到jdk的地址,我们可以使用命令 whereis java即可以得到地址,修改文件后,按Esc键,加入命令:wq再回车,即可保存当前修改
 
(7)测试文件,用文本编辑器在windows下新建一个Test.java文件,输入以下代码并保存再复制至当前系统中
public class test {
public static void main(String args[]) {
System.out.println(“A new jdk test !”);
}
}
使用命令,如果系统能够打印出“A new jdk test !”这个文本则是成功的
javac test.java
java test

二:安装mysql(注意sonar 仅支持mysql 大于等于5.7,小于8.0的版本 )
(1)将下载的mysql的client,common,libs,server复制至/mysql中
(2)运行命令为文件加入权限
chmod 777 *
(3)运行安装文件(注意安装时有提示依赖关系安装)
rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64
rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64
rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64
(4)查看是否安装成功。
rpm -qa | grep mysql
(5)启动服务
sudo service mysqld start
(6)查看服务
sudo service mysqld status
(7)查看mysql默认口令
sudo grep ‘temporary password’ /var/log/mysqld.log
服务器回应,查看默认的口令就是:p0tqiA+dy;NM
[sonar@localhost mysql]$ sudo grep ‘temporary password’ /var/log/mysqld.log
2019-07-31T05:18:50.920260Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rg0do</oQ#yu
2019-07-31T08:35:38.487424Z 1 [Note] A temporary password is generated for root@localhost: p0tqiA+dy;NM
因为我安装了两次,所有随机生成了两次密码,以最后的为最新。
(8)使用root尝试登陆mysql,使用默认的口令
mysql -u root -p
(9)修改口令
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY 'Root12#KaTeX parse error: Expected 'EOF', got '#' at position 3: ';#̲给root用户更改口令为Roo…
回显:Query OK, 0 rows affected (0.00 sec)
注意:新改口令必须有大写,小写,特殊字符及8位长度。
(10)使用命令查看所有DB
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
±-------------------+4 rows in set (0.00 sec)

三:安装sonarQube
(0)登陆mysql运行脚本
[sonar@sonar etc]$ mysql -u root -p
Enter password:
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; #新建sonar数据库,定义数据的类型为ustf8,定义数据编码为utf8_general_ci.
mysql> CREATE USER ‘sonar’ IDENTIFIED BY ‘Sonarqube’;#新建sonar用户,并设密码
mysql> GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;#给sonar中所有表援权
mysql> GRANT ALL ON sonar.* TO ‘sonar’@‘localhost’ IDENTIFIED BY ‘sonar’;
mysql> FLUSH PRIVILEGES;#刷新配置。
运行创建用户,一定要记得尝试使用新创建的用户登陆至mysql
至此,mysql会新建一个数据库sonar,以上的脚本会创建一个数据库及用户名sonar,并将用户sonar应用至sonar数据库
mysql> show databases;±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sonar |
| sys |
±-------------------+
5 rows in set (0.00 sec)

(2)分别进入两个文件夹,对文件增加权限
chmod 777 sonarqube-6.1.zipchmod 777 sonar-scanner-2.8.zip
 服务器回应
(3)解压zip文件
(3.1)进入/sonar中,使用命令解压sonarqube-6.1.zip
unzip sonarqube-6.1.zip
(3.2)进入/sonar中,解压sonar-scanner-2.8.zip
unzip sonar-scanner-2.8.zip
(4)进入至/sonar/sonarqube-6.1/conf中,使用vim命令打开sonar.properties
vi sonar.properties
并修改其中的三个节点,修改的方式只需要将行内容最前的#号删除即可
建议是,创建用户后, 使用用户登陆一下mysql看一下是否能够正常登陆,不然在运行sonar时,肯定不会成功,且你很难反应是mysql口令的原因。
在14.15.23行中把下面的几个选项打开。
14 行 sonar.jdbc.username=sonar
15行 sonar.jdbc.password=Sonr12#$

23行sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
(5)打开文件夹
[sonar@sonar sonar]$ cd sonarqube-6.1/bin/linux-x86-64/
[sonar@sonar linux-x86-64]$ ls -l
total 128
drwxr-xr-x. 2 sonar sonar 26 Dec 9 2010 lib-rwxr-xr-x. 1 sonar sonar 15521 Oct 11 09:02 sonar.sh-rwxr-xr-x. 1 sonar sonar 111027 Dec 9 2010 wrapper

(6)运行命令,我们这里是使用启动服务,使用 sonar.sh start
sonar.sh start 启动服务
sonar.sh stop 停止服务
sonar.sh restart 重启服务
[sonar@sonar linux-x86-64]$ sonar.sh start-bash: sonar.sh: command not found
与Windows不同,Windows命令窗口中会出现所有的信息,但Linux会将运行的信息都存放至sonar文件夹中的logs子文件夹,可以在其中查看sonar.log文件(有时文件太大,则会分成几个文件,文件名与日期对应),开始我一直以为不成功,其实后台有一部分的信息已经保存下来了.
使用命令可以在本机打开网站
curl http://localhost:9000
只要能够看到网页的HTML代码,则是成功的,如果有查看我之前的文章,在Windows中安装sonar的话,此刻应该可以通过浏览器打开http://localhost:9000了,但Linux不同,即使内部能够访问,但还需要将防火墙中打开某个端口才可以在服务器外部进行访问
 
(7)配置firewalld
先查看firewalld状态,使用系统查看,或是直接firewall-cmd 命令查看
[root@sonar ~]# systemctl status firewalld #查看状态
[root@sonar ~]# firewall-cmd --state
FirewallD is not running

[root@sonar ~]# systemctl start firewalld #开户防火墙
[root@sonar ~]# firewall-cmd --state
running
 
另外关于增加端口的文章,参考:http://stackoverflow.com/questions/24729024/centos-7-open-firewall-port
[root@sonar ~]# firewall-cmd --zone=public --add-port=9000/tcp --permanent
success
[root@sonar ~]# firewall-cmd --zone=dmz --add-port=9000/tcp --permanent
success
[root@sonar ~]# firewall-cmd --reload
success

写在最后,至此,Linux服务器上的sonarQube Server端已经完整安装了,但关于Scan代码的问题上,有一个很关键的问题就是,无法在Linux服务器中Scan C#的源代码。
(四)Sonarqube汉化

2017-01-19更新
今天看到关于C#/Java/JavaScript的插件有新版本可以更新,所以就想将最新的插件安装至sonarQube系统中,但却发现更新插件后重启服务器时等了很久都不见完成,并且在等待了20分钟后再次刷新,发现sonarQube的站点无法访问了,这可点方了,因为这个是正式环境的服务器,如果不能使用将带来很大的影响,方是方,但还得解决问题不是?
下图是我打开插件中心发现的更新插件,解决问题后我只更新了C#插件,另外两个都没有进行更新。出现问题的就是Java插件(4.4)

下图就是使用Chrome浏览器刷新后无法访问的图片

我首先想到的是sonarQube出现了问题,其次是Linux防火墙出现了问题,
1.我先查看了sonarQube的日志
/sonarqube6.1/logs/sonar.log,出现问题时一般先查看该日志文件
尝试重启sonarQube服务器

[sonar@sonar linux-x86-64]$ sonar.sh start
Starting SonarQube…
Started SonarQube.
[sonar@sonar linux-x86-64]$ sonar.sh stop
Stopping SonarQube…
SonarQube was not running.
[sonar@sonar linux-x86-64]$ sonar.sh start
Starting SonarQube…
Started SonarQube.
[sonar@sonar linux-x86-64]$ sonar.sh status
SonarQube is not running.
[sonar@sonar linux-x86-64]$ sonar.sh start -uroot -p
Starting SonarQube…
Started SonarQube.
[sonar@sonar linux-x86-64]$ curl http://localhost:9000
curl: (7) Failed connect to localhost:9000; Connection refused
看起来似乎服务可以起来,但是在Linux服务器上访问却不成功,这个时候我却以为sonarQube是没有问题的,继续想着查看是否是防火墙出现了问题
2.其次查看了Linux防火墙
[sonar@sonar linux-x86-64]$ curl http://localhost:9000
curl: (7) Failed connect to localhost:9000; Connection refused
[sonar@sonar linux-x86-64]$ curl http://localhost:9000
curl: (7) Failed connect to localhost:9000; Connection refused
[root@sonar ~]# netstat -tpln | grep 9000
tcp6 0 0 :::9000 ::? LISTEN 50177/java
[root@sonar ~]# curl http://localhost:9000
 在重启了sonarQube服务一会儿是在正常监听9000端口的,但过一会儿又不行了,这应该问题还是出现在sonarQube,查看日志
 问题出在其中的Java插件,原因可能是没有下载完成Java插件,导致解压失败,从而导致整个sonarQube启动失败。
尝试办法1:将Java插件先改名,再重新启动sonarQube
结果1:sonarQube还是认到原有下载未完成的Java插件,无法解决该问题
尝试办法2:将Java插件完全删除,再重新启动sonarQube
结果2:sonarQube没有插件还是无法启动sonarQube,启动几秒后服务还是会死掉
尝试办法3:从windows系统下载Java插件最新版本,并复制至Linux机器上,再重新启动sonarQube
未知结果3:因为在复制插件文件的过程中,老是会中断,导致文件复制老是失败,就放弃了该方法
尝试办法4:将原sonarQube文件改名,并将原sonarQube压缩包重新解压缩生成sonarQube文件夹,只是将原有的配置文件替换新的配置文件
结果4:因为新的sonarQube是使用原来的文件夹名称,原来已经进行过相应的配置,确实能够解决该问题,但不是最好的方法,个人认为比较好的方法就是使用办法3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值