13 juin 2015 | Posted in:Logiciel

On ne présente plus redmine, le soft open-source de gestion de projet développé en Ruby sur la base du framework Ruby on Rails.

Pré requis

Un serveur sous debian 7 64 bit vierge.

Introduction

Je vais vous montrer comment installer redmine en version 3 sur une debian 7 avec :

  • mysql 5.5
  • ruby 2.2
  • rails 4.2
  • gem 2.4.5
  • apache2
  • passenger
  • et une authentification ldap

Installation d’apache et de mysql

On commence par le plus simple, on rajoutera le php et phpmyadmin et imagemagick en même temps.

apt-get install mysql-server mysql-common libmysqlclient-dev mysql-client apache2 apache2-mpm-prefork apache2-prefork-dev libapr1-dev libaprutil1-dev libfcgi-dev libssl-dev zlib1g-dev libcurl4-openssl-dev phpmyadmin imagemagick libmagickwand-dev php5 libapache2-mod-php5 php5-mysql php5-ldap php5-imagick php5-curl php5-gd php5-intl php-pear php5-imap php5-mcrypt php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php-apc curl vim subversion

Vous pouvez après reprendre les fichiers de configuration d’apache, php et mysql afin d’optimiser le tout et surtout le sécuriser.

Installation de ruby

Nous allons d’abord installer les pré-requis puis télécharger la dernière version disponible. En effet le package dans debian est la 1:1.9.3
C’est d’ailleurs pour cela que je n’ai pas installé le paquet passenger disponible.

apt-get install gcc build-essential zlib1g zlib1g-dev zlibc libzlib-ruby libssl-dev libyaml-dev libcurl4-openssl-dev libapr1-dev libxslt-dev checkinstall libffi-dev libreadline-dev git-core

Afin de faciliter l’installation, on va utiliser rmv
J’ai essayé avec rbenv et j’ai eu des soucis pour info.

mkdir /usr/local/rvm
cd /usr/local/rvm
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --rails
usermod -aG rvm www-data

Il faut maintenant reload votre shell

source ~/.bashrc

Pour vérifier que c’est bon :

ruby -v
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]

Si vous obtenez

ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]

c’est que vous avez le paquet ruby de debian, supprimez le et recommencez l’installation comme décrite ci-dessus

et on vérifie gem

gem -v

Installation de rails, bundler et passenger pour redmine

gem install bundler
gem install passenger

On active le passenger
On génère les fichiers de configuration de passenger

passenger-install-apache2-module

On va mettre en place le fichier de configuration

vim /etc/apache2/mods-available/passenger.conf
PassengerRoot /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.2.1/wrappers/ruby

Puis le chargement du module

vim /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so

On active le module et on refresh apache

a2enmod passenger
apache2ctl graceful

 

On vérifie que le module est bien activé

apache2ctl -t -D DUMP_MODULES | grep passenger

qui doit nous répondre

passenger_module (shared)

Tout va bien on continue.

Création de la base de données redmine

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

Pensez à changer my_password par votre mot de passe.

Installation de redmine

mkdir -p /data/www/rubyonrails/
cd /data/www/rubyonrails

Pour plus de sécurité, nous allons créer un utilisateur système redmine avec pour groupe www-data

useradd -d /home/ -g 33 -m -s /bin/sh redmine

On télécharge notre archive et on la décompresse, pour faciliter les mises à jour futures, je vais créer un lien symbolique

wget http://www.redmine.org/releases/redmine-3.0.3.tar.gz
tar xvfz redmine-3.0.3.tar.gz
rm redmine-3.0.3.tar.gz
ln -s redmine-3.0.3 redmine

On configure la connexion à la base de données

cp -p /data/www/rubyonrails/redmine/config/database.yml.example /data/www/rubyonrails/redmine/config/database.yml

On se place dedans

cd /data/www/rubyonrails/redmine/

On installe les dépendances

bundle install --without development

On génère le token

bundle exec rake generate_secret_token

On nourrit la base de données de production

RAILS_ENV=production bundle exec rake db:migrate

puis

RAILS_ENV=production bundle exec rake redmine:load_default_data

On configure le vhost d apache

vim /etc/apache2/sites-available/redmine.site.com

<VirtualHost *:80>
ServerName redmine.site.com
DocumentRoot /data/www/rubyonrails/redmine/public/
<Directory /data/www/rubyonrails/redmine/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

RailsEnv production

AddOutputFilter DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

ErrorLog /var/log/apache2/redmine.site.com/error.log
LogLevel warn
CustomLog /var/log/apache2/redmine.site.com/access.log combined
</VirtualHost>

on active le site et on restart apache

a2ensite redmine.site.com
apache2ctl graceful

Conclusion

Vous voila avec une installation redmine, il ne vous reste plus qu’à configurer vos projets et votre authentification Ldap dans l’administration de votre interface.

5 Comments

  1. Rochdi
    6 juillet 2015

    Merci pour le tuto.

    La commande

    curl -sSL https://get.rvm.io | bash -s stable –rails

    hangs on Creating alias default for ruby-2.2.1….

  2. Rochdi
    6 juillet 2015

    Le même comportement sur Ubuntu 14.04.2

    Est ce que tu as une idée ??

  3. admin
    6 juillet 2015

    Non pas d idée pour le moment faut que je creuse

  4. Rochdi
    8 juillet 2015

    Est ce que ça doit être installé sous le compte root ou bien simple user ?

    Thanks

  5. admin
    8 juillet 2015

    Moi j installe sous root, ce qui est assez logique d ailleurs au vu des paquets à installer. La plupart des .deb maintenant crée un utilisateur s’il y a besoin de cloisonner.

Leave a Reply


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*