Installer Redmine sur une debian Lenny 5

Redmine est une application web Open Source de gestion complète de projet en mode web, développé en Ruby sur la base du framework Ruby on Rails.

Principales fonctionnalités :

  • gestion multi-projets,
  • gestion fine des droits utilisateurs définis par des rôles,
  • gestion de groupes d’utilisateurs,
  • rapports de bogues (bugs), demandes d’évolutions,
  • Wiki multi-projets,
  • forums multi-projets

On va voir comment installer redmine sur une machine linux de type debian
(source : wikipedia)

Installation de ruby (1.8) et rails :

On se connecte en root

su -

On installe ruby 1.8

apt-get install build-essential ruby1.8-dev libopenssl-ruby1.8

On installe rubygems (1.3.7)

wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
tar xzvf rubygems-1.3.7.tgz
cd rubygems-1.3.7
ruby1.8 setup.rb
cd

On installe rack (1.0.1) et rails (2.3.5)

gem1.8 install rack -v=1.0.1
gem1.8 install rails -v=2.3.5

On installe mysql depuis les backports

apt-get -t lenny-backports install mysql-server mysql-client libmysql-ruby libmysqlclient-dev
#Je vous conseil de mettre un mot de passe root pour mysql

On installe mysql pour gem

gem1.8 install mysql

Installation de Redmine

On clone redmine depuis le dépôt github

git clone https://github.com/edavis10/redmine.git && cd redmine

Création de l’utilisateur redmine

addgroup redmine
adduser redmine --no-create-home --ingroup redmine
# Je vous conseil de mettre un mot de passe pour l'utilisateur redmine

Création de la base mysql pour Redmine

mysql -u root -p
# On rentre le mot de passe root de mysql
#Création de la base redmine
CREATE DATABASE redmine DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

# Ajout de privilège pour l`'utilisateur redmine sur la base redemine
# il faut penser a changer le mot de passe (password)
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

 exit

On règle les paramètres de connexion à la base de donnée redmine

cp config/database.yml.example config/database.yml

Il faut éditer le fichier : config/database.yml

Attention a bien respecter les 2 espaces (et non des tabulations)  pour toutes les lignes (sauf la première)

production:
  adapter: mysql
  socket: /var/run/mysqld/mysqld.sock
  database: redmine
  host: localhost
  username: redmine
  password: password
  encoding: utf8

# On finit d’installer redmine :

rake generate_session_store
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data
# il faut choisir une langue, "fr" ira très bien

On deplace le fichier d’installation :

cd && mv redmine /opt/

On nettoie le fichier home :

rm -rf rubygems*

On fixe les droits :

chown -R redmine:redmine /opt/redmine
chmod -R 700 /opt/redmine/
chmod -R 755 /opt/redmine/files /opt/redmine/log /opt/redmine/tmp /opt/redmine/public/plugin_assets

Servir redmine par apache

Installation de Mongrel

apt-get install mongrel

ServerName redmine.HOST

ProxyPreserveHost Off
ProxyPass / http://127.0.0.1:3000/
ProxypassReverse / http://127.0.0.1:3000/

# On définit les fichiers de log
ErrorLog /opt/redmine/log/apache-error.log
CustomLog /opt/redmine/log/apache-access.log combined

Il faut editer editer /etc/init.d/redmine

#!/bin/sh

set -e

REDMINE_PATH=/opt/redmine/
REDMINE_PID=/tmp/mongrel.pid
REDMINE_PORT=3000

if [ -x /usr/bin/mongrel_rails ] ; then
        HAVE_MONGREL=1
else
        echo "Mongrel not installed."
        exit 0
fi

. /lib/lsb/init-functions

case "$1" in
  start)
        log_action_begin_msg "Starting Redmine server"
        mongrel_rails start -c $REDMINE_PATH -d -e production -p $REDMINE_PORT -P $REDMINE_PID
        log_action_end_msg $?
        ;;
  stop)
        log_action_begin_msg "Stopping Redmine server"
        mongrel_rails stop -c $REDMINE_PATH -P $REDMINE_PID
        log_action_end_msg $?
        ;;
  force-reload|restart)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage: /etc/init.d/redmine {start|stop|restart|force-reload}"
        exit 1
        ;;
esac

exit 0

On donne les droits d’exécution au fichier

chmod +x /etc/init.d/redmine

On ajoute redmine au démarrage du système

update-rc.d redmine defaults

Et enfin on démarre redmine

/etc/init.d/redmine start

Apache en mod proxy

On installe le mod proxy d’apache

a2enmod proxy
a2enmod proxy_http

Il faut modifier les droits pour ne pas prendre une 403 dans la gueule

cp /etc/apache2/mods-available/proxy.conf  /etc/apache2/mods-available/proxy.conf.save
sed -e 's/Order deny,allow/Order allow,deny/' /etc/apache2/mods-available/proxy.conf.save | sed -e  's/Deny from all/Allow from all/' > /etc/apache2/mods-available/proxy.conf

Il faut editer le fichier /etc/apache2/site-availables/redmine pour créer un vhost

<VirtualHost *:80>
  #Mettre le nom de votre machine a la place de HOST:
  ServerName redmine.HOST
  ServerAlias *.redmine.HOST

  ProxyPreserveHost Off
  ProxyPass        /  http://127.0.0.1:3000/
  ProxypassReverse /  http://127.0.0.1:3000/

  # On définit les fichiers de log
  ErrorLog /opt/redmine/log/apache-error.log
  CustomLog /opt/redmine/log/apache-access.log combined
</VirtualHost>

Si vous vous installez redmine sur une autre machine que la votre, je vous conseil de mettre a jour votre fichier hosts pour qu’il pointe automatiquement sur la machine serveur.
admin / admin
On ajoute les fichiers de log

touch /opt/redmine/log/apache-error.log
touch /opt/redmine/log/apache-access.log
chown www-data:www-data /opt/redmine/log/apache-error.log
chown www-data:www-data /opt/redmine/log/apache-access.log

On active le site

a2ensite redmine

Et enfin on peut redémarrer apache

/etc/init.d/apache2 restart

Fin et conclusion :

Vous pouvez vous connecter à redmine grace à l’url http://redmine.HOST

Le compte et le mot de passe administrateur est admin et admin

Bien sur, redmine peut être configurer de bien d’autre façon, j’ai décris ici la méthode que j’utilise pour mes propres projets. vous pouvez voire d’autre exemple de configuration sur la doc d’ubuntu-fr qui m’a servit de support pour rédiger ce tutoriel.

Articles en rapport:

Comments are closed.