Redmine
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.14, PassengerDefaultRuby /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.