Difference between revisions of "Sonar"

Line 106: Line 106:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
 +
===Database configuration===
 +
 +
Disable embedded H2DB and enable MySQL database, lines 20 to 40:
 +
 +
<syntaxhighlight lang="apache">
 +
sonar.jdbc.username=sonar            
 +
sonar.jdbc.password=sonar
 +
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
 +
</syntaxhighlight>
 +
 +
 +
===Port number and root context===
  
 
Adjust port number and context
 
Adjust port number and context
  
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="apache">
#sonar.web.host:            0.0.0.0                            line 21
+
#sonar.web.host:            0.0.0.0
 
#sonar.web.port:            9000
 
#sonar.web.port:            9000
 
sonar.web.context:          /sonar
 
sonar.web.context:          /sonar
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
!!! This is VERY important that you uncomment and set the '''sonar.web.context''' !!!
  
Disable embedded H2DB and enable MySQL database
 
  
<syntaxhighlight lang="bash">
 
sonar.jdbc.username:        sonar              line 41
 
sonar.jdbc.password:        sonar
 
# sonar.jdbc.url:            jdbc:h2:tcp://localhost:9092/sonar              line 49
 
sonar.jdbc.url:
 
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
 
</syntaxhighlight>
 
  
  
Line 130: Line 136:
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
/etc/init.d/sonar start
+
service sonar restart
</syntaxhighlight">
+
</syntaxhighlight>
  
 
... wait for some times on 1st start (5 to 7 mn) !!
 
... wait for some times on 1st start (5 to 7 mn) !!
Line 153: Line 159:
 
To use the proxy rule, the target /sonar must match the root URL (see sonar.properties)
 
To use the proxy rule, the target /sonar must match the root URL (see sonar.properties)
  
# vim /etc/apache2/mods-enabled/proxy.conf
+
vim /etc/apache2/mods-enabled/proxy.conf
 +
</syntaxhighlight>
 +
 
 +
# Proxy to a Java application running over Tomcat, with IP filter
 +
<Location /sonar>
 +
ProxyPass http://localhost:9000/sonar
 +
ProxyPassReverse http://localhost:9000/sonar
 +
 
 +
        ### Apache < 2.4
 +
#Order allow,deny
 +
#Allow from 127.0.0.1 192.168.1.0/24 193.12.118.196
 +
 +
        ### Apache 2.4
 +
        Require local
 +
        Require ip 192.168.1
 +
        Require host 193.12.118.196
 +
</Location>
  
Add:
 
        # Service SONAR runs on a different port
 
        ProxyPass /sonar http://localhost:9000/sonar
 
        ProxyPassReverse /sonar http://localhost:9000/sonar
 
  
 
Test Sonar
 
Test Sonar

Revision as of 11:59, 10 September 2014


The following instructions are for Ubuntu 14.04 LTS.


You can find all these instructions and more on the Official how-to: http://sonar-pkg.sourceforge.net/


Requirements

You need to have a MySQL server available.


Installation (Ubuntu)

Get package

vim /etc/apt/sources.list


Add a new repository

deb http://downloads.sourceforge.net/project/sonar-pkg/deb binary/


Update packages list and install sonar

apt-get update
apt-get install sonar


Create SONAR database

SONAR needs to work with a database.

You can create a new MySQL database + MySQL user for it.


Step 1: Login to MySQL as ROOT

mysql -u root -p
Enter password:


Step 2: Create the Database

mysql > create database sonar;


Step 3: Verify that it’s there

mysql > show databases;


Step 4: Create the User

mysql > create user sonar;


Step 5: Grant privileges while assigning the password

mysql > grant all on sonar.* to 'sonar'@'localhost' identified by 'sonar';


Step 6: Apply changes

mysql > flush privileges;


Step 7: exit

mysql > quit;


Configure SONAR

Edit SONAR configuration file

vim /opt/sonar/conf/sonar.properties


Database configuration

Disable embedded H2DB and enable MySQL database, lines 20 to 40:

sonar.jdbc.username=sonar				            
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true


Port number and root context

Adjust port number and context

#sonar.web.host:             0.0.0.0
#sonar.web.port:             9000
sonar.web.context:           /sonar

!!! This is VERY important that you uncomment and set the sonar.web.context !!!



Restart Sonar

service sonar restart

... wait for some times on 1st start (5 to 7 mn) !!


Check that Sonar is up

netstat -pl --numeric | grep 9000

You should have:

tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      xxxxx/java


Add apache2 proxy rule Sonar access will be done through Apache2 server To use the proxy rule, the target /sonar must match the root URL (see sonar.properties)

vim /etc/apache2/mods-enabled/proxy.conf </syntaxhighlight>

  1. Proxy to a Java application running over Tomcat, with IP filter

<Location /sonar> ProxyPass http://localhost:9000/sonar ProxyPassReverse http://localhost:9000/sonar

       ### Apache < 2.4

#Order allow,deny #Allow from 127.0.0.1 192.168.1.0/24 193.12.118.196

       ### Apache 2.4
       Require local
       Require ip 192.168.1
       Require host 193.12.118.196

</Location>


Test Sonar Navigate to http://myServer:9000/sonar or http://myServer/sonar

The default user and password are “admin” and “admin“.

Logs Sonar logs are in: /opt/sonar/logs/sonar.log

Upgrade Sonar Sometimes when there are a lot of changes the new sonar version required some database change. The service will not be available until you go to http://myServer/sonar/setup You have to agree to the terms and upgrade database