Projet

Général

Profil

Wiki » Historique » Version 45

Patrice Nadeau, 2014-10-05 11:31

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