Gestion de Projet · 3 min read · Jan 23, 2026
Exécution de la gestion de projet Redmine sur nginx (Debian Wheezy)
Exécution de la gestion de projet Redmine sur nginx (Debian Wheezy)
Redmine est un outil de gestion de projet écrit en Ruby. Ce tutoriel explique comment servir Redmine avec l’aide de thin (un serveur web Ruby rapide) via un serveur web nginx sur Debian Wheezy.
Je ne donne aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
J’ai préparé un site web www.example.com avec le répertoire racine /var/www/example.com/web (Redmine sera installé là) qui est possédé par l’utilisateur web1 et le groupe client0.
J’ai également préparé une base de données MySQL pour Redmine avec le nom c0db1. Le nom d’utilisateur est également c0db1, le mot de passe est FyZ5z4QGfhTf8.
2 Installation de Redmine
Tout d’abord, nous installons quelques prérequis :
apt-get install thin ruby rake rubygems libopenssl-ruby libmysql-ruby librmagick-ruby ruby-dev libmysqlclient-dev libmagick-dev curlgem install sass
gem install compassTéléchargez la dernière version de Redmine et copiez-la dans notre répertoire racine /var/www/example.com/web :
cd /tmp
wget http://www.redmine.org/releases/redmine-2.4.2.tar.gz
tar xvfz redmine-2.4.2.tar.gz
mv redmine-2.4.2/* /var/www/example.com/web
cd /var/www/example.com/web
chown -R web1:client0 *Remplissez les détails de connexion pour notre base de données MySQL :
cp config/database.yml.example config/database.yml
vi config/database.yml[...]
production:
adapter: mysql2
database: c0db1
host: localhost
username: c0db1
password: "FyZ5z4QGfhTf8"
encoding: utf8
[...] Installez d’autres paquets nécessaires et remplissez la base de données :
apt-get install libmagickwand-devgem install rmagickgem install bundlerbundle install --without development test postgresql sqliterake generate_secret_tokenrake db:migrate RAILS_ENV="production"rake redmine:load_default_data RAILS_ENV="production"3 Configuration de thin
Ensuite, nous configurons thin, notre serveur web Ruby auquel nginx va faire des requêtes.
ln -s /etc/thin1.9.1 /etc/thinmkdir /var/log/thin
chmod 755 /var/log/thin
cd /etc/thinCréez un fichier de configuration thin qui est nommé comme le propriétaire du répertoire racine (web1) :
vi web1.ymlAssurez-vous d’utiliser le bon utilisateur (web1) dans les lignes log, pid, socket et user ainsi que le bon groupe (client0) dans la ligne group. Utilisez le bon répertoire racine dans la ligne chdir :
---
chdir: /var/www/example.com/web
environment: production
timeout: 30
log: /var/log/thin/web1.log
pid: /var/run/thin/web1.pid
max_conns: 1024
max_persistent_conns: 512
require: []
wait: 30
socket: /var/run/thin/web1.sock
daemonize: true
user: web1
group: client0
servers: 1
prefix: /Créez le répertoire /var/run/thin (où thin créera son socket) :
mkdir /var/run/thin
chown -R web1:client0 /var/run/thinPour s’assurer que le répertoire existe lorsque thin est démarré, nous ajoutons la ligne test -e /var/run/thin || install -m 755 -o web1 -g client0 -d /var/run/thin au script d’initialisation /etc/init.d/thin (juste après la ligne SCRIPT_NAME) :
vi /etc/init.d/thin[...]
DAEMON=/usr/bin/thin
SCRIPT_NAME=/etc/init.d/thin
test -e /var/run/thin || install -m 755 -o web1 -g client0 -d /var/run/thin
[...] Maintenant, démarrez thin…
/etc/init.d/thin start… et notez le socket qu’il crée (/var/run/thin/web1.0.sock dans ce cas) - nous en aurons besoin dans la configuration nginx :
root@server1:/etc/thin# /etc/init.d/thin start
[start] /etc/thin1.9.1/web1.yml ...
Démarrage du serveur sur /var/run/thin/web1.0.sock ...
root@server1:/etc/thin#Si vous utilisez Monit, vous pouvez ajouter les lignes suivantes à /etc/monit/monitrc pour vous assurer que thin fonctionne toujours :
vi /etc/monit/monitrc[...]
check process thin with pidfile /var/run/thin/web1.0.pid
start program = "/etc/init.d/thin start"
stop program = "/etc/init.d/thin stop"
[...] Redémarrez Monit ensuite :
/etc/init.d/monit restart4 Configuration de nginx
Ensuite, nous devons configurer notre vhost nginx par lequel nous voulons accéder à Redmine. Vous devez coller la configuration suivante dans votre conteneur server {} (ou le champ Directives nginx si vous utilisez ISPConfig) - assurez-vous d’utiliser le bon socket thin :
client_max_body_size 100M;
location / {
proxy_set_header X-Reak-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://unix:/var/run/thin/web1.0.sock;
break;
}
}
C’est tout ! Maintenant, visitez votre site web, et vous devriez pouvoir utiliser Redmine. Le nom d’utilisateur par défaut est admin, le mot de passe est également admin.


4 Liens
- Redmine: http://www.redmine.org/
- nginx: http://nginx.org/
- Debian: http://www.debian.org/
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.