Projet

Général

Profil

Actions

Wiki » Historique » Révision 134

« Précédent | Révision 134/279 (diff) | Suivant »
Patrice Nadeau, 2015-02-21 10:54


h1. Redmine

Logiciel de gestion de projets, sources, bugs et timeline.
Contient un module de Wiki, de fichiers.
Supporte aussi les systèmes de version de fichier (Git, SVN entre autre).
Disponible à http://www.redmine.org/projects/redmine/wiki/Download

De base, ne fonctionne pas avec Apache

Sa principale difficulté d’installation est sa dépendance à Ruby.
Voir aussi :

{{lastupdated_at}} {{lastupdated_by}}


h2. Installation

Ce guide documente une installation GNU/Linux avec les version suivantes :

  • openSUSE 13.1
  • Redmine 2.6.1

h3. Prérequis

Un serveur LAMP(Linux, Apache, MySQL, PHP) openSUSE fonctionnel.

Les logiciels supplémentaires suivants :


zypper install libmysqlclient-devel ruby-2.0 ruby20-devel rubygem-bundler  rubygem-mysql2 rubygem-pg ImageMagick ImageMagick-devel git gcc make

h3. MySQL

Création de la base de donnés.
Substituer les items suivants à votre choix :

  • redmine : Usager pour la base de donnés.
  • password : Mot de passe de la base de donnees.
  • db : Nom de la base de donnés.

Lancer MySQL :


mysql -u root -p

Commandes MySQL :


create database db character set utf8;
create user 'redmine'@'localhost' identified by 'password';
grant all privileges on db.* to 'redmine'@'localhost';
commit;
quit;

h3. Redmine

L’installation sera faite dans \srv\redmine (exemple avec la version 2.5)


cd /srv/
svn co http://svn.redmine.org/redmine/branches/2.5-stable redmine
cd redmine
cp config/database.yml.example config/database.yml
cp config/configuration.yml.example config/configuration.yml
mkdir public/plugin_assets

Si un usager MySQL autre que root ou mot de passe diffèrent est utilisé :
Éditer le fichier config/database.yml, section Production et modifier les lignes :

  • username
  • password

Éditer le fichier config/configuration.yml et modifier la configuration SMTP.

h3. Ruby

Installation des gems de Ruby


cd redmine
gem install bundler
gem install activerecord-mysql2-adapter
bundle install --without development test

h3. Initialisation

Création de la cryptographie, de la structure et des donnés de base :


cd /srv/redmine
rake generate_secret_token
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

h3. Serveur web

Redmine peux être utiliser avec le serveur inclus webrick (port 3000) ou Apache (port 80).

h4. Webrick

Ouvrir dans le pare-feu le port TCP 3000 :


yast firewall services add tcpport=3000 zone=EXT

Lancer le serveur web


cd /srv/redmine
ruby script/rails server webrick -e production

h5. Transformation en daemon

Le script original vient de http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_openSUSE
Copier le script dans le fichier /etc/init.d/redmine

Le modifier de la manière suivante :

  • REDMINE_BIN=/srv/redmine/current/script/rails
  • REDMINE_USER=user
  • Corriger le «typo» à la ligne 73 : $REDMI-NE_BIN -> $REDMINE_BIN
  • Dans la section stop, après la ligne killproc, ajouter rm $PIDFILE

Rendre le fichier exécutable, l’ajouter aux services SUSE et l’exécuter au démarrage :


chmod 0755 /etc/init.d/redmine
cp -s /etc/init.d/redmine /usr/bin/rcredmine
chkconfig -a redmine

h4. Apache

En test, voir #23

Transformation pour utilisation avec Apache.

  • N'utilise pas webrick
  • Accessible par le port 80 au lieu de 3000

Information provenant de :

h3. Modules Apache

Ajout


zypper install libcurl-devel apache2-devel apache2-mod_perl perl-Apache-DBI subversion-server

Activation des modules Apache


a2enmod ssl
a2enmod perl
a2enmod dav
a2enmod dav_svn
a2enmod dav_fs
a2enmod rewrite
a2enmod headers

h3. Modules Passenger


cd /srv/redmine
gem install passenger
passenger-install-apache2-module2.0

Changer les droits sur le fichiers de log


chmod 0666 log/production.log

Créer le dossier des fichiers temporaire

Par défaut les fichiers sont dans /tmp mais se font enlever par le « clean-up » journalier et doivent être refait avec un reload d'Apache


mkdir tmp/passenger

h3. Activation de la configuration

Créer le fichier /etc/apache2/conf.d/passenger.conf et ajouter la configuration inscrite par l'installation.

Ajouter dans /etc/apache2/vhosts.d/vhost.conf



    # La ligne suivante est nécessaire seulement si plusieurs site web son présents sur le même serveur.
    ServerName redmine.yourdomain.com
    DocumentRoot /srv/redmine/public

    RailsEnv production
    PassengerAppRoot /srv/redmine
    PassengerTempDir /srv/redmine/tmp/passenger

    
        Options Indexes ExecCGI FollowSymLinks
        AllowOverride None
        Order deny,allow
        Allow from all
    

Relancer Apache :


systemctl reload apache2

h2. Post-installation

A partir d’un navigateur web, se brancher à :

Utiliser l’usager admin avec le mot de passe admin.
Vérifier la configuration dans Administration, Information.

Si un avertissement apparait pour l’écriture des répertoires, changer les droits :

Semble être nécessaire que pour Apache


cd /srv/redmine
chmod 0777 public/plugin_assets
chmod 0777 files
chown -R wwwrun:www tmp
# Pour la macro "thumbnails" du wiki, le plugin "redmine_people" nécessite au moins 0775
chmod -R 0777 tmp/thumbnails

h2. Personnalisation

h3. Ajout d’un logo

Les informations viennent de : http://www.redmine.org/projects/redmine/wiki/Howto_add_a_logo_to_your_Redmine_banner

Copier le logo dans /srv/redmine/public/images/logo.png

Modifier le fichier /srv/redmine/app/views/layout/base.rhtml.erb

  • Ajouter la ligne


  • Si on ne veux plus afficher le titre, mettre en commentaire :


Redémarrer Redmine

h3. Plugins

h4. Extended Fields

Permet de créer de nouveau champ dans la basse de donnés.

http://www.redmine.org/plugins/extended_fields

Installation :


cd /srv/redmine
svn co http://svn.s-andy.com/extended-fields plugins/extended_fields
rake redmine:plugins:migrate RAILS_ENV=production

Relancer Redmine

h4. Redmine Rouge

Permet le support de langage supplémentaire pour l'affichage de la syntaxe d'un code source.

"Langage supporté":http://rouge.jayferd.us/demo

https://github.com/ngyuki/redmine_rouge


cd /srv/redmine/plugins
git clone https://github.com/ngyuki/redmine_rouge.git
cd ..
bundle install

Relancer redmine

h4. Code Highlight

http://www.redmine.org/plugins/codehightlight_button

Bouton permettant de sélectionner du code et d'activer la syntaxe selon un langage.

Installation


cd /srv/redmine/plugins
git clone https://github.com/mediatainment/redmine_codebutton.git
cd ..
rake redmine:plugins
rake redmine:plugins:migrate RAILS_ENV=production
# Relancer Redmine
rcredmine restart

Ajout des langages supplémentaires supportées par le « plug-in » Redmine Rouge. Voir "ici":https://github.com/mediatainment/redmine_codebutton/issues/2
Éditer le fichier /srv/redmine/plugins/redmine_codebutton/assets/javascripts/wiki-codehighlight.js

  • Ajouter les langages voulus dans la variable codeRayLanguages

Relancer Apache


systemctl reload apache2.service

h4. Redmine Issue Checklist

Extends issues to store checklist items

http://redminecrm.com/projects/checklist

Installation


cd /srv/redmine/plugins
wget http://redminecrm.com/license_manager/4200/redmine_issue_checklist-2_0_5.zip
unzip redmine_issue_checklist-2_0_5.zip
bundle exec rake redmine:plugins NAME=redmine_issue_checklist RAILS_ENV=production

Relancer Redmine

Configuration
Dans Administration

  • Plugins
    ** Choisir les options voulues
  • Roles and permissions
    ** Choisir le rôle
    Donner les droits voulus sur :
    *** Done checklist items
    *** Edit checklist items
    *** View checklist

h4. Redmine People

A faire

h4. Like Button

Bouton pour Facebook, Google+ et Twitter

http://www.redmine.org/plugins/like

Installation


cd /srv/redmine/plugins
svn svn co http://svn.s-andy.com/like-button like

Relancer Redmine

h4. Wiki Extensions

Ajoute des macros au Wiki de Redmine

La dernière version est disponible à https://bitbucket.org/haru_iida/redmine_wiki_extensions/downloads

Parmi les macros ajoutées:

Liste complète à http://www.r-labs.org/projects/r-labs/wiki/Wiki_Extensions_en

  • Emoticons : Un bouton apparait pour ajouter des « smilley » qui seront afficher en graphique
  • !{{lastupdated_by}} : affiche le nom de la dernière personne à avoir modifier la page
  • !{{lastupdated_at}} : affiche la date de la dernière modification de la page

Des « smilley » non voulus peuvent apparaitre dans les wiki déjà en place. L'utilisation de seras alors nécessaire.

Étapes :

Installation sur le serveur :


cd /srv/redmine/
wget https://bitbucket.org/haru_iida/redmine_wiki_extensions/downloads/redmine_wiki_extensions-0.6.5.zip
unzip redmine_wiki_extensions-0.6.5.zip -d plugins/
rake db:migrate_plugins RAILS_ENV=production
systemctl reload apache2.service

Activer le module dans le ou les projets voulus

h4. WikiNG

Personnalisation des items dans le wiki.
Ajoute des boutons et des icônes comme FIXME et TODO.

« Écrase » le bouton installé par Code Highlight

Installation


cd /srv/redmine
wget http://projects.andriylesyuk.com/attachments/download/564/wiking-1.0.0b.tar.bz2
tar xvf wiking-1.0.0b.tar.bz2
mv wiking plugins
rake redmine:plugins:migrate RAILS_ENV=production

Relancer Redmine

h2. Mise à jour

Version 2.6.1

S’assurer d'avoir les dernières versions des plugins.

Disponible à http://www.redmine.org/projects/redmine/wiki/Download

Mise à jour de Redmine à partir d'une version stable

http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade

Arrêter Redmine

Renommer le répertoire actuel


cd /srv/
mv redmine redmine.old

Télécharger la nouvelle version


wget http://www.redmine.org/releases/redmine-2.6.1.tar.gz

Décompresser le fichier


tar xvf redmine-2.6.1.tar.gz
mv redmine-2.6.1 redmine

Copier les anciens fichiers de configurations


cp redmine.old/config/configuration.yml redmine/config
cp redmine.old/config/database.yml redmine/config
cp -r redmine.old/files redmine
# Les commandes suivantes sont nécessaire seulement si Apache est utilisé
# Le meme ownaer que config.ru doit etre utiliser pour plusieurs dossier
chown wwwrun:www redmine/config.ru
chown -R wwwrun:www redmine/tmp
mkdir redmine/tmp/passenger
chown -R wwwrun:www redmine/tmp
chmod 0777 redmine/public/plugin_assets
chmod 0777 redmine/files

Ne copier que les « plugins » qui ne sont pas fournis par la nouvelle version de Redmine


cp -r redmine/plugins/* redmine/plugins

Installer les « gems »


bundle install --without development test

Mise à jour (base de donnés, « plugins ») et ménage :


cd redmine
bundle exec rake generate_secret_token
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
bundle exec rake tmp:cache:clear tmp:sessions:clear

Relancer Redmine

Vérifier dans « Admin -> Roles & permissions » les permissions.

h2. Copie de sécurité

Remplacer les items suivants :

  • username : Usager de la base de donnés.
  • password : Mot de passe de la base de donnés.
  • database : Nom de la base de données.
  • path : Emplacement pour recevoir le fichier.

/usr/bin/mysqldump -u username -p password database | gzip > /path/redmine_`date +%y_%m_%d`.gz
rsync -a /srv/redmine/files /path/

Script un peu plus évolué :

 

#!/bin/bash
#
# backup_redmine.sh
# Backup of a Redmine setup
# Last Changes: 2013-02-23
# Maintainer: Patrice Nadeau  

# TODO Verify the results (folder exist, enough disk pace , etc..)

## The only variable needed to be changed
# Directory of the Redmine install
declare -r RAIL_ROOT='/srv/redmine'
# MySQL database
declare -r MYSQL_DB=''
# MySQL username for the Redemine db
declare -r MYSQL_USER=''
# MySQL password for the Redemine db
declare -r MYSQL_PASSWORD=''
# Directory for the backup (must exist and with no space in the name)
declare -r DIR='/root'
## end

# Exit level
declare -ir EXIT_OK=0
declare -ir EXIT_WARNING=1
declare -ir EXIT_ERROR=2

declare -i STATUS=$EXIT_OK

# The directory inside the archive 
declare -r REDMINE='redmine'
TMP_DIR=$DIR/$REDMINE

# This will be used for the archive file 
declare -r DST=$DIR/redmine_$(date +%Y%m%d_%H%M%S).tar.gz

# The temporary sql file
declare -r TMP_MYSQL=$TMP_DIR/$MYSQL_DB.mysql

echo "Backup in progress in $DST"

#### Create the temp directory ####
mkdir $TMP_DIR

#### backup MySQL ####
if [ $STATUS -eq $EXIT_OK ] 
then
	STEP='Creating MySQL backup'
	mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD $MYSQL_DB \
		> $TMP_MYSQL
	STATUS=$?
fi

#### backup the Redmine folder ####
if [ $STATUS -eq $EXIT_OK ] 
then
	STEP='Creating Redmine'"'"' files backup'
	cp --recursive $RAIL_ROOT $TMP_DIR
	STATUS=$?
fi

#### create the archive file ####
if [ $STATUS -eq $EXIT_OK ] 
then
	STEP="Creating archive"
	tar --create --gzip --file $DST --directory=$DIR $REDMINE
	STATUS=$?
fi

#### cleanup ####
if [ $STATUS -eq $EXIT_OK ] 
then
	STEP='Cleaning up'
	rm --recursive --force $TMP_DIR
	STATUS=$?
fi

#### exit ####
if [ $STATUS -eq $EXIT_OK ] 
then
	echo "Backup done"
else
	echo "Bakup failed with error code $STATUS in step $STEP"
fi


exit $STATUS

h2. Dépannage

h3. Mot de passe perdu

Le mot de passe admin par défaut est en hash Sha1 : da3174755c5e82a436b6c7ff87c873ee50d6654b et est admin.

h3. Le service tombe « DEAD » à chaque fois (webrick)

Effacer le fichier /srv/redmine/tmp/pids/server.pid.

Mis à jour par Patrice Nadeau il y a presque 10 ans · 134 révisions