Accueil > Tutos > Installer un serveur Redmine sur Centos 5.2

Installer un serveur Redmine sur Centos 5.2

Le but de cet article est d’écrire le processus d’installation d’un serveur RedMine sur une Centos 5.2

Description de RedMine

Redmine est un outil de gestion de projet en Web. Il est écrit en utilisant le framework « Ruby on Rails ». Il est multi-plateforme et fonctionne avec plusieurs bases de données.

Redmine est un projet Open Source sous licence GNU General Public License v2 (GPL).

Les fonctionnalités :

  • gestion multi-projets
  • gestion fine des droits utilisateurs définis par des rôles
  • rapports de bugs, demandes d’évolutions
  • Wiki multi-projets
  • forums multi-projets
  • Flux RSS / ATOM
  • Notifications par email
  • Gestion de feuilles de route, GANTT, calendrier
  • Historique
  • Intégration avec divers suivis de versions : SVN, CVS, Mercurial, Git, Bazaar & Darcs
  • Identification possible via LDAP
  • Multilingue (25 langues)
  • Support de plusieurs bases de données : MySQL, PostgreSQL ou SQLite

Installation des Prés-requis

Installer Ruby on Rails 2.2.2 sur Centos 5.2

yum install ruby ruby-devel ruby-libs-RDOC irb ruby-mysql ruby-rdoc

Télécharger et installer Ruby

wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar xvf rubygems-1.3.1.tgz
cd rubygems-1.3.1
ruby setup.rb

Installer le framework Rails

gem install rails -v=2.2.2

Installer le serveur MySQL

yum install mysql-server
service mysqld start

Installer et configurer Subversion

yum install subversion

Installation de Redmine

cd /usr/local/src
wget http://rubyforge.org/frs/download.php/52944/redmine-0.8.2.tar.gz
tar -zxvf redmine-0.8.2.tar.gz
mv redmine-0.8.2 /opt
cd /opt/redmine*
adduser redmine
chown -R redmine. /opt/redmine

Créer une base de donnée MySQL

mysql -u root
create database redmine character set utf8;

Modifier le fichier de configuration de connexion MySQL

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

Exemple pour une base MySQL

production:
adapter: mysql
database: redmine
host: localhost
username: bduser
password: bdpasswd
socket:/var/lib/mysql/mysql.sock

Créer la structure de la base de donnée

cd /opt/redmine
rake db:migrate RAILS_ENV="production"

Insérer des données de pré-configuration (cette étape est facultative mais fortement recommandée)

rake redmine:load_default_data RAILS_ENV="production"

Modifier les droits de l’utilisateur redmine

mkdir tmp public/plugin_assets
chown -R redmine. files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Démarrer le serveur

ruby script/server webrick -e production

Vous pouvez tester que votre serveur fonctionne :

http://ipduserveur:3000

Login et mot de passe par défaut:

Login: admin
Mot de passe: admin

Ajouter les librairies ImageMagick

Cette étape est nécessaire pour la réalisation des diagramme de Gantt

yum install gcc tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel
cd /usr/local/src
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar xvfz ImageMagick.tar.gz
cd ImageMagick*
./configure
make
make install
[ `grep /usr/local/lib /etc/ld.so.conf | wc -l` -eq 0 ] && echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig
gem install rmagick -r --no-ri --no-rdoc

Ajouter la gestion automatique des dépot SVN

Redmine est capable de gérer automatiquement la création de vos dépots SVN; de plus, en fonction du type de projet (public ou privé) les dépots seront accessibles aux membres uniquement.

yum install mod_dav_svn mod_perl perl-Apache-DBI perl-Digest-SHA1 perl-DBD-mysql
mkdir /opt/svn
chown -R root.apache /opt/svn
yum install mod_dav_svn

Récupérer une version plus récente de Redmine.pm

cd /tmp
wget http://redmine.rubyforge.org/svn/trunk/extra/svn/Redmine.pm
cp Redmine.pm /opt/redmine/extra/svn/
mv Redmine.pm /usr/lib/perl5/vendor_perl/5.8.8/Apache/

Corriger une petit problème sur un des fichers ruby:

vi /opt/redmine/extra/svn/reposman.rb

Ajouter :

require ‘rdoc/ri/ri_paths’

Avant le bloc:

require 'getoptlong'
require 'rdoc/usage'
require 'soap/wsdlDriver'
require 'find'
require 'etc'

Editer le fichier /etc/httpd/conf.d/subversion.conf et ajouter à la fin:

DAV svn
SVNParentPath /opt/svn
SVNListParentPath on

Créer une fichier redmine.conf dans /etc/httpd/conf.d

<Location /svn-private>
DAV svn
SVNParentPath "/opt/svn"
Order deny,allow
Deny from all
# only allow reading orders
<Limit GET PROPFIND OPTIONS REPORT>
Allow from 192.168.0.40
</Limit>
</Location>
 
PerlLoadModule Apache::Redmine
   <Location /svn>
     DAV svn
     SVNParentPath "/opt/svn"
 
     AuthType Basic
     AuthName redmine
     Require valid-user
 
     PerlAccessHandler Apache::Authn::Redmine::access_handler
     PerlAuthenHandler Apache::Authn::Redmine::authen_handler
 
     ## for mysql
     RedmineDSN "DBI:mysql:database=redmine;host=localhost"
 
     RedmineDbUser "userdb"
     RedmineDbPass "userpwd"
  </Location>

Ajouter à la crontab:

*/5 * * * * ruby /opt/redmine/extra/svn/reposman.rb --redmine-host=localhost:3000 --svn-dir=/opt/svn --owner=apache --url=http://IP/svn-private/ --verbose >> /var/log/reposman.log

Tout devrait à présent fonctionner.
L’idéal serait de mettre en place un cluter Mongrel, mais il semble que la gestion des dépots SVN ne fonctionne plus.

Si vous l’utilisez avec Mongrel, n’hésiter pas ;)

bpa Tutos , ,

  1. jchatard
    21/05/2009 à 11:23 | #1

    Bonjour,

    J’ai suivi ce tuto très pratique, merci !

    J’ai un souci, tout fonctionne, Redmin arrive bien à afficher le dépôt, mais je n’arrive pas à me connecter sur le SVN. Quand je vais sur http://mondomain.com/svn/mon_projet, j’ai bien un login et un mot de passe à entrer, ce que je fais (avec le compte utilisateur Redmine associé à mon_projet), mais je me fais jeter à chaque fois (auth failed). Savez-vous où je dois chercher ?

    Merci de votre aide.
    Jérémy

  2. bpa
    27/05/2009 à 19:57 | #2

    @jchatard
    Bonjour,

    J’avais eu un problème similaire et en fait la solution était plutot simple puisque par défaut, les comptes n’ont pas accès aux dépots svn ;)

    J’ai alors ajouté mon compte au projet et cela à suffit.
    Est-ce que par hasard, vous ne seriez pas dans le même cas ?

    Tenez moi au courant
    Brian

  1. Pas encore de trackbacks