ubuntu20.04 搭建SonarQube服务器&&sonar-scanner

本文详细介绍如何在Ubuntu 20.04环境下搭建Sonarqube服务器及其配套组件sonar-scanner,涵盖配置MySQL数据库、安装Sonarqube及sonar-scanner的过程,并涉及与Gitlab集成的方法。

系列文章目录

一 ubuntu20.04搭建Sonarqube服务器&&sonar-scanner

二  sonarqube安装c++插件并检测c++代码

三  sonarqube安装gitlab插件集成gitlab-ci

本文目录

一、Sonarqube简介

二、搭建sonarqube服务器

1.简介

2.配置mysql数据库

3.下载安装sonarqube

4.开启服务器

三、安装部署sonar-scanner

1.下载安装sonar-scanner

2.配置

总结


一、Sonarqube简介

 SonarQube是一个自动检查代码的工具,用于检测代码中的错误、漏洞和代码异味。支持对多种编程语言的扫描。包括java,c++,c#,js,python,go,php等27种语言(不过现在免费的社区版已经不再支持c++,需要安装插件sonar-cxx)。

此外,它可以与您现有的工作流如Gitlab集成(社区版同样不支持,需要安装插件sonar-gitlab-plugin),以支持跨项目分支和拉取请求的连续代码检查,并将结果反馈。

二、搭建sonarqube服务器

官方文档:https://docs.sonarqube.org/latest/

1.简介

一个sonarqube服务器主要包含三个部分:web服务器、基于Elasticsearch的搜索引擎、计算引擎(负责处理处理分析报告并保存到数据库)。

因此,SonarQube必须要配合JDK和数据库使用。本文采用的环境:

ubuntu20.04+openjdk11.0.11+mysql5.7.22

安装openjdk及mysql过程略。

2.配置mysql数据库

首先在ubuntu中创建一个用户sonar,密码也设为sonar。由于sonarqube不能用root用户启动,我们创建这个专门的非root用户来启动。

sudo useradd sonar
sudo passwd sonar

在mysql中创建用户sonar和数据库sonar

在mysql登陆root用户

mysql -u 
<think>好的,用户问的是如何在Ubuntu上安装SonarQube。我需要根据提供的引用信息整理步骤。首先,引用里提到了Ubuntu 20.04 LTS,所以系统版本应该明确。安装步骤可能包括安装依赖项,比如JDK和MySQL,然后是SonarQube本身的安装和配置。 首先,用户需要安装Java,因为SonarQube依赖它。引用2提到了在Ubuntu中安装JDK,并提供了一个博客链接,但用户可能需要具体步骤。我应该列出安装OpenJDK的命令,比如用apt安装,因为这是Ubuntu的标准方法。 接下来是MySQL的安装。引用2提到新建数据库,所以需要安装MySQL服务器,创建数据库和用户,并授权。需要确保用户知道如何设置密码和配置权限。 然后是下载和解压SonarQube。引用2和3都提到了下载地址和解压步骤,所以需要给出具体的下载命令和解压指令。注意版本可能变化,但用户应该下载合适的版本,比如7.3或者更高,但需要确认兼容性。 配置SonarQube的部分,修改sonar.properties文件,设置数据库连接信息。这里需要指导用户编辑文件,填写正确的JDBC URL、用户名和密码。 接下来是启动服务,引用1提到了使用systemctl来管理服务。需要创建系统服务文件,设置启动项,并启动服务。还要处理可能的内存问题,比如调整内存设置,避免因为内存不足导致启动失败。 最后是访问SonarQube,检查防火墙设置,确保端口9000开放。可能还需要安装sonar-scanner进行代码分析,但用户的问题主要是安装,所以这部分可以作为后续步骤或相关问题提到。 需要注意的常见问题包括中文文件名报错(引用4),可能需要提醒用户检查文件编码或配置。此外,系统要求如内存至少2GB,也需要在步骤中强调。 现在要确保步骤清晰,分点列出,每个步骤的命令正确,并且参考了提供的引用。同时,按照用户要求,生成相关问题,帮助用户进一步了解。</think>### 在 Ubuntu 上安装 SonarQube 的详细步骤 #### 1. **安装 Java 环境(JDK)** SonarQube 依赖 Java 运行环境。推荐安装 OpenJDK 11: ```bash sudo apt update sudo apt install openjdk-11-jdk ``` 验证安装: ```bash java -version ``` #### 2. **安装并配置 MySQL 数据库** SonarQube 需要数据库存储分析数据,以 MySQL 为例: ```bash sudo apt install mysql-server sudo mysql_secure_installation # 设置 root 密码并加固安全 ``` 创建 SonarQube 专用数据库和用户: ```sql CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'sonar'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost'; FLUSH PRIVILEGES; ``` #### 3. **下载并解压 SonarQube** 访问[官网](https://www.sonarqube.org/downloads/)选择兼容版本(如 7.3+): ```bash wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.3.zip sudo unzip sonarqube-7.3.zip -d /opt sudo mv /opt/sonarqube-7.3 /opt/sonarqube ``` #### 4. **配置 SonarQube 数据库连接** 编辑配置文件: ```bash sudo nano /opt/sonarqube/conf/sonar.properties ``` 修改以下内容: ```properties sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance sonar.jdbc.username=sonar sonar.jdbc.password=your_password ``` #### 5. **调整系统参数** * **内存配置**:编辑 `/opt/sonarqube/bin/linux-x86-64/sonar.sh`,设置: ```bash SONAR_JAVA_OPTS="-Xmx512m -Xms128m" ``` * **创建专用用户**(避免 root 运行): ```bash sudo useradd sonar sudo chown -R sonar:sonar /opt/sonarqube ``` #### 6. **配置系统服务** 创建服务文件 `/etc/systemd/system/sonar.service`: ```ini [Unit] Description=SonarQube Service After=syslog.target network.target [Service] User=sonar ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop Restart=always [Install] WantedBy=multi-user.target ``` 启动并设置开机自启: ```bash sudo systemctl daemon-reload sudo systemctl enable sonar sudo systemctl start sonar sudo systemctl status sonar # 检查状态 ``` #### 7. **访问 SonarQube** 开放防火墙端口(如使用 UFW): ```bash sudo ufw allow 9000/tcp ``` 浏览器访问 `http://服务器IP:9000`,默认账号/密码为 `admin/admin`[^2][^3]。 #### 8. **常见问题处理** - **中文文件名报错**:检查文件编码或配置 SonarQube 忽略特定字符[^4]。 - **内存不足**:调整 `sonar.sh` 中的 `-Xmx` 参数至合适值(建议 ≥2GB)。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值