如何在CentOS 7上安装SonarQube

SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供了不断检查代码,显示应用程序的运行状况以及突出显示新引入的问题的功能。它包含用于检测棘手问题的代码分析器。它还可以轻松地与DevOps集成。

在本教程中,我们将在CentOS 7上安装最新版本的SonarQube。

注意:此文档自其原始发布以来已进行了更新。请参阅脚注中的“勘误”部分。

先决条件

  • 具有至少2 GB RAM的Vultr 64位CentOS 7服务器实例。
  • 一个sudo的用户

步骤1:执行系统更新

在CentOS服务器实例上安装任何软件包之前,建议先更新系统。使用sudo用户登录并运行以下命令以更新系统。

sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now

系统完成重新引导后,以sudo用户身份再次登录并继续下一步。

步骤2:安装Java

通过键入以下命令下载Oracle SE JDK RPM软件包:

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"

通过键入以下命令安装下载的软件包:

sudo yum -y localinstall jdk-8u131-linux-x64.rpm

现在,您可以通过键入以下命令来检查Java的版本:

java -version

步骤3:安装和配置PostgreSQL

通过输入以下命令安装PostgreSQL存储库:

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

通过运行以下命令安装PostgreSQL数据库服务器:

sudo yum -y install postgresql96-server postgresql96-contrib

初始化数据库:

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

编辑/var/lib/pgsql/9.6/data/pg_hba.conf以启用基于MD5的身份验证。

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

找到以下行,并改变peertrustidnetmd5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

更新后,配置应如下图所示。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

启动PostgreSQL服务器,并通过运行以下命令使其在启动时自动启动:

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

更改默认PostgreSQL用户的密码。

sudo passwd postgres

切换到postgres用户。

su - postgres

通过键入以下内容来创建新用户:

createuser sonar

切换到PostgreSQL shell。

psql

为新创建的SonarQube数据库用户设置密码。

ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';

通过运行以下命令为PostgreSQL数据库创建一个新数据库:

CREATE DATABASE sonar OWNER sonar;

psql外壳退出:

\q

通过运行exit命令切换回sudo用户。

步骤4:下载和配置SonarQube

下载SonarQube安装程序文件档案。

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

您始终可以在SonarQube 下载页面上找到该应用程序最新版本的链接。

通过运行以下命令安装解压缩:

sudo yum -y install unzip

使用以下命令解压缩存档。

sudo unzip sonarqube-6.4.zip -d /opt

重命名目录:

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

使用您喜欢的文本编辑器打开SonarQube配置文件。

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

找到以下几行。

#sonar.jdbc.username=
#sonar.jdbc.password=

取消注释并提供我们之前创建的数据库的PostgreSQL用户名和密码。它应该看起来像:

sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword

接下来,找到:

#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

取消注释该行,保存文件并退出编辑器。

步骤5:配置系统服务

可以使用安装程序包中提供的启动脚本直接启动SonarQube。为方便起见,您应该为SonarQube设置一个Systemd单位文件。

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

用以下内容填充文件:

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

[Service]
Type=forking

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

User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target

通过运行以下命令启动应用程序:

sudo systemctl start sonar

启用S​​onarQube服务以在启动时自动启动。

sudo systemctl enable sonar

要检查服务是否正在运行,请运行:

sudo systemctl status sonar

步骤5:配置反向代理

默认情况下,SonarQube在端口9000上侦听localhost。在本教程中,我们将使用Apache作为反向代理,以便可以通过标准HTTP端口访问该应用程序。通过运行以下命令安装Apache Web服务器:

sudo yum -y install httpd

创建一个新的虚拟主机。

sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf

用以下内容填充文件:

<VirtualHost *:80>  
    ServerName sonar.yourdomain.com
    ServerAdmin [email protected]
    ProxyPreserveHost On
    ProxyPass / http://localhost:9000/
    ProxyPassReverse / http://localhost:9000/
    TransferLog /var/log/httpd/sonar.yourdomain.com_access.log
    ErrorLog /var/log/httpd/sonar.yourdomain.com_error.log
</VirtualHost>

启动Apache并使其在启动时自动启动:

sudo systemctl start httpd
sudo systemctl enable httpd

步骤6:配置防火墙

允许所需的HTTP端口通过系统防火墙。

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

启动SonarQube服务:

sudo systemctl start sonar

您还需要禁用SELinux:

sudo setenforce 0

SonarQube已安装在服务器上,请通过以下地址访问仪表板。

http://sonar.yourdomain.com

使用初始管理员帐户admin和 登录admin。现在,您可以使用SonarQube连续分析您编写的代码。


勘误

如果安装SonarQube 7.1(或更高版本),请进行以下更改,因为新版本的Elasticsearch无法以root用户身份运行。

  • 更新权限: chown -R sonar:sonar /opt/sonarqube
  • 修改/opt/sonarqube/bin/linux-x86-64/sonar.sh,更改#RUNAS为“ sonar”。
  • 修改/etc/systemd/system/sonar.service,将用户组更改为“ sonar”。


如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。