Installer Redmine avec Apache

Nous allons installer Redmine qui est un gestionnaire de projet très complet. Utilisé par de nombreuses société, son interface est simple à comprendre et comprend de nombreux paramètres de personnalisation. Il fonctionne sur de nombreuses plateforme et assez complexe à mettre en place si l'on ne connaît pas au minimum le Ruby. Je vais expliquer ci-dessous comment l'installer sur une machine fonctionnant sous Debian 8.5 (Jessie).

Liste des versions utilisés

  • Mysql version : 5.5.49
  • Apache2 version : 2.4.10
  • Ruby version : 2.1(.5p273)
  • Rails version : 4.2.5.2
  • OS : 8.5 (x86_64)

Procédure d'installation

Etape 1 : On va commencer par installer quelques dépendances et le logiciel en lui-même

apt-get install apache2 libapache2-mod-passenger libmysqlclient-dev libmagickwand-dev imagemagick
cd /var/www

Télécharger le logiciel sur le site officiel : https://www.redmine.org/projects/redmine/wiki/Download

Prendre l'extension tar.gz qui est pour les systèmes Unix.
wget http://www.redmine.org/releases/redmine-3.2.3.tar.gz
tar xf redmine-3.2.3.tar.gz
mv redmine-3.2.3 redmine
cd redmine

Etape 2 : On créer l'utilisateur et la base de donnée dans MySql

apt-get install mysql-server
mysql -u root -p

Suite à l'authentification entrer :

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
exit;

Etape 3 : On copie le fichier de configuration pour renseigner le driver à utiliser pour Rails

cp configuration.yml.example configuration.yml
nano configuration.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: root
  password: my_password

Etape 4 : Installation des dépendances de Rails

Bundler va nous être utile pour facilement les installer.

gem install bundler

Redmine peut fonctionne avec plusieurs mode. On s'intéresse ici qu'au mode production donc on ignore les autres.

bundle install --without development test rmagick

Etape 5 : Sécuriser les données utilisateurs

Par principe de sécurité et vu qu'il est possible de le faire, on sécurise les cookies de manière à garder secret les données appartenant aux utilisateurs.

bundle exec rake generate_secret_token

On renseigne cette option dans le fichier correspondant.

nano config/secrets.yml
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

Etape 6 : Insérer la structure de la base de donnée

RAILS_ENV=production bundle exec rake db:migrate

Etape 7 : Rendre accessible via le navigateur web

Vu que je n'ai point l'envie de m'embêter à restreindre les accès à des fichiers spécifique. Je propose cette manipulation bien simpliste :

chmod 755 * -R
chown www-data:www-data * -R 

Ensuite, rien de compliqué mis à part de renseigner correctement le dossier source du projet qui se situe dans le dossier public.

Créons le Virtualhost dans un premier temps.

nano /etc/apche/sitee-enabled/remine.conf
<VirtualHost *:80>
  ServerName redmine.domaine.com
  ServerAdmin webmaster@domaine.com
  DocumentRoot /var/www/redmine/public
  ErrorLog /var/log/apache/erros.redmine.log

  RailsEnv production

  <Directory "/var/www/redmine/public/">
      Options Indexes ExecCGI FollowSymLinks
      Order allow,deny
      Allow from all
      AllowOverride all
  </Directory>
</VirtualHost>

Puis on redémarre le service pour mettre en place ce nouveau virtualhost.

service apache2 restart
S'il y a des erreurs, ne pas hésiter d'utiliser la commande journalctl -xn et vérifier les logs dans le dossier log du projet redmine (soit dans /var/www/redmine/log).

On se rend enfin avec un navigateur Internet à l'adresse IP du serveur et c'est gagné!

Si toute fois je me suis mal exprimé, la documentation d'installation officiel est ici : http://www.redmine.org/projects/redmine/wiki/RedmineInstall