Projet

Général

Profil

Wiki » Historique » Révision 56

Révision 55 (Patrice Nadeau, 2014-10-09 07:37) → Révision 56/279 (Patrice Nadeau, 2014-10-11 09:50)

%{font-size:18pt}Redmine% 

 --- 

 {{toc}} 

 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 : 
 * http://bitnami.com/stack/redmine 
 * http://www.turnkeylinux.org/redmine 

 h1. Installation 

 Ce guide documente une installation GNU/Linux avec les version suivantes : 
 * openSUSE 13.1 
 * Redmine 2.4.2 

 

 h2. Prérequis 

 Un serveur *LAMP(Linux, Apache, MySQL, PHP)* [[guides_opensuse:|openSUSE]] *fonctionnel*. 

 Les logiciels supplémentaires suivants : 

 <pre><code class="bash"> 
 zypper install libmysqlclient-devel mysql-community-server ruby-2.0 ruby20-devel rubygem-bundler    rubygem-mysql2 rubygem-pg ImageMagick ImageMagick-devel git gcc make 
 </code></pre> 

  

 h2. MySQL 

 Ajout au démarrage automatique et démarrage du service : 
 <pre><code class="bash"> 
 chkconfig -a mysql 
 rcmysql start 
 </code></pre> 

 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 : 
 <pre><code class="bash"> 
 mysql -u root -p 
 </code></pre> 

 Commandes MySQL : 
 <pre><code class="sql"> 
 create database db character set utf8; 
 create user 'redmine'@'localhost' identified by 'password'; 
 grant all privileges on db.* to 'redmine'@'localhost'; 
 commit; 
 quit; 
 </code></pre> 

 h2. Redmine 

 L’installation sera faite dans _\srv\redmine_ (exemple avec la version 2.4) 
 <pre><code class="bash"> 
 cd /srv/ 
 svn co http://svn.redmine.org/redmine/branches/2.4-stable redmine 
 cd redmine 
 cp config/database.yml.example config/database.yml 
 cp config/configuration.yml.example config/configuration.yml 
 mkdir public/plugin_assets 
 </code></pre> 

 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. 

 h2. Ruby 

 Installation des gems de Ruby 
 <pre><code class="bash"> 
 cd redmine 
 gem install bundler 
 gem install activerecord-mysql2-adapter 
 bundle install --without development test 
 </code></pre> 

 h2. Initialisation 

 Création de la cryptographie, de la structure et des donnés de base : 
 <pre><code class="bash"> 
 cd /srv/redmine 
 rake generate_secret_token 
 RAILS_ENV=production rake db:migrate 
 RAILS_ENV=production rake redmine:load_default_data 
 </code></pre> 

 Ouvrir dans le pare-feu : 
 * TCP : 3000 

 Lancer le serveur web (test) 
 <pre><code class="bash"> 
 cd /srv/redmine 
 ruby script/rails server webrick -e production 
 </code></pre> 

 A partir d’un navigateur web, se brancher à http://server:3000. 
 Utiliser l’usager *admin* avec le mot de passe *admin*. 
 Vérifier la configuration dans *Administration*, *Information*. 

 h2. 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 : 
 <pre><code class="bash"> 
 chmod 0755 /etc/init.d/redmine 
 cp -s /etc/init.d/redmine /usr/bin/rcredmine 
 chkconfig -a redmine 
 </code></pre> 

 h1. Utilisation avec 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 : 
 * web :  
 ** http://martin-denizet.com/install-redmine-2-5-x-with-git-and-subversion-on-debian-with-apache2-rvm-and-passenger/  
 ** http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Apache_to_run_Redmine 
 * livre : "Mastering Redmine":http://shop.oreilly.com/product/9781849519144.do 

 h2. Modules Apache 

 Ajout 
 <pre><code class="bash"> 
 zypper install libcurl-devel apache2-devel apache2-mod_perl perl-Apache-DBI subversion-server 
 </code></pre> 

 Activation des modules Apache 
 <pre><code class="bash"> 
 a2enmod ssl 
 a2enmod perl 
 a2enmod dav 
 a2enmod dav_svn 
 a2enmod dav_fs 
 a2enmod rewrite 
 a2enmod headers 
 </code></pre> 

 h2. Modules _Passenger_ 

 <pre><code class="bash"> 
 cd /srv/redmine 
 gem install passenger 
 passenger-install-apache2-module2.0 
 </code></pre> 

 h2. Activation de la configuration 

 <pre><code class="bash"> 
 systemctl reload apache2 
 </code></pre> 

 Ajouter dans _/etc/apache2/conf.d/passenger.conf_ 
 <pre><code class="bash"> 
 LoadModule passenger_module /usr/lib64/ruby/gems/2.0.0/gems/passenger-4.0.49/buildout/apache2/mod_passenger.so 
 <IfModule mod_passenger.c> 
   PassengerRoot /usr/lib64/ruby/gems/2.0.0/gems/passenger-4.0.49 
   PassengerDefaultRuby /usr/bin/ruby2.0 
 </IfModule> 
 </code></pre> 

 Ajouter dans _/etc/apache2/vhosts.d/vhost.conf_ 
 <pre><code class="bash"> 
 <VirtualHost *:80> 
     ServerName redmine.yourdomain.com 
     DocumentRoot /srv/redmine/public 

     RailsEnv production 
     RailsBaseURI /redmine 

     <Directory "/srv/redmine/public"> 
         Options Indexes ExecCGI FollowSymLinks 
         AllowOverride None 
         Order deny,allow 
         Allow from all 
     </Directory> 
 </VirtualHost> 
 </code></pre> 

 Vérifier la configuration 
 > Plugin assets directory writable 

 h1. Personnalisation 

 h2. 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  
 <pre><code class="ruby"> 
 <img src="<%= Redmine::Utils.relative_url_root %>/images/logo.png" style="top-margin: 15px; left-margin: 15px;"/> 
 </code></pre> 
 * Si on ne veux plus afficher le titre, mettre en commentaire : 
 <pre><code class="ruby"> 
 <!--<h1><%= page_header_title %></h1>--> 
 </code></pre> 

 Redémarrer Redmine 
 <pre><code class="bash"> 
 rcredmine restart 
 </code></pre> 

 h2. Plugins 

 h3. Extended Fields 

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

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

 Installation :  
 <pre><code class="bash"> 
 cd /srv/redmine 
 svn co http://svn.s-andy.com/extended-fields plugins/extended_fields 
 rake redmine:plugins:migrate RAILS_ENV=production 
 rcredmine restart 
 </code></pre> 

 h3. 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 

 <pre> 
 <code class="bash"> 
 cd /srv/redmine/plugins 
 git clone https://github.com/ngyuki/redmine_rouge.git 
 cd .. 
 bundle install 
 # Relancer redmine 
 rcredmine restart 
 </code> 
 </pre> 

 h3. Code Highlight 

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

 Bouton permettant de sélectionner du code et d'activer la syntaxe selon un langage. 
 >Ne fonctionne pas pour les langages supplémentaires supportées par le « plug-in » _Redmine Rouge_. Voir "ici":https://github.com/mediatainment/redmine_codebutton/issues/2 

 Installation 
 <pre><code class="bash"> 
 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 
 </code></pre> 

 h3. Redmine Issue Checklist 

 Extends issues to store checklist items 

 http://redminecrm.com/projects/checklist 

 Installation 
 <pre><code class="bash"> 
 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 
 rcredmine restart 
 </code></pre> 

 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 

 h3. Redmine People 

 > A faire 

 h3. 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 
 <pre><code class="bash"> 
 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 
 # restart Redmine 
 rcredmine restart 
 </code></pre> 

 h1. Mise à jour 

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

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

 Mise à jour de Redmine à partir de SVN (dernière version) 

 Vérifier la version pointée par SVN 
 <pre><code class="bash"> 
 svn info 
 </code></pre> 

 Si ne pointe pas sur la bonne, faire le changement : 
 <pre><code class="bash"> 
 svn switch http://svn.redmine.org/redmine/branches/2.4-stable 
 </code></pre> 

 Faire la mise à jour : 
 <pre><code class="bash"> 
 svn update 
 </code></pre> 

 Installation des «gem» de Ruby. 
 >Vérifier la version de _rubygem-mysql2_ et modifier le fichier *Gemfile* pour la même version. 

 <pre><code class="bash"> 
 cd /srv/redmine 
 rm -r /usr/lib64/ruby/gems/* 
 zypper rm rubygem-mysql2 
 zypper in rubygem-mysql2 
 gem install bundler 
 gem install activerecord-mysql2-adapter 
 bundle install --without development test 
 </code></pre> 

 Mise à jour (base de donnés, « plugins ») et ménage : 
 <pre><code class="bash"> 
 rake db:migrate RAILS_ENV=production 
 rake redmine:plugins:migrate RAILS_ENV=production 
 rake tmp:cache:clear 
 rake tmp:sessions:clear 
 rcredmine restart 
 </code></pre> 

 h1. 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. 

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

 Script un peu plus evolué : 
 <pre> <code class="bash"> 

 #!/bin/bash 
 # 
 # backup_redmine.sh 
 # Backup of a Redmine setup 
 # Last Changes: 2013-02-23 
 # Maintainer: Patrice Nadeau    <pnadeau@patricenadeau.com> 

 # 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 

 </code></pre> 

 h1. Dépannage 

 h2. Mot de passe perdu 

 Le mot de passe admin par défaut est en _hash Sha1_ : *da3174755c5e82a436b6c7ff87c873ee50d6654b* et est *admin.* 

 h2. Le service tombe « DEAD » a chaque fois 

 Effacer le fichier _/srv/redmine/tmp/pids/server.pid_.