1.创建数据库
安装sonar之前要先创建数据库及数据库的用户。sornar默认就装载了Apache Derby ( an Apache DB subproject ) ,所以如果使用 Derby就不需要安装;它只是用于演示和测试,在实际应用中还是用外部强健的数据库,更多详细见 supported platforms 。
要使用外部数据库,它要求明确建立 database schema 和 permission ,当第一次启动sonar 的时候,table和 index会自动创建,例如设置使用的外部数据库为 MySql 数据库,可以用以下脚本:
#
# Create Sonar database and user.
#
# Command: mysql -u root -p < create_database.sql
#
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;
注:当创建数据库时,Character Set 推荐使用utf-8 ,同时校验规则 Collation 是对大小写敏感。
提醒:切忌使用Mysql默认创建的mysql数据库,一定要按上面的步骤创建新的sonar数据库,否则sonar在启动过程会报错“Failed to create table "schema_migrations"......”。
2. 下载安装
官方文档:https://docs.sonarqube.org/display/SONAR/Installing+the+Server
官方下载:https://www.sonarqube.org/downloads/
官方下载的为zip包,解压需用到unzip软件,如果没有安装unzip要先安装:
$sudo yum -y install unzip
当然也可以用系统盘自带的unzip安装包,挂载系统盘,将unzip安装拷贝到/tmp,执行命令安装即可:
$sudo mount /dev/cdrom /mnt/cdrom
$sudo cp /mnt/cdrom/Packages/unzip-6.0-19.el7.x86_64.rpm /tmp
$cd /tmp
$sudo rpm -ivh unzip-6.0-19.el7.x86_64.rpm
unzip安装成功后,将下载好的sonarqube-6.7.6.zip拷贝到/tmp,解压后移动到/usr/local/目录下:
$cp /mnt/hgfs/win/sonarqube-6.7.6.zip /tmp
$cd /tmp
$unzip sonarqube-6.7.6.zip
$sudo mv sonarqube-6.7.6/ /usr/local/
更改sonar安装目录的权限:
$sudo chown -R xxx /usr/local/sonarqube-6.7.6/
3. 配置sonar
sonar的配置文件sonar.properties在安装目录下的conf下,编辑该配置文件:
$sudo vi /usr/local/sonarqube-6.7.6/conf/sonar.properties
保存,退出!
4. 启动sonar
正式启动sonar之前要先配置好sonar服务的地址、端口号和上下文环境。同样是编辑sonar.properties配置文件:
sonar.web.host : 192.168.5.28 //安装sonar的主机ip地址
sonar.web.port: 9000 //端口号,默认为9000
sonar.web.context: /sonar //上下文环境,浏览器中访问sonar时的地址
执行脚本,启动sonar服务:
$cd /usr/local/sonarqube-6.7.6/bin/linux-x86-64/sonar.sh start
执行sonar.sh status命令查看服务是否已经启动:
注意:这里立即查看状态,短时间内意义不大,因为一开始显示running,并不代表会一定在后面的时间内running!也就是说,在启动彻底完成前不可信!什么叫启动"彻底完成"? 见下面:
查看sonar.log日志,其中es、web、ce都up之后SonarQube才会up,否则会报错,启动失败。而且他们都有各自的log文件,哪一个没有up,直接去相应日志文件查看即可。
还可以使用ss命令再次确认:
排错说明:可以先跟着sonar.log日志,如果报了es错误,可以去查看es.log;如果报了web错误,那么就是查看web.log。我在安装的时候,遇见了"Failed to create table 'schema_migrations问题","mysql连接问题","版本太低问题",或"内存溢出"...都可以在日志里有迹可寻。(es.log,web.log跟sonar.log在同一个目录下)
5. 访问服务
打开浏览器,输入地址http://192.168.138.221:9000/sonar
6.汉化
汉化需要下载汉化包,下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/
下载对应版本的汉化包,拷贝到.../extensions/plugins/目录下,重启sonar即可。