Projet

Général

Profil

Wiki » Historique » Version 60

Patrice Nadeau, 2014-10-11 10:13

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