Projet

Général

Profil

Wiki » Historique » Version 66

Patrice Nadeau, 2014-10-11 10:53

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 64 Patrice Nadeau
Créer le fichier _/etc/apache2/conf.d/passenger.conf_ et ajouter la configuration inscrite par l'installation.
174 61 Patrice Nadeau
175 45 Patrice Nadeau
Ajouter dans _/etc/apache2/vhosts.d/vhost.conf_
176
<pre><code class="bash">
177
<VirtualHost *:80>
178
    ServerName redmine.yourdomain.com
179
    DocumentRoot /srv/redmine/public
180
181
    RailsEnv production
182
    RailsBaseURI /redmine
183
184
    <Directory "/srv/redmine/public">
185
        Options Indexes ExecCGI FollowSymLinks
186 1 Patrice Nadeau
        AllowOverride None
187
        Order deny,allow
188
        Allow from all
189
    </Directory>
190
</VirtualHost>
191 65 Patrice Nadeau
</code></pre>
192
193
Relancer Apache :
194
<pre><code class="bash">
195
systemctl reload apache2
196 45 Patrice Nadeau
</code></pre>
197
198
Vérifier la configuration
199
> Plugin assets directory writable
200
201 66 Patrice Nadeau
Fermer le port de webrick dans le parefeu
202
<pre><code class="bash">
203
yast firewall services remove tcpport=3000 zone=EXT
204
</code></pre>
205
206 29 Patrice Nadeau
h1. Personnalisation
207 8 Patrice Nadeau
208 36 Patrice Nadeau
h2. Ajout d’un logo
209
210
Les informations viennent de : http://www.redmine.org/projects/redmine/wiki/Howto_add_a_logo_to_your_Redmine_banner
211
212
Copier le logo dans _/srv/redmine/public/images/logo.png_
213 1 Patrice Nadeau
214 37 Patrice Nadeau
Modifier le fichier _/srv/redmine/app/views/layout/base.rhtml.erb_
215
* Ajouter la ligne 
216 1 Patrice Nadeau
<pre><code class="ruby">
217 37 Patrice Nadeau
<img src="<%= Redmine::Utils.relative_url_root %>/images/logo.png" style="top-margin: 15px; left-margin: 15px;"/>
218
</code></pre>
219
* Si on ne veux plus afficher le titre, mettre en commentaire :
220
<pre><code class="ruby">
221 1 Patrice Nadeau
<!--<h1><%= page_header_title %></h1>-->
222 37 Patrice Nadeau
</code></pre>
223
224
Redémarrer Redmine
225
<pre><code class="bash">
226
rcredmine restart
227 36 Patrice Nadeau
</code></pre>
228
229 1 Patrice Nadeau
h2. Plugins
230
231 38 Patrice Nadeau
h3. Extended Fields
232
233
Permet de créer de nouveau champ dans la basse de donnés.
234
235
http://www.redmine.org/plugins/extended_fields
236
237
Installation : 
238
<pre><code class="bash">
239
cd /srv/redmine
240
svn co http://svn.s-andy.com/extended-fields plugins/extended_fields
241
rake redmine:plugins:migrate RAILS_ENV=production
242
rcredmine restart
243
</code></pre>
244
245 4 Patrice Nadeau
h3. Redmine Rouge
246 12 Patrice Nadeau
247 1 Patrice Nadeau
Permet le support de langage supplémentaire pour l'affichage de la syntaxe d'un code source.
248 4 Patrice Nadeau
249 13 Patrice Nadeau
"Langage supporté":http://rouge.jayferd.us/demo
250 1 Patrice Nadeau
251
https://github.com/ngyuki/redmine_rouge
252
253
<pre>
254
<code class="bash">
255
cd /srv/redmine/plugins
256
git clone https://github.com/ngyuki/redmine_rouge.git
257
cd ..
258
bundle install
259 2 Patrice Nadeau
# Relancer redmine
260
rcredmine restart
261 1 Patrice Nadeau
</code>
262
</pre>
263 5 Patrice Nadeau
264 22 Patrice Nadeau
h3. Code Highlight
265 9 Patrice Nadeau
266 10 Patrice Nadeau
http://www.redmine.org/plugins/codehightlight_button
267 9 Patrice Nadeau
268
Bouton permettant de sélectionner du code et d'activer la syntaxe selon un langage.
269 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
270 9 Patrice Nadeau
271 1 Patrice Nadeau
Installation
272
<pre><code class="bash">
273 10 Patrice Nadeau
cd /srv/redmine/plugins
274
git clone https://github.com/mediatainment/redmine_codebutton.git
275
cd ..
276
rake redmine:plugins
277 9 Patrice Nadeau
rake redmine:plugins:migrate RAILS_ENV=production
278 10 Patrice Nadeau
# Relancer Redmine
279 1 Patrice Nadeau
rcredmine restart
280
</code></pre>
281 11 Patrice Nadeau
282 23 Patrice Nadeau
h3. Redmine Issue Checklist
283 11 Patrice Nadeau
284
Extends issues to store checklist items
285
286
http://redminecrm.com/projects/checklist
287
288
Installation
289
<pre><code class="bash">
290
cd /srv/redmine/plugins
291
wget http://redminecrm.com/license_manager/4200/redmine_issue_checklist-2_0_5.zip
292
unzip redmine_issue_checklist-2_0_5.zip
293
bundle exec rake redmine:plugins NAME=redmine_issue_checklist RAILS_ENV=production
294
# Relancer Redmine
295
rcredmine restart
296
</code></pre>
297
298
Configuration
299
Dans *Administration*
300
* *Plugins*
301
** Choisir les options voulues
302
* *Roles and permissions*
303
** Choisir le rôle
304
Donner les droits voulus sur :
305
*** Done checklist items 
306
*** Edit checklist items 
307 14 Patrice Nadeau
*** View checklist
308 1 Patrice Nadeau
309 24 Patrice Nadeau
h3. Redmine People
310
311 29 Patrice Nadeau
> A faire
312 24 Patrice Nadeau
313 20 Patrice Nadeau
h3. WikiNG
314 1 Patrice Nadeau
315 20 Patrice Nadeau
Personnalisation des items dans le wiki.
316 28 Patrice Nadeau
Ajoute des boutons et des icônes comme FIXME et TODO.
317 29 Patrice Nadeau
> « Écrase » le bouton installé par _Code Highlight_
318 21 Patrice Nadeau
319
Installation
320 27 Patrice Nadeau
<pre><code class="bash">
321 26 Patrice Nadeau
cd /srv/redmine
322
wget http://projects.andriylesyuk.com/attachments/download/564/wiking-1.0.0b.tar.bz2
323
tar xvf wiking-1.0.0b.tar.bz2
324
mv wiking plugins
325
rake redmine:plugins:migrate RAILS_ENV=production
326
# restart Redmine
327
rcredmine restart
328
</code></pre>
329 20 Patrice Nadeau
330 14 Patrice Nadeau
h1. Mise à jour
331 1 Patrice Nadeau
332 14 Patrice Nadeau
S’assurer d'avoir les dernières versions des plugins.
333 9 Patrice Nadeau
334 41 Patrice Nadeau
Disponible a http://www.redmine.org/projects/redmine/wiki/Download 
335
336
Mise à jour de Redmine à partir de SVN (dernière version)
337
338
Vérifier la version pointée par SVN
339
<pre><code class="bash">
340
svn info
341
</code></pre>
342
343
Si ne pointe pas sur la bonne, faire le changement :
344
<pre><code class="bash">
345
svn switch http://svn.redmine.org/redmine/branches/2.4-stable
346
</code></pre>
347
348
Faire la mise à jour :
349
<pre><code class="bash">
350
svn update
351
</code></pre>
352
353
Installation des «gem» de Ruby.
354
>Vérifier la version de _rubygem-mysql2_ et modifier le fichier *Gemfile* pour la même version.
355
356
<pre><code class="bash">
357
cd /srv/redmine
358
rm -r /usr/lib64/ruby/gems/*
359
zypper rm rubygem-mysql2
360
zypper in rubygem-mysql2
361
gem install bundler
362
gem install activerecord-mysql2-adapter
363
bundle install --without development test
364
</code></pre>
365
366
Mise à jour (base de donnés, « plugins ») et ménage :
367
<pre><code class="bash">
368
rake db:migrate RAILS_ENV=production
369
rake redmine:plugins:migrate RAILS_ENV=production
370
rake tmp:cache:clear
371
rake tmp:sessions:clear
372
rcredmine restart
373
</code></pre>
374
375 14 Patrice Nadeau
h1. Copie de sécurité
376 5 Patrice Nadeau
377 40 Patrice Nadeau
Remplacer les items suivants :
378
* *username* : Usager de la base de donnés.
379
* *password* : Mot de passe de la base de donnés.
380
* *database* : Nom de la base de données.
381
* *path* : Emplacement pour recevoir le fichier.
382
383
<pre><code class="bash">
384
/usr/bin/mysqldump -u username -p password database | gzip > /path/redmine_`date +%y_%m_%d`.gz
385
rsync -a /srv/redmine/files /path/
386
</code></pre>
387
388
Script un peu plus evolué :
389 5 Patrice Nadeau
<pre> <code class="bash">
390 42 Patrice Nadeau
391 5 Patrice Nadeau
#!/bin/bash
392
#
393
# backup_redmine.sh
394
# Backup of a Redmine setup
395 1 Patrice Nadeau
# Last Changes: 2013-02-23
396 40 Patrice Nadeau
# Maintainer: Patrice Nadeau  <pnadeau@patricenadeau.com>
397 5 Patrice Nadeau
398
# TODO Verify the results (folder exist, enough disk pace , etc..)
399
400
## The only variable needed to be changed
401
# Directory of the Redmine install
402
declare -r RAIL_ROOT='/srv/redmine'
403
# MySQL database
404
declare -r MYSQL_DB=''
405
# MySQL username for the Redemine db
406
declare -r MYSQL_USER=''
407
# MySQL password for the Redemine db
408
declare -r MYSQL_PASSWORD=''
409
# Directory for the backup (must exist and with no space in the name)
410
declare -r DIR='/root'
411
## end
412
413
# Exit level
414
declare -ir EXIT_OK=0
415
declare -ir EXIT_WARNING=1
416
declare -ir EXIT_ERROR=2
417
418
declare -i STATUS=$EXIT_OK
419
420
# The directory inside the archive 
421
declare -r REDMINE='redmine'
422
TMP_DIR=$DIR/$REDMINE
423
424
# This will be used for the archive file 
425
declare -r DST=$DIR/redmine_$(date +%Y%m%d_%H%M%S).tar.gz
426
427
# The temporary sql file
428
declare -r TMP_MYSQL=$TMP_DIR/$MYSQL_DB.mysql
429
430
echo "Backup in progress in $DST"
431
432
#### Create the temp directory ####
433
mkdir $TMP_DIR
434
435
#### backup MySQL ####
436
if [ $STATUS -eq $EXIT_OK ] 
437
then
438
	STEP='Creating MySQL backup'
439
	mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD $MYSQL_DB \
440
		> $TMP_MYSQL
441
	STATUS=$?
442
fi
443
444
#### backup the Redmine folder ####
445
if [ $STATUS -eq $EXIT_OK ] 
446
then
447
	STEP='Creating Redmine'"'"' files backup'
448
	cp --recursive $RAIL_ROOT $TMP_DIR
449
	STATUS=$?
450
fi
451
452
#### create the archive file ####
453
if [ $STATUS -eq $EXIT_OK ] 
454
then
455
	STEP="Creating archive"
456
	tar --create --gzip --file $DST --directory=$DIR $REDMINE
457
	STATUS=$?
458
fi
459
460
#### cleanup ####
461
if [ $STATUS -eq $EXIT_OK ] 
462
then
463
	STEP='Cleaning up'
464
	rm --recursive --force $TMP_DIR
465
	STATUS=$?
466
fi
467
468
#### exit ####
469
if [ $STATUS -eq $EXIT_OK ] 
470
then
471
	echo "Backup done"
472
else
473
	echo "Bakup failed with error code $STATUS in step $STEP"
474
fi
475
476
477
exit $STATUS
478
479
</code></pre>
480 39 Patrice Nadeau
481
h1. Dépannage
482
483
h2. Mot de passe perdu
484
485
Le mot de passe admin par défaut est en _hash Sha1_ : *da3174755c5e82a436b6c7ff87c873ee50d6654b* et est *admin.*
486
487
h2. Le service tombe « DEAD » a chaque fois
488
489
Effacer le fichier _/srv/redmine/tmp/pids/server.pid_.