Project

General

Profile

HowTo run Redmine with a Mongrel cluster » History » Version 3

XDjuj Apsulis, 2009-07-20 19:13

1 1 Craig Truzzi
h1. HowTo run Redmine with a Mongrel cluster
2 2 XDjuj Apsulis
3
(Debian & French Version, Translation as soon as possible :) )
4
5
<pre>
6
###
7
# UTILISER MONGREL ET AUTOMATISER LE LANCEMENT DE REDMINE
8
###
9
10
*# Nous supposons que notre dossier Redmine est présent à l'adresse /home/svn/redmine/ et qu'il appartient à l'utilisateur USER*
11
# On installe Mongrel et son gestionnaire de cluster
12
# Je pense que gem n'est pas nécessaire mais au cas ou, pour log : gem install gem_plugin mongrel mongrel_cluster
13
apt-get install mongrel mongrel-cluster
14
15
# Créons le fichier de configuration pour Redmine
16
# -e production indique que le serveur doit tourner en mode production
17
# -p 8000 lance Mongrel sur le port 8000
18
# -N 3 indique qu'il y aura 3 instances du serveur
19
# -c /home/... le chemin vers la racine de redmine
20
# -C /home/... le chemin vers où le fichier de configuration va être créé
21
# -a dit à Mongrel d'écouter le localhost     
22
mongrel_rails cluster::configure -e production -p 8000 -N 3 -c /home/svn/redmine -C /home/svn/redmine/config/mongrel_cluster.yml -a 127.0.0.1 --user USER --group www-data
23
24
# On fait un lien de ce fichier de conf pour mongrel
25
ln -s /home/svn/redmine/config/mongrel_cluster.yml /etc/mongrel-cluster/sites-enabled/redmine.yml
26
27
# On configure maintenant le script de lancement mongrel-cluster qui doit se trouver dans /etc/init.d/
28
CONF_DIR=/etc/mongrel-cluster/sites-enabled
29
PID_DIR=/home/svn/redmine/tmp/pids
30
USER=UTILISATEUR_DE_VOTRE_CHOIX
31
GROUP=www-data
32
33
# On vérifie les droits sur le fichier
34
chmod +x /etc/init.d/mongrel-cluster
35
36
# On vérifie que le script est bien lancé au démarrage, c'est normalement le cas :
37
ls /etc/rc0.d/ | grep mongrel
38
K20mongrel-cluster
39
40
# Sinon on l'ajoute à l'aide de updaterc.d => http://pwet.fr/man/linux/administration_systeme/update_rc_d
41
update-rc.d -f mongrel-cluster defaults
42
43
# On peut maintenant contrôler le serveur :
44
/etc/init.d/mongrel-cluster start
45
/etc/init.d/mongrel-cluster restart
46
/etc/init.d/mongrel-cluster stop
47
48
# On teste que tout fonctionne 
49
/etc/init.d/mongrel-cluster start
50
w3m http://127.0.0.1:8000
51
q
52
/etc/init.d/mongrel-cluster stop
53
w3m http://127.0.0.1:8000
54
q
55
56
# On configure Apache afin de rediriger les requetes vers le cluster mongrel
57
# On active les modules necessaires 
58
a2enmod rewrite
59
a2enmod proxy_http
60
a2enmod proxy_balancer 
61
62
# On complète le vhost SVN ou on créé un vhost redmine comme suit on peut peut etre faire mieux comme 
63
# http://www.paolocorti.net/2007/11/08/ruby-on-rails-applications-with-mongrel-clusters-and-apache-on-ubuntu/
64
65
###########
66
# REDMINE #
67
###########
68
69
<VirtualHost *:80>
70
	ServerAdmin webmaster@domaine.com
71
	ServerName redmine.domaine.fr
72
	DocumentRoot /home/svn/redmine/public/
73
74
	<Directory /home/svn/redmine/public/>
75
		Options Indexes FollowSymLinks MultiViews
76
		AllowOverride All
77
		Order allow,deny
78
		allow from all
79
	</Directory>
80
81
	# On active les proxy qui sont par défaut désactivés
82
	<Proxy *>
83
		Order allow,deny
84
		Allow from all
85
	</Proxy>
86
	<Proxy balancer://mongrel_cluster>
87
		BalancerMember http://127.0.0.1:8000
88
		BalancerMember http://127.0.0.1:8001
89
		BalancerMember http://127.0.0.1:8002
90
	</Proxy>
91
92
	RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} -f
93
	RewriteRule (.*) $1 [L]
94
95
	ProxyPass / Balancer://mongrel_cluster/
96
	ProxyPassReverse / balancer://mongrel_cluster/
97
98
	AddOutputFilter DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css
99
	BrowserMatch ^Mozilla/4 gzip-only-text/html
100
	BrowserMatch ^Mozilla/4.0[678] no-gzip
101
	BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
102
103
	ErrorLog /home/svn/redmine/logs/apache2/redmine.error.log
104
	LogLevel warn
105
	CustomLog /home/svn/redmine/logs/apache2/redmine.access.log combined
106
	ServerSignature Off
107
</VirtualHost>
108
109
# Ne pas oublier de créer un dossier /logs/apache2 (ici dans le repertoire redmine)   
110
mkdir -p /home/svn/redmine/logs/apache2
111
112
a2ensite redmine
113
apache2ctl graceful 
114
/etc/init.d/mongrel-cluster start
115
116
# Il ne reste normalement plus qu'à se logguer (admin/admin) et à configurer la bête !
117
118 3 XDjuj Apsulis
####################################
119
# CONFIGURATION DES MAILS SORTANTS #
120
####################################
121 1 Craig Truzzi
122 3 XDjuj Apsulis
# Redmine offre la possibilité d'adresser des notifications sur certains événements (configurables pour chaque projet)
123
# Pour ce faire, il convient de configurer le fichier redmine/config/email.yml
124
cd /home/svn/redmine/config
125
cp email.yml.example email.yml
126
pico email.yml
127
production:
128
  delivery_method: :smtp
129
  smtp_settings:
130
    address: localhost
131
    port: 25
132
    domain: domaine.com
133
134
sudo /etc/init.d/mongrel-cluster restart
135
136
#
137
# CADEAU BONUX
138
#
139
# On peut également souhaiter bénéficier des services Google afin de gérer l'envoi des mails :
140 2 XDjuj Apsulis
cd /home/svn/redmine/
141 1 Craig Truzzi
apt-get install git
142
ruby script/plugin install git://github.com/collectiveidea/action_mailer_optional_tls.git
143
144 2 XDjuj Apsulis
# Editer le fichier config/email.yml
145 3 XDjuj Apsulis
cd /home/svn/redmine/config
146
cp email.yml.example email.yml
147
pico email.yml
148 2 XDjuj Apsulis
production:
149
  delivery_method: :smtp
150
  smtp_settings:
151
    tls: true
152
    address: "smtp.gmail.com"
153
    port: '587'
154
    domain: "smtp.gmail.com"
155
    authentication: :plain
156
    user_name: "votreadresse@gmail.com"
157
    password: "votremotdepasse"
158
</pre>