Projet

Général

Profil

Wiki » Historique » Version 56

Patrice Nadeau, 2014-10-11 09:50

1 13 Patrice Nadeau
%{font-size:18pt}Redmine%
2
3
---
4
5 1 Patrice Nadeau
{{toc}}
6
7 13 Patrice Nadeau
h1. Redmine
8 6 Patrice Nadeau
9 31 Patrice Nadeau
Logiciel de gestion de projets, sources, bugs et timeline.
10
Contient un module de Wiki, de fichiers.
11
Supporte aussi les systèmes de version de fichier (Git, SVN entre autre).
12
Disponible à http://www.redmine.org/projects/redmine/wiki/Download
13
14
De base, ne fonctionne pas avec Apache
15 1 Patrice Nadeau
16 55 Patrice Nadeau
Sa principale difficulté d’installation est sa dépendance à Ruby.
17 31 Patrice Nadeau
Voir aussi :
18
* http://bitnami.com/stack/redmine
19
* http://www.turnkeylinux.org/redmine
20
21 6 Patrice Nadeau
h1. Installation
22
23 32 Patrice Nadeau
Ce guide documente une installation GNU/Linux avec les version suivantes :
24
* openSUSE 13.1
25
* Redmine 2.4.2
26
27 1 Patrice Nadeau
h2. Prérequis
28
29 56 Patrice Nadeau
Un serveur *LAMP(Linux, Apache, MySQL, PHP)* [[guides_opensuse:|openSUSE]] *fonctionnel*.
30 32 Patrice Nadeau
31 44 Patrice Nadeau
Les logiciels supplémentaires suivants :
32 50 Patrice Nadeau
33
<pre><code class="bash">
34
zypper install libmysqlclient-devel mysql-community-server ruby-2.0 ruby20-devel rubygem-bundler  rubygem-mysql2 rubygem-pg ImageMagick ImageMagick-devel git gcc make
35 56 Patrice Nadeau
</code></pre>
36 32 Patrice Nadeau
37
h2. MySQL
38
39
Ajout au démarrage automatique et démarrage du service :
40
<pre><code class="bash">
41
chkconfig -a mysql
42
rcmysql start
43
</code></pre>
44
45
Création de la base de donnés.
46
Substituer les items suivants à votre choix :
47
* redmine : Usager pour la base de donnés.
48
* password : Mot de passe de la base de donnees.
49
* db : Nom de la base de donnés.
50
51
Lancer MySQL :
52
<pre><code class="bash">
53
mysql -u root -p
54
</code></pre>
55
56
Commandes MySQL :
57
<pre><code class="sql">
58
create database db character set utf8;
59
create user 'redmine'@'localhost' identified by 'password';
60
grant all privileges on db.* to 'redmine'@'localhost';
61
commit;
62
quit;
63
</code></pre>
64
65 33 Patrice Nadeau
h2. Redmine
66 13 Patrice Nadeau
67 51 Patrice Nadeau
L’installation sera faite dans _\srv\redmine_ (exemple avec la version 2.4)
68 33 Patrice Nadeau
<pre><code class="bash">
69
cd /srv/
70
svn co http://svn.redmine.org/redmine/branches/2.4-stable redmine
71
cd redmine
72
cp config/database.yml.example config/database.yml
73
cp config/configuration.yml.example config/configuration.yml
74
mkdir public/plugin_assets
75
</code></pre>
76
77
Si un usager MySQL autre que _root_ ou mot de passe diffèrent est utilisé :
78
Éditer le fichier *config/database.yml*, section *Production* et modifier les lignes :
79
* *username*
80
* *password*
81
82
Éditer le fichier _config/configuration.yml_ et modifier la configuration SMTP.
83
84
h2. Ruby
85
86 34 Patrice Nadeau
Installation des gems de Ruby
87 1 Patrice Nadeau
<pre><code class="bash">
88 34 Patrice Nadeau
cd redmine
89
gem install bundler
90
gem install activerecord-mysql2-adapter
91
bundle install --without development test
92 1 Patrice Nadeau
</code></pre>
93 34 Patrice Nadeau
94
h2. Initialisation
95
96
Création de la cryptographie, de la structure et des donnés de base :
97
<pre><code class="bash">
98
cd /srv/redmine
99
rake generate_secret_token
100
RAILS_ENV=production rake db:migrate
101
RAILS_ENV=production rake redmine:load_default_data
102
</code></pre>
103
104
Ouvrir dans le pare-feu :
105
* TCP : 3000
106
107
Lancer le serveur web (test)
108
<pre><code class="bash">
109
cd /srv/redmine
110
ruby script/rails server webrick -e production
111
</code></pre>
112
113
A partir d’un navigateur web, se brancher à http://server:3000.
114
Utiliser l’usager *admin* avec le mot de passe *admin*.
115
Vérifier la configuration dans *Administration*, *Information*.
116 16 Patrice Nadeau
117 35 Patrice Nadeau
h2. Transformation en daemon
118
119
Le script original vient de http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_openSUSE
120
Copier le script dans le fichier */etc/init.d/redmine*
121
122
Le modifier de la manière suivante :
123
* REDMINE_BIN=/srv/redmine/current/script/rails
124
* REDMINE_USER=user
125
* Corriger le «typo» à la ligne 73 : $REDMI-NE_BIN -> $REDMINE_BIN
126
* Dans la section stop, après la ligne killproc, ajouter *rm $PIDFILE*
127
128
Rendre le fichier exécutable, l’ajouter aux services SUSE et l’exécuter au démarrage :
129
<pre><code class="bash">
130
chmod 0755 /etc/init.d/redmine
131
cp -s /etc/init.d/redmine /usr/bin/rcredmine
132
chkconfig -a redmine
133
</code></pre>
134
135 47 Patrice Nadeau
h1. Utilisation avec Apache
136 45 Patrice Nadeau
137
> En test, voir #23
138
139
Transformation pour utilisation avec Apache.
140
* N'utilise pas _webrick_
141
* Accessible par le port 80 au lieu de 3000
142
143
Information provenant de :
144 54 Patrice Nadeau
* web : 
145
** http://martin-denizet.com/install-redmine-2-5-x-with-git-and-subversion-on-debian-with-apache2-rvm-and-passenger/ 
146
** http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Apache_to_run_Redmine
147 45 Patrice Nadeau
* livre : "Mastering Redmine":http://shop.oreilly.com/product/9781849519144.do
148
149 46 Patrice Nadeau
h2. Modules Apache
150
151
Ajout
152 45 Patrice Nadeau
<pre><code class="bash">
153 49 Patrice Nadeau
zypper install libcurl-devel apache2-devel apache2-mod_perl perl-Apache-DBI subversion-server
154 45 Patrice Nadeau
</code></pre>
155
156
Activation des modules Apache
157
<pre><code class="bash">
158
a2enmod ssl
159
a2enmod perl
160
a2enmod dav
161
a2enmod dav_svn
162
a2enmod dav_fs
163
a2enmod rewrite
164
a2enmod headers
165 1 Patrice Nadeau
</code></pre>
166
167 46 Patrice Nadeau
h2. Modules _Passenger_
168
169 45 Patrice Nadeau
<pre><code class="bash">
170
cd /srv/redmine
171
gem install passenger
172
passenger-install-apache2-module2.0
173 1 Patrice Nadeau
</code></pre>
174
175 46 Patrice Nadeau
h2. Activation de la configuration
176
177 45 Patrice Nadeau
<pre><code class="bash">
178
systemctl reload apache2
179 1 Patrice Nadeau
</code></pre>
180 45 Patrice Nadeau
181
Ajouter dans _/etc/apache2/conf.d/passenger.conf_
182
<pre><code class="bash">
183
LoadModule passenger_module /usr/lib64/ruby/gems/2.0.0/gems/passenger-4.0.49/buildout/apache2/mod_passenger.so
184
<IfModule mod_passenger.c>
185
  PassengerRoot /usr/lib64/ruby/gems/2.0.0/gems/passenger-4.0.49
186
  PassengerDefaultRuby /usr/bin/ruby2.0
187
</IfModule>
188
</code></pre>
189
190
Ajouter dans _/etc/apache2/vhosts.d/vhost.conf_
191
<pre><code class="bash">
192
<VirtualHost *:80>
193
    ServerName redmine.yourdomain.com
194
    DocumentRoot /srv/redmine/public
195
196
    RailsEnv production
197
    RailsBaseURI /redmine
198
199
    <Directory "/srv/redmine/public">
200
        Options Indexes ExecCGI FollowSymLinks
201
        AllowOverride None
202
        Order deny,allow
203
        Allow from all
204
    </Directory>
205
</VirtualHost>
206
</code></pre>
207
208
Vérifier la configuration
209
> Plugin assets directory writable
210
211 29 Patrice Nadeau
h1. Personnalisation
212 8 Patrice Nadeau
213 36 Patrice Nadeau
h2. Ajout d’un logo
214
215
Les informations viennent de : http://www.redmine.org/projects/redmine/wiki/Howto_add_a_logo_to_your_Redmine_banner
216
217
Copier le logo dans _/srv/redmine/public/images/logo.png_
218 1 Patrice Nadeau
219 37 Patrice Nadeau
Modifier le fichier _/srv/redmine/app/views/layout/base.rhtml.erb_
220
* Ajouter la ligne 
221 1 Patrice Nadeau
<pre><code class="ruby">
222 37 Patrice Nadeau
<img src="<%= Redmine::Utils.relative_url_root %>/images/logo.png" style="top-margin: 15px; left-margin: 15px;"/>
223
</code></pre>
224
* Si on ne veux plus afficher le titre, mettre en commentaire :
225
<pre><code class="ruby">
226 1 Patrice Nadeau
<!--<h1><%= page_header_title %></h1>-->
227 37 Patrice Nadeau
</code></pre>
228
229
Redémarrer Redmine
230
<pre><code class="bash">
231
rcredmine restart
232 36 Patrice Nadeau
</code></pre>
233
234 1 Patrice Nadeau
h2. Plugins
235
236 38 Patrice Nadeau
h3. Extended Fields
237
238
Permet de créer de nouveau champ dans la basse de donnés.
239
240
http://www.redmine.org/plugins/extended_fields
241
242
Installation : 
243
<pre><code class="bash">
244
cd /srv/redmine
245
svn co http://svn.s-andy.com/extended-fields plugins/extended_fields
246
rake redmine:plugins:migrate RAILS_ENV=production
247
rcredmine restart
248
</code></pre>
249
250 4 Patrice Nadeau
h3. Redmine Rouge
251 12 Patrice Nadeau
252 1 Patrice Nadeau
Permet le support de langage supplémentaire pour l'affichage de la syntaxe d'un code source.
253 4 Patrice Nadeau
254 13 Patrice Nadeau
"Langage supporté":http://rouge.jayferd.us/demo
255 1 Patrice Nadeau
256
https://github.com/ngyuki/redmine_rouge
257
258
<pre>
259
<code class="bash">
260
cd /srv/redmine/plugins
261
git clone https://github.com/ngyuki/redmine_rouge.git
262
cd ..
263
bundle install
264 2 Patrice Nadeau
# Relancer redmine
265
rcredmine restart
266 1 Patrice Nadeau
</code>
267
</pre>
268 5 Patrice Nadeau
269 22 Patrice Nadeau
h3. Code Highlight
270 9 Patrice Nadeau
271 10 Patrice Nadeau
http://www.redmine.org/plugins/codehightlight_button
272 9 Patrice Nadeau
273
Bouton permettant de sélectionner du code et d'activer la syntaxe selon un langage.
274 11 Patrice Nadeau
>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
275 9 Patrice Nadeau
276 1 Patrice Nadeau
Installation
277
<pre><code class="bash">
278 10 Patrice Nadeau
cd /srv/redmine/plugins
279
git clone https://github.com/mediatainment/redmine_codebutton.git
280
cd ..
281
rake redmine:plugins
282 9 Patrice Nadeau
rake redmine:plugins:migrate RAILS_ENV=production
283 10 Patrice Nadeau
# Relancer Redmine
284 1 Patrice Nadeau
rcredmine restart
285
</code></pre>
286 11 Patrice Nadeau
287 23 Patrice Nadeau
h3. Redmine Issue Checklist
288 11 Patrice Nadeau
289
Extends issues to store checklist items
290
291
http://redminecrm.com/projects/checklist
292
293
Installation
294
<pre><code class="bash">
295
cd /srv/redmine/plugins
296
wget http://redminecrm.com/license_manager/4200/redmine_issue_checklist-2_0_5.zip
297
unzip redmine_issue_checklist-2_0_5.zip
298
bundle exec rake redmine:plugins NAME=redmine_issue_checklist RAILS_ENV=production
299
# Relancer Redmine
300
rcredmine restart
301
</code></pre>
302
303
Configuration
304
Dans *Administration*
305
* *Plugins*
306
** Choisir les options voulues
307
* *Roles and permissions*
308
** Choisir le rôle
309
Donner les droits voulus sur :
310
*** Done checklist items 
311
*** Edit checklist items 
312 14 Patrice Nadeau
*** View checklist
313 1 Patrice Nadeau
314 24 Patrice Nadeau
h3. Redmine People
315
316 29 Patrice Nadeau
> A faire
317 24 Patrice Nadeau
318 20 Patrice Nadeau
h3. WikiNG
319 1 Patrice Nadeau
320 20 Patrice Nadeau
Personnalisation des items dans le wiki.
321 28 Patrice Nadeau
Ajoute des boutons et des icônes comme FIXME et TODO.
322 29 Patrice Nadeau
> « Écrase » le bouton installé par _Code Highlight_
323 21 Patrice Nadeau
324
Installation
325 27 Patrice Nadeau
<pre><code class="bash">
326 26 Patrice Nadeau
cd /srv/redmine
327
wget http://projects.andriylesyuk.com/attachments/download/564/wiking-1.0.0b.tar.bz2
328
tar xvf wiking-1.0.0b.tar.bz2
329
mv wiking plugins
330
rake redmine:plugins:migrate RAILS_ENV=production
331
# restart Redmine
332
rcredmine restart
333
</code></pre>
334 20 Patrice Nadeau
335 14 Patrice Nadeau
h1. Mise à jour
336 1 Patrice Nadeau
337 14 Patrice Nadeau
S’assurer d'avoir les dernières versions des plugins.
338 9 Patrice Nadeau
339 41 Patrice Nadeau
Disponible a http://www.redmine.org/projects/redmine/wiki/Download 
340
341
Mise à jour de Redmine à partir de SVN (dernière version)
342
343
Vérifier la version pointée par SVN
344
<pre><code class="bash">
345
svn info
346
</code></pre>
347
348
Si ne pointe pas sur la bonne, faire le changement :
349
<pre><code class="bash">
350
svn switch http://svn.redmine.org/redmine/branches/2.4-stable
351
</code></pre>
352
353
Faire la mise à jour :
354
<pre><code class="bash">
355
svn update
356
</code></pre>
357
358
Installation des «gem» de Ruby.
359
>Vérifier la version de _rubygem-mysql2_ et modifier le fichier *Gemfile* pour la même version.
360
361
<pre><code class="bash">
362
cd /srv/redmine
363
rm -r /usr/lib64/ruby/gems/*
364
zypper rm rubygem-mysql2
365
zypper in rubygem-mysql2
366
gem install bundler
367
gem install activerecord-mysql2-adapter
368
bundle install --without development test
369
</code></pre>
370
371
Mise à jour (base de donnés, « plugins ») et ménage :
372
<pre><code class="bash">
373
rake db:migrate RAILS_ENV=production
374
rake redmine:plugins:migrate RAILS_ENV=production
375
rake tmp:cache:clear
376
rake tmp:sessions:clear
377
rcredmine restart
378
</code></pre>
379
380 14 Patrice Nadeau
h1. Copie de sécurité
381 5 Patrice Nadeau
382 40 Patrice Nadeau
Remplacer les items suivants :
383
* *username* : Usager de la base de donnés.
384
* *password* : Mot de passe de la base de donnés.
385
* *database* : Nom de la base de données.
386
* *path* : Emplacement pour recevoir le fichier.
387
388
<pre><code class="bash">
389
/usr/bin/mysqldump -u username -p password database | gzip > /path/redmine_`date +%y_%m_%d`.gz
390
rsync -a /srv/redmine/files /path/
391
</code></pre>
392
393
Script un peu plus evolué :
394 5 Patrice Nadeau
<pre> <code class="bash">
395 42 Patrice Nadeau
396 5 Patrice Nadeau
#!/bin/bash
397
#
398
# backup_redmine.sh
399
# Backup of a Redmine setup
400 1 Patrice Nadeau
# Last Changes: 2013-02-23
401 40 Patrice Nadeau
# Maintainer: Patrice Nadeau  <pnadeau@patricenadeau.com>
402 5 Patrice Nadeau
403
# TODO Verify the results (folder exist, enough disk pace , etc..)
404
405
## The only variable needed to be changed
406
# Directory of the Redmine install
407
declare -r RAIL_ROOT='/srv/redmine'
408
# MySQL database
409
declare -r MYSQL_DB=''
410
# MySQL username for the Redemine db
411
declare -r MYSQL_USER=''
412
# MySQL password for the Redemine db
413
declare -r MYSQL_PASSWORD=''
414
# Directory for the backup (must exist and with no space in the name)
415
declare -r DIR='/root'
416
## end
417
418
# Exit level
419
declare -ir EXIT_OK=0
420
declare -ir EXIT_WARNING=1
421
declare -ir EXIT_ERROR=2
422
423
declare -i STATUS=$EXIT_OK
424
425
# The directory inside the archive 
426
declare -r REDMINE='redmine'
427
TMP_DIR=$DIR/$REDMINE
428
429
# This will be used for the archive file 
430
declare -r DST=$DIR/redmine_$(date +%Y%m%d_%H%M%S).tar.gz
431
432
# The temporary sql file
433
declare -r TMP_MYSQL=$TMP_DIR/$MYSQL_DB.mysql
434
435
echo "Backup in progress in $DST"
436
437
#### Create the temp directory ####
438
mkdir $TMP_DIR
439
440
#### backup MySQL ####
441
if [ $STATUS -eq $EXIT_OK ] 
442
then
443
	STEP='Creating MySQL backup'
444
	mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD $MYSQL_DB \
445
		> $TMP_MYSQL
446
	STATUS=$?
447
fi
448
449
#### backup the Redmine folder ####
450
if [ $STATUS -eq $EXIT_OK ] 
451
then
452
	STEP='Creating Redmine'"'"' files backup'
453
	cp --recursive $RAIL_ROOT $TMP_DIR
454
	STATUS=$?
455
fi
456
457
#### create the archive file ####
458
if [ $STATUS -eq $EXIT_OK ] 
459
then
460
	STEP="Creating archive"
461
	tar --create --gzip --file $DST --directory=$DIR $REDMINE
462
	STATUS=$?
463
fi
464
465
#### cleanup ####
466
if [ $STATUS -eq $EXIT_OK ] 
467
then
468
	STEP='Cleaning up'
469
	rm --recursive --force $TMP_DIR
470
	STATUS=$?
471
fi
472
473
#### exit ####
474
if [ $STATUS -eq $EXIT_OK ] 
475
then
476
	echo "Backup done"
477
else
478
	echo "Bakup failed with error code $STATUS in step $STEP"
479
fi
480
481
482
exit $STATUS
483
484
</code></pre>
485 39 Patrice Nadeau
486
h1. Dépannage
487
488
h2. Mot de passe perdu
489
490
Le mot de passe admin par défaut est en _hash Sha1_ : *da3174755c5e82a436b6c7ff87c873ee50d6654b* et est *admin.*
491
492
h2. Le service tombe « DEAD » a chaque fois
493
494
Effacer le fichier _/srv/redmine/tmp/pids/server.pid_.