Wiki » Historique » Révision 98
Révision 97 (Patrice Nadeau, 2014-12-14 13:46) → Révision 98/279 (Patrice Nadeau, 2014-12-14 13:47)
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 --- {{toc}} h2. Installation Ce guide documente une installation GNU/Linux avec les version suivantes : * openSUSE 13.1 * Redmine 2.4.2 h3. 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 ruby-2.0 ruby20-devel rubygem-bundler rubygem-mysql2 rubygem-pg ImageMagick ImageMagick-devel git gcc make </code></pre> 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 : <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> h3. Redmine L’installation sera faite dans _\srv\redmine_ (exemple avec la version 2.5) <pre><code class="bash"> 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 </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. h3. 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> h3. 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> 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 : <pre><code class="bash"> yast firewall services add tcpport=3000 zone=EXT </code></pre> Lancer le serveur web <pre><code class="bash"> cd /srv/redmine ruby script/rails server webrick -e production </code></pre> 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 : <pre><code class="bash"> chmod 0755 /etc/init.d/redmine cp -s /etc/init.d/redmine /usr/bin/rcredmine chkconfig -a redmine </code></pre> 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 : * 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 ** http://www.redmine.org/boards/2/topics/43924 * livre : "Mastering Redmine":http://shop.oreilly.com/product/9781849519144.do h3. 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> h3. Modules _Passenger_ <pre><code class="bash"> cd /srv/redmine gem install passenger passenger-install-apache2-module2.0 </code></pre> Changer les droits sur le fichiers de log <pre><code class="bash"> chmod 0666 /srv/redmine.log/production.log </code></pre> 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 <pre><code class="bash"> mkdir /srv/redmine/tmp/passenger </code></pre> 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_ <pre><code class="bash"> <VirtualHost *:80> # 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 <Directory "/srv/redmine/public"> Options Indexes ExecCGI FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory> </VirtualHost> </code></pre> Relancer Apache : <pre><code class="bash"> systemctl reload apache2 </code></pre> h2. Post-installation A partir d’un navigateur web, se brancher à : * Webrick : http://server:3000 * Apache : http://server 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 <pre><code class="bash"> cd /srv/redmine chmod 0777 public/plugin_assets chmod 0777 files </code></pre> 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 <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 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 : <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 </code></pre> 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 <pre> <code class="bash"> cd /srv/redmine/plugins git clone https://github.com/ngyuki/redmine_rouge.git cd .. bundle install </code> </pre> 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 <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> 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 <pre><code class="bash"> systemctl reload apache2.service </code></pre> h4. 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 </code></pre> 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 <pre><code class="bash"> cd /srv/redmine/plugins svn svn co http://svn.s-andy.com/like-button like </code></pre> Relancer Redmine 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 <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 </code></pre> Relancer Redmine h2. 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 </code></pre> Relancer Redmine 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. <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 évolué : <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> 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_.