例子linux

例子Linux教程

如何在Ubuntu 16.04上安装SonarQube

avatar LLL769394 2025-03-11 14:59 27次浏览 0 条评论 Ubuntu

SonarQube是一个免费开源的质量管理系统平台,可用于自动化代码检查。它可以分析源代码文件,计算一组指标,并在基于web的仪表板上显示结果。它是用Java语言编写的,也支持Perl、PHP和Ruby等其他语言。默认情况下,SonarQube支持h2数据库,但它不可扩展。因此,您可以将SonarQube与MSSQL、PostgreSQL、Oracle和MySQL等其他数据库服务器集成。SOnarQube附带了许多插件,可以自动集成存储库中的源代码。它允许开发人员以20多种不同的语言检测错误和漏洞,并减少代码异味。您可以通过SonarLink插件轻松地将SolarQube与Eclipse、Visual Studio和IntelliJ IDEA开发环境集成。

在本教程中,我们将学习如何在Ubuntu 16.04服务器上安装SonarQube。

先决条件
在您的系统上安装新的Ubuntu 16.04服务器。
至少4GB的内存。
具有sudo权限的非root用户。

在开始之前,建议使用最新版本更新您的基本系统。您可以通过运行以下命令来完成此操作:

sudo apt-get update -y
sudo apt-get upgrade -y

更新系统后,您可以继续安装Java。

1.安装Java
Sonarqube是一个基于Java的应用程序,因此您需要先安装Java 8。默认情况下,Java 8在Ubuntu存储库中不可用。您可以通过将webupd8team PPA存储库添加到系统中来安装Java 8。

首先,通过运行以下命令添加PPA:

sudo add-apt-repository ppa:webupd8team/java

接下来,使用以下命令更新存储库:

sudo apt-get update -y

存储库更新后,您可以通过运行以下命令安装Java 8:

sudo apt-get install oracle-java8-installer -y

安装Java后,您可以使用以下命令检查Java的版本:

java -version

您应该看到以下输出:

Java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

完成后,您可以继续下一步。

2.安装Apache和MariaDB
您还需要安装Apache和MariaDB,因为我们将使用Apache作为反向代理,MariaDB作为数据库。您可以通过运行以下命令安装它们:

sudo apt-get install apache2 mariadb-server -y

安装完成后,启动Apache和MariaDB服务,并使用以下命令启用它们在引导时启动:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

安装Apache和MariaDB并正常工作后,您可以继续下一步。

3.配置MariaDB
默认情况下,MariaDB的安装是不安全的,因此您需要确保MariaDB的安装安全。您可以通过运行mysql_secure_installation脚本来完成此操作:

sudo mysql_secure_installation

在此过程中,您将被要求设置root密码、删除匿名用户、禁止远程root登录和删除测试数据库。请回答以下所有问题:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

MariaDB安全后,使用以下命令登录MariaDB shell:

mysql -u root -p

在提示时输入您的root密码,然后为SonarQube创建一个数据库:

MariaDB [(none)]> CREATE DATABASE sonardb;

接下来,创建一个新的数据库用户,并为您的数据库用户提供对您创建的数据库的适当权限。

MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';

接下来,使用以下命令将更改应用于数据库权限:

MariaDB [(none)]> FLUSH PRIVILEGES;

最后,使用以下命令退出MariaDB shell:

MariaDB [(none)]> \q

配置数据库后,您可以继续下一步。

4.安装SonarQube
您可以从他们的官方网站下载SonarQube的最新版本。您可以使用wget命令下载它:

wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip

下载完成后,使用以下命令解压缩下载的存档:

sudo unzip sonarqube-6.4.zip -d /opt

接下来,使用以下命令重命名目录:

sudo mv /opt/sonarqube-6.4 /opt/sonar

接下来,您需要修改SonarQube主配置文件sonar.properties:

sudo nano /opt/sonar/conf/sonar.properties

进行以下更改:

##Database User credentials:
sonar.jdbc.username=sonar
sonar.jdbc.password=yourpassword
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

保存并关闭该文件,然后为SonarQube创建一个systemd服务文件。

sudo nano /etc/systemd/system/sonar.service

添加以下行:

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

[Service]
Type=forking

ExecStart=/opt/sonar/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonar/bin/linux-x86-64/sonar.sh stop

User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target

完成后保存文件,然后启动SonarQube服务,并使用以下命令使其在启动时启动:

sudo systemctl start sonar
sudo systemctl enable sonar

SonarQube过程需要一些时间来完成创建数据库和填充数据。您可以使用以下命令检查SonarQube的状态:

sudo systemctl status sonar

您还可以通过查看/opt/sonar/logs/sonar.log文件的内容来监视该过程。完成后,您可以继续下一步。

5.将Apache配置为反向代理
默认情况下,SonarQube监听端口9000。在这里,我们将使用apache作为反向代理,以便可以使用端口80访问SonarQube:

首先,使用以下命令启用apache代理模块:

sudo a2enmod proxy
sudo a2enmod proxy_http

接下来,使用以下命令为SonarQube创建一个新的虚拟主机文件:

sudo nano /etc/apache2/sites-available/sonar.conf

添加以下行:

<VirtualHost *:80>
    ServerName 192.168.15.189
    ServerAdmin [email protected]
    ProxyPreserveHost On
    ProxyPass / http://localhost:9000/
    ProxyPassReverse / http://localhost:9000/
    TransferLog /var/log/apache2/sonar_access.log
    ErrorLog /var/log/apache2/sonar_error.log
</VirtualHost>

保存并关闭文件,然后通过运行以下命令启用新的虚拟主机:

sudo a2ensite sonar

最后,使用以下命令重新启动apache服务:

sudo systemctl restart apache2

6.访问SonarQube Web界面
所有必需的组件都已安装和配置。现在是时候访问SonarQube网络界面了。

在访问它之前,您需要允许端口80通过UFW防火墙。默认情况下,UFW在Ubuntu中是禁用的,因此您需要先启用它。您可以通过运行以下命令启用它:

sudo ufw enable

启用UFW防火墙后,您可以通过运行以下命令允许端口80通过UFW:

sudo ufw allow 80/tcp

现在,您可以通过运行以下命令来检查UFW防火墙的状态:

sudo ufw status

现在,打开您的网络浏览器并导航到URLhttp://192.168.15.189,您应该看到以下屏幕:

现在,点击“登录”按钮,您应该看到以下屏幕:

使用默认用户名“admin”和密码“admin”登录,您应该看到以下屏幕:

登录SonarQube仪表板后,单击管理>系统>系统信息按钮。您应该在以下屏幕中看到当前系统信息:

接下来,单击“管理”>“系统”>“更新中心”按钮,您应该会在以下屏幕中看到所有已安装的插件:

在这里,您可以更新现有的插件,也可以安装可用的插件。安装或更新所需插件后,您需要单击“重新启动”按钮重新启动系统以更新更改。

结论
在上面的教程中,我们学习了在Ubuntu 16.04上安装SonarQube以及SonarQube的基本用法。现在,您可以在生产环境中轻松部署它。如果你需要任何帮助。

发表评论