Redmine

Retour à la page précédente

Installer Ruby :

On ajoute maintenant tout l’environnement Ruby à notre serveur.
Ruby est nécessaire pour pouvoir installer Redmine.

aptitude install ruby1.9.3 ruby-dev libruby rubygems libmysql-ruby

Vérifier la bonne installation de version avec ruby -v et gem -v.

Installer ImageMagick :

ImageMagick permet à PHP et Ruby, entre autre, de manipuler les images.

aptitude install imagemagick libmagickwand-dev

Installer Bundler :

Bundler est un Gem qui permet de gérer les dépendances d’un projet, dont celles des applications Rails comme Redmine.

gem install bundler

Installer Passenger :

Passenger permet à Apache de piloter et exécuter un programme Ruby on Rails.
À des fins de compatibilité avec la version de Ruby précédemment choisie, Passenger est installé via Gem et non pas par Aptitude.

gem install passenger

Une fois Passenger installé, on installe le module pour Apache (qui va être recompilé). A noter qu’il faut un minimum de puissance et de swap. Le programme d’installation émet une alerte s’il n’y a pas au moins 1Go de swap disponible.

passenger-install-apache2-module

A la fin de la compilation, il nous est demandé d’éditer 2 fichiers et nous est donné également un exemple de configuration de vhost Apache pour une application Ruby.

Créer le fichier /etc/apache2/mods-available/passenger.load et ajouter la ligne LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.14/buildout/apache2/mod_passenger.so

Cela indique à Apache où se trouve le mod_passenger.

touch /etc/apache2/mods-available/passenger.load

echo "LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.14/buildout/apache2/mod_passenger.so" >> /etc/apache2/mods-available/passenger.load

Créer le fichier /etc/apache2/mods-available/passenger.conf et ajouter les lignes PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.14PassengerDefaultRuby /usr/bin/ruby1.9.1 et PassengerDefaultUser www-data.
Cette dernière instruction est importante car elle défini l’utilisateur qui va exécuter mod_passenger. Là c’est “www-data”, l’utilisateur Apache par défaut. Il faut que les 2 soient identiques.

touch /etc/apache2/mods-available/passenger.conf

echo "PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.14" >> /etc/apache2/mods-available/passenger.conf

echo "PassengerDefaultRuby /usr/bin/ruby1.9.1" >> /etc/apache2/mods-available/passenger.conf

echo "PassengerDefaultUser www-data" >> /etc/apache2/mods-available/passenger.conf

On active le module :

a2enmod passenger

Il ne reste plus qu’à relancer Apache :

service apache2 restart

La configuration est terminée. Le serveur est fonctionnel.
On peut passer à l’installation Redmine.

Récupération de l’archive Redmine :

On se place dans /opt, on télécharge l’archive de Redmine et on la décompresse

cd /opt
wget http://rubyforge.org/frs/download.php/77023/redmine-2.3.2.tar.gz
tar xzf redmine-2.3.2.tar.gz

Paramétrage de la base de données :

On créé d’abord la base de données « redmine » dans MySql.
On créé un utilisateur spécifique « redmine » qui aura tous les droits sur la base. Attention de bien remplacer le mot de passe « my_password ».

mysql -u root -p
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

La base de données est créée, il faut maintenant créer la connexion dans Redmine.

Aller dans /opt/redmine-2.3.2/config et faire une copie de « database.yml.example » pour le renommer en « database.yml ».

cd /opt/redmine-2.3.2/config
cp database.yml.example database.yml

Editer le fichier au niveau de la rubrique « production » et renseigner l’utilisateur et le mot de passe MySql :

production:
adapter: mysql2
database: redmine host: localhost
username: redmine
password: my_password

Installation des Gems spécifiques à Redmine :

Aller dans le répertoire de travail de Redmine

cd /opt/redmine-2.3.2

Installer les Gems. On ne créé que l’environnement de production. Donc sans « développement » et « test » :

bundle install --without development test

C’est là que tout se joue.
Si on a un beau message vert à la fin de l’installation : tout roule.

Installation du token pour les cookies :

rake generate_secret_token

Création des tables de la base de données :

RAILS_ENV=production rake db:migrate

On rempli ensuite les tables avec les données par défaut, en Français.

RAILS_ENV=production REDMINE_LANG=fr rake redmine:load_default_data

Vérification du fonctionnement de Redmine avec Webrick :

Premier test rapide pour vérifier que l’installation de Redmine fonctionne, on lance le serveur interne Webrick et on se connecte à notre serveur.

ruby script/rails server webrick -e production

Ensuite on se connecte sur le serveur sur le port 3000 : http://ip_du_serveur:3000.

On se log en admin

login: admin
password: admin

Si Redmine fonctionne correctement on passe à la suite.

Configuration des emails :

Il n’y a pas de configuration de mail par défaut. Il faut la créer.
La configuration se fait dans le fichier /opt/redmine-2.3.2/config/configuration.yml.

Ce fichier n’existe pas par défaut.
Il y a un fichier d’exemple configuration.yml.example que l’on peut copier mais d’autre paramètres seront activés.
Ne sachant pas les conséquences, on créé le fichier configuration.yml vide :

touch /opt/redmine-2.3.2/config/configuration.yml

Les emails seront envoyés par le serveur local. Il faut donc une configuration smtp. Il n’y a pas d’authentification sur ce serveur.
On édite le fichier et on ajoute les lignes :

production:
    delivery_method: :async_smtp

La syntaxe est très précise.
Les instructions doivent être séparées par des “double espaces” et pas par des “tab”

Dans notre cas on utilise la méthode « async_smtp » qui permet de ne pas attendre que le mail soit envoyé pour changer de page.

S’il y a un problème de compatibilité avec le serveur, on peut revenir à la méthode smtp classique. On aura alors dans le fichier :

production:
    delivery_method: :smtp

Installer Redmine dans le répertoire de travail d’Apache :

On va maintenant permettre à Apache d’exécuter Redmine via Passenger.

Le dossier de « travail » de redmine est le dossier « public » : /opt/redmine-2.3.2/public.
On ne déplace pas ce dossier, on fait un lien symbolique vers le dossier DocumentRoot d’Apache /var/www que l’on nomme redmine.

ln -s /opt/redmine-2.3.2/public/ /var/www/redmine

C’est l’utilisateur « www-data » d’Apache qui va utiliser Redmine.
On change le propriétaire du dossier redmine-2.3.2 en entier.

cd /opt
chown -R www-data:www-data redmine-2.3.2

On doit maintenant déclarer un nouveau site à Apache pour qu’il puisse l’exécuter.
Pour cela on créé un nouveau fichier redmine dans /etc/apache2/sites-available pour déclarer le site.

touch /etc/apache2/sites-available/redmine

Dans ce fichier on indique à Apache les paramètres spécifiques de ce site.
Sur notre serveur on travail en « dossiers ». C’est à dire que toutes les applications sont disponibles sur ce genre d’URLs :

http://ip_du_serveur/redmine
http://ip_du_serveur/wordpress
http://ip_du_serveur/carnet_adresse
etc…

On va donc installer Redmine dans le dossier /redmine du DocumentRoot.

<Location /redmine>
 RailsEnv production
 RackBaseURI /redmine
 Options -MultiViews
</Location>

<Location /redmine> indique le répertoire du site par rapport au DocumentRoot.
RackBaseURI /redmine indique l’url finale. Donc http://ip_du_serveur/redmine.

On active le site :

a2ensite redmine

On restart Apache :

service apache2 restart

Exemple de vhost classique pour une installation en sous-domaine par exemple :

<VirtualHost *:80>
 ServerName www.yourhost.com
 # !!! Be sure to point DocumentRoot to 'public'!
 DocumentRoot /somewhere/public
 <Directory /somewhere/public>
 # This relaxes Apache security settings.
 AllowOverride all
 # MultiViews must be turned off.
 Options -MultiViews
 </Directory>
</VirtualHost>

Réglages de Redmine :

Dans Redmine > Administration > Informations on voit si 4 paramètres de base sont corrects. Dont « Répertoire public des plugins accessible en écriture ».

Le répertoire en question n’existe pas par défaut.

Il s’agit de /opt/redmine-2.3.2/public/plugin_assets.
On créé le dossier et on lui donne comme propriétaire et groupe www-data.

mkdir -p /opt/redmine-2.3.2/public/plugin_assets
chown -R www-data:www-data /opt/redmine-2.3.2/public/plugin_assets/

Sauvegarder Redmine :

2 choses à sauvegarder :

La base de données Redmine
Les fichiers stockés dans le répertoire « files » à la racine du dossier Redmine : /opt/redmine-2.3.2/files

Exemple de script Bash :

# Base de données
/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz

# Fichiers
rsync -a /path/to/redmine/files /path/to/backup/files

L’installation de Redmine sur Debian est terminée. Il ne reste plus qu’à aller dans les paramètres afin de permettre l’authentification via l’Active Directory de l’entreprise. Cela permettra aux employés actuels et futurs de se connecter sans pour autant avoir un mot de passe supplémentaire à retenir. Sans oublier une simplification de la gestion pour les administrateurs du parc de l’entreprise.

Retour à la page précédente