Installation de Redmine


Attention, cet article est ancien de 7 ans. Les versions systèmes / de logiciels / sites évoqués ont forcément évolués depuis. Merci de garder cette ancienneté en tête pendant votre lecture.

La procédure suivante à pour but l’installation de Redmine sur un nouveau système (par exemple une VM dédiée à Redmine).

L’instance est accessible en HTTPS (avec utilisation d’un certificat autosigné, mais celui-ci peux être adapté au besoin).

Un vhost par défaut est également créé afin de sécuriser l’installation et éviter tout duplicate content.

en root :

# apt-get update && apt-get upgrade
# apt-get remove ruby
# apt-get install apache2 apache2-dev curl imagemagick libapr1-dev libaprutil1-dev libcurl4-openssl-dev libmagickwand-dev libmysqlclient-dev mysql-client mysql-server vim-nox zsh 
# ln -s /etc/mysql/debian.cnf /root/.my.cnf
# cd /opt/
# git clone https://github.com/kimengumi/kclie.git
# kclie/configure
# /opt/kclie/sbin/mysql_create_local_user redmine

Garder les infos du fichier .my.cnf affiché à l’écran pour utilisation ultérieur.

# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
# curl -sSL https://get.rvm.io | bash -s stable --rails
# rvm install 2.3.4
# rvm --default use ruby-2.3.4
# useradd -s /bin/false -mg www-data redmine
# usermod -aG rvm redmine
# usermod -aG rvm www-data
# mkdir /opt/redmine
# chown redmine:www-data /opt/redmine
# sudo -u redmine zsh
$ cd 
$ vim .my.cnf

Coller le contenu du fichier .my.cnf précédent

$ mysql -e 'CREATE DATABASE redmine_production CHARACTER SET utf8;'

S’il sagit d’une instance à restaurer ou d’une migration d’après un backup :

$ mysql redmine_production < /tmp/backup.sql

Utilisation d’une branche stable de Redmine :

Se rendre sur https://svn.redmine.org/redmine/branches/, puis aller sur la dernière branche stable en date.

Récupérer la branche (exemple) dans /opt/redmine :

$ svn co https://svn.redmine.org/redmine/branches/3.3-stable /opt/redmine

Préparer la configuration :

$ cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
$ vim /opt/redmine/config/database.yml

Compléter le paragraphe production comme suit :

production:
adapter: mysql2
database: redmine_production
host: localhost
username: redmine
password: « XXXXXXX » (Celui du fichier .my.cnf précédent)
encoding: utf8

Installer les dépendances :

$ cd /opt/redmine
$ gem install bundler
$ gem install rmagick
$ bundle install --without development test
$ bundle exec rake generate_secret_token

S’il s’agit d’une nouvelle installation :

$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=production bundle exec rake redmine:load_default_data

S’il s’agit d’une restauration d’une ancienne instance archivée :

$ mysql redmine_production < /chemin-vers-votre-dump.sql
$ RAILS_ENV=production bundle exec rake db:migrate

Suite commune :

$ RAILS_ENV=production bundle exec rake redmine:plugins:migrate 
$ RAILS_ENV=production bundle exec rake tmp:cache:clear tmp:sessions:clear 
$ gem install passenger
$ exit
# zsh
# passenger-install-apache2-module

A la fin de l’installation, le script affiche à l’écran la configuration Apache à mettre en place :

LoadModule passenger(…)
<IfModule mod_passenger(…)
(…)
</IfModu(…)

Dans une deuxième console en root :

# vim /etc/apache2/mods-available/passenger.load

Coller la la configuration pour apache de la première console.

Fermez la 2° console.

Puis appuyiez « enter » sur la première console pour terminer l’installation de passenger.

Configuration Apache :

# mkdir /var/www/default
# touch /var/www/default/index.html
# echo "User-Agent: *\nDisallow: /" > /var/www/default/robots.txt
# vim /etc/apache2/sites-available/0000-dummy-default.conf

Insérer le contenu suivant :

ServerName default
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory ~ « \.svn »>
Order allow,deny
Require all denied
</Directory>
<Directory ~ « \.git »>
Order allow,deny
Require all denied
</Directory>
<VirtualHost _default_:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/default
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/default
ErrorLog /var/log/apache2/error-ssl.log
LogLevel warn
CustomLog /var/log/apache2/access-ssl.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch « \.(cgi|shtml|phtml|php)$ »>
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch « MSIE [2-6] » nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch « MSIE [17-9] » ssl-unclean-shutdown
</VirtualHost>
</IfModule>

# vim /etc/apache2/sites-available/redmine.conf

Insérer le contenu suivant :

<VirtualHost *:80>
ServerName votre.nom.de.domaine
Redirect permanent / https://votre.nom.de.domaine/
</VirtualHost>

<VirtualHost *:443>
ServerName votre.nom.de.domaine

LogLevel warn
ErrorLog /var/log/apache2/redmine_error
CustomLog /var/log/apache2/redmine_access combined

DocumentRoot /opt/redmine/public
<Directory /opt/redmine/public>
SetEnv HTTPS 1
RailsBaseURI /redmine
RailsEnv production
PassengerResolveSymlinksInDocumentRoot on
PassengerUser redmine
PassengerGroup www-data

AllowOverride all
Options -MultiViews

Require all granted
</Directory>
</VirtualHost>

# a2enmod ssl passenger
# a2dissite 000-default
# a2ensite 0000-dummy-default redmine
# service apache2 restart

Voilà votre instance Redmine est disponible sur https://votre.nom.de.domaine/ !

Les commentaires sont fermés.