Projet

Général

Profil

Wiki » Historique » Version 61

Patrice Nadeau, 2014-10-11 10:37

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