Silverlake - Le blog de ADIMCOR

Aller au contenu | Aller au menu | Aller à la recherche

jeudi, août 2 2012

Apache et fichier favicon.ico

En regardant le fichier des erreurs Apache, le message suivant apparait souvent :

File does not exist: /var/www/favicon.ico

Il existe deux solutions

  • soit créer avec un logiciel de dessin ce fichier,
  • soit ne pas tracer l'erreur.

Ce billet présente cette seconde solution.

Ajouter dans chaque définition de VirtualHost les lignes suivantes :

Redirect 404 /favicon.ico
<Location /favicon.ico>
 ErrorDocument 404 "No favicon"
</Location>

Pour appliquer ce principe à tous les sites hébergés et ne pas modifier chaque VirtualHost, créer sous /etc/apache2/conf.d/ un fichier nommé nofavicon.conf et contenant les lignes ci-dessus.

Ne pas oublier de recharger la configuration de Apache pour prise en compte.

dimanche, juin 10 2012

Erreur de connexion Zimbra

Un billet rapide sur un petit tracas d'un dimanche matin. Connexion au serveur Zimbra via le webmail impossible. Le fait de redémarrer le serveur zimbra par la commande zmcontrol stop et zmcontrol start donne ce message d'erreur :

Zimbra error - Unable to determine enabled services from ldap

Ceci est du à l'expiration des certificats SSL. Le remède est simple, il suffit de les régénérer.

En étant connecté root sur le serveur :

/opt/zimbra/bin/zmcertmgr createca -new
/opt/zimbra/bin/zmcertmgr createcrt -new -days 3650
/opt/zimbra/bin/zmcertmgr deploycrt self
/opt/zimbra/bin/zmcertmgr deployca
su - zimbra
/opt/zimbra/bin/zmcontrol restart

Source de ce billet via ce lien

samedi, mai 12 2012

Apache Centos/RedHat mpm worker ou prefork

Installer apache sous centOS ne pose aucun problème

yum install httpd

Par défaut apache est installé avec le mpm prefork, comme le montre la commande suivante :

apachectl -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

Pour utiliser worker en lieu et place de prefork, éditer le fichier /etc/sysconfig/httpd et decommenter la ligne suivante :

HTTPD=/usr/sbin/httpd.worker

Controler le chargement correct du mpm worker

apachectl -l
Compiled in modules:
  core.c
  worker.c
  http_core.c
  mod_so.c

Rappel, certes worker est plus "tendance" car il gère le multi-threads, mais attention il n'est pas utilisable avec PHP sauf via le module fastcgi, mais ce sera un autre billet...

jeudi, mai 10 2012

Putty, clavier numérique sous vi et UTF8

Introduction

Sous Windows pour se connecter en ssh putty est un incontournable. Il y a toutefois un petit dysfonctionnement dans la configuration par défaut lors de l'utilisation de vi ou de vim. : Le pavé numérique ne fonctionne pas correctement

Ce billet étant court, j'expose aussi comment configurer Putty pour afficher correctement en UTF8.

Pavé numérique

La solution est simple, il suffit dans le menu Terminal -> Features de cocher la case "Disable application keypad mode" config_putty01.PNG

Codage UTF8

Pour celà dans le menu Windows -> Translation, dérouler la combo "Remote character set" et choisir UTF-8. config_putty02.PNG

Sélectionner ensuite la session Default Setting puis save afin que pour toute nouvelle session ces paramètres soient appliqués.

mardi, mai 8 2012

Compilation Apache 2.4.x

Introduction

Il existe déjà un billet sur la compilation du serveur web apache, mais il concerne la branche 2.2.x. La branche actuelle, 2.4.x ne fonctionne pas selon le même principe, car les fonctionnalités APR ( Apache Portable Runtime ) ont été sorties du code source de httpd.
Il en est de même pour PCRE ( Perl Compatible Regular Expressions ).

Ce billet et conçu pour Debian Squeeze. Il suppose installé les outils de compilation ( aptitude install build-essential ).

Chargement des sources

Au moment de la rédaction de ce billet, les versions stables sont :

  • httpd 2.4.2,
  • apr 1.4.6
  • apr-util 1.4.1

Télécharger ces sources par wget

wget http://mirror.ibcp.fr/pub/apache//httpd/httpd-2.4.2.tar.gz
wget http://apache.cict.fr//apr/apr-1.4.6.tar.gz
wget http://apache.cict.fr//apr/apr-util-1.4.1.tar.gz

Il faut aussi installer les librairies PCRE

aptitude install libpcre3-dev

Décompresser les sources

tar -xvzf /home/httpd-2.4.2.tar.gz
cd httpd-2.4.2/srclib
tar -xvzf /home/apr-1.4.6.tar.gz
mv apr-1.4.6 apr
tar -xvzf /home/apr-util-1.4.1.tar.gz
mv apr-util-1.4.1 apr-util

Lancer ensuite la compilation de manière "classique". Dans l'exemple le mpm utilisé est worker.

./configure --enable-so --enable-mods-shared="all" --prefix=/usr/local/apache2 --with-mpm=worker
make
make install

La suite de la configuration est identique au billet précédent. Un bémol toutefois, il faut dans la configuration charger un module de plus : mod_unixd sinon il y aura au démarrage l'erreur suivante : Invalid command 'User', perhaps misspelled or defined by a module not included in the server configuration.
Ci dessous un exemple de fichier httpd.conf compatible 2.4.x

ServerRoot /usr/local/apache2

User apache
Group apache

DocumentRoot /var/www/html
Listen 80

LoadModule mime_module modules/mod_mime.so
LoadModule unixd_module modules/mod_unixd.so
TypesConfig conf/mime.types

LoadModule dir_module modules/mod_dir.so
DirectoryIndex index.html

ErrorLog /var/log/apache2/error.log
LogLevel warn

vendredi, février 24 2012

Ré-initialiser le tableau de bord sous Ubuntu

Un petit truc utile sous Ubuntu, il arrive que des manipulations aléatoires modifient le tableau de bord. Afin de retrouver la configuration d'origine, il suffit de supprimer les fichiers suivants :

  • ~/.gconf/apps/panel
  • ~/.gnome2/panel2.d

Se déconnecter et se reconnecter au système, la configuration d'origine est rétablie.

Billet tiré sur une page plus complète, via le lien suivant

samedi, décembre 3 2011

Retirer un mot en surbrillance dans VIM

Lors d'une recherche avec vim, le dernier mot recherché reste en surbrillance, comme dans l'exemple suivant où la recherche portait sur le mot RED

surbril-vim2.png

Pour retirer ceci, passer en mode commande et entrer la ligne suivante :

:set nohlsearch

La commande inverse est :

:set hlsearch

mardi, octobre 4 2011

Mise à l'heure d'un serveur

Le protocole NTP est utilisé pour cela et permet de synchroniser un serveur via l'Internet.

La mise en place est simple.

Sous Debian

aptitude install ntpdate
ntpdate-debian

Sous Centos

yum install ntp
ntpdate fr.pool.ntp.org

vendredi, juillet 22 2011

Interface web de Nagios et caractères accentués

En version française, il y a parfois un soucis avec l'affichage des caractères accentués dans l'interface web de Nagios. Voici la méthode pour résoudre ce soucis sur une Debian Squeeze avec une configuration des locales en UTF8.

On suppose que nagios est correctement installé. Dans un premier temps éditer le fichier de configuration cgi.cfg. ( /usr/local/nagios/etc/cgi.cfg si installation via le code source )

Rechercher la ligne "escape_html_tags" et passer la valeur de 1 à 0.

Vérifier également le fichier /etc/apache2/conf.d/charset afin que la ligne AddDefaultCharset UTF-8 soit bien décommentée.

Relancer alors apache et nagios

L'affichage devrait être correct.

samedi, juin 18 2011

Compilation d'un serveur Apache 2

Compiler un serveur apache n'est pas très compliqué, il suffit de charger les sources et d'utiliser le triptyque :

./configure
make
make install

Ce mode fonctionnement ne permet pas forcement une configuration optimale du binaire et des modules. Ce billet présente donc une méthode pour compiler un binaire minimal avec le chargement possible des modules.

Commencer par télécharger les sources de la dernière version ( 2.2.19 lors de la rédaction ). Pour une version de la branche 2.4.x voir le billet dédié et écrit postérieurement Compilation apache 2.4.x

cd /home
wget http://mirror.mkhelif.fr/apache//httpd/httpd-2.2.19.tar.gz
tar -xvzf httpd-2.2.19.tar.gz
cd httpd-2.2.19

Les outils de compilation doivent être présents sur la machine.

Sur Centos/RedHat si une installation minimale a été faite, il faut installer le groupe Outils de Développement et aussi le package zlib-devel ( sinon il y aura une erreur lors du configure sur le module deflate :configure: error: mod_deflate )

yum groupinstall "Outils de développement"
yum install zlib-devel

Sous Debian il faut installer le package build-essential

aptitude install build-essential

Puis lancer la compilation de apache ainsi :

./configure --enable-so --enable-mods-shared="all" --prefix=/usr/local/apache2 --with-mpm=prefork ( ou --with-mpm=worker, selon votre choix )
make
make install

L'ensemble est donc installé sous /usr/local/apache2, se positionner sous bin de ce répertoire et vérifier que le bianire ne contient que le minimum.

cd /usr/local/apache2/bin
./apachectl -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

Les modules sont dans le répertoire /usr/local/apache2/modules. Pour tester il suffit de lancer le binaire du serveur

/usr/local/apache2/bin/apachectl -k start

L'arrêt de fait avec la commande suivante :

/usr/local/apache2/bin/apachectl -k stop

Fichier de configuration

Dans cet exemple nous allons mettre en place un fichier de configuration minimal. Les process apache sont lancés par un utilisateur nommé daemon par défaut, nous allons créer un user apache dédié à cela.

adduser -s /sbin/nologin apache

Puis editer le fichier /usr/local/apache2/conf/httpd.conf et y mettre uniquement les lignes suivantes :

ServerRoot /usr/local/apache2

User apache
Group apache

DocumentRoot /var/www/html
Listen 80

LoadModule mime_module modules/mod_mime.so
TypesConfig conf/mime.types

LoadModule dir_module modules/mod_dir.so
DirectoryIndex index.html

ErrorLog /var/log/apache2/error.log
LogLevel warn

Penser à créer les répertoires /var/www/html et /var/log/apache2.

mkdir -p /var/www/html
mkdir -p /var/log/apache2
chown -R apache:apache /var/log/apache2

Sous Centos penser aussi à invalider le parefeu sinon il sera impossible de se connecter depuis un client

service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off

Sous /var/www/html, mettre une page index.html quelconque :

<html>
  <head>
    <title>Page de test de Apache 2</title>
  </head>
  <body>
    <h1>Apache fonctionne !</h1>
  </body>
</html>

Relancer le serveur apache en spécifiant le fichier de configuration

/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start

samedi, juin 11 2011

Impression avec Zimbra 7

Lors de la migration de la version 6 vers 7 de Zimbra, les impressions se font avec une police très grande.

Il est necessaire de rétablir la police par défaut avec la commande suivante :

zmprov mc default zimbraPrefDefaultPrintFontSize 10pt

mardi, mai 10 2011

Masquer les informations d'un serveur Web

Introduction

La plate-forme LAMP, c'est à dire Linux, Apache, Mysql et Php, est très utilisée. Sous Debian installer cet environnement est simple. Toutefois le serveur Apache et PHP sont peu discrets par défaut et donnent des informations sur la version utilisée ou encore la plate-forme linux.

La requête suivante montre les informations dévoilées.

telnet xxx.xxx.xxx.xxx 80
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.0 200 OK
Date: Tue, 10 May 2011 06:45:03 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny10 with Suhosin-Patch
X-Powered-By: PHP/5.2.6-1+lenny10
Set-Cookie: 9888c9ee5784f84f692fc6f7ebb6e7f8=-; path=/
Set-Cookie: lang=deleted; expires=Mon, 10-May-2010 06:45:02 GMT; path=/
Set-Cookie: jfcookie=deleted; expires=Mon, 10-May-2010 06:45:02 GMT; path=/
Set-Cookie: jfcookie[lang]=fr; expires=Wed, 11-May-2011 06:45:03 GMT; path=/
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Tue, 10 May 2011 06:45:03 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

Connection closed by foreign host.

Cette simple requête montre la version de Apache ( 2.2.9 ), qu'il s'agit d'un Linux Debian Lenny avec la version 5.2.6-1 de PHP. Il est facile de cacher ses informations

Serveur Apache

Editer le fichier /etc/apache2/conf.d/security et mettre les directives suivantes :

ServerTokens Prod
ServerSignature off

Par défaut ServerTokens est à Full et ServerSignature à On.

PHP

Editer le fichier /etc/php/apache2/php.ini ( /etc/php5/apache2/php.ini sous debian Sqeeze ) et rechercher la direction expose_php qui par défaut est à On, la passer à Off

expose_php = Off

Relancer le serveur apache ainsi

/etc/init.d/apache2 restart

Résultat après modifications

telnet xxx.xxx.xxx.xxx 80
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Tue, 10 May 2011 06:47:14 GMT
Server: Apache
Set-Cookie: 921cb4de875e5934b4a39bac997b0adc=-; path=/
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Tue, 10 May 2011 06:47:15 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

Connection closed by foreign host.

Ceci n'est pas une panacée en terme de sécurité, mais inutile de dévoiler des choses qui ne servent qu'à nuire.

jeudi, avril 28 2011

Sauvegarder tous les comptes zimbra

Lors d'un précédent billet, j'ai montré comment sauvegarder ( et restaurer ) un compte zimbra. Il peut être intéressant de programmer chaque jour la sauvegarde de tous les comptes zimbra.

Dans un premier temps créer un répertoire accessible au user zimbra pour recevoir les sauvegardes.

mkdir /u01/backup_zimbra
chown zimbra:zimbra /u01/backup_zimbra

Puis sous l'identité du user zimbra créer un script svgzimbra.sh avec les lignes suivantes :

#!/bin/bash
for i in `/opt/zimbra/bin/zmaccts | grep "@" | awk '{print $1}'`
  do
    /opt/zimbra/bin/zmmailbox -z -m $i getRestURL "//?fmt=tgz" > /u01/zimbra_backup/$i.tgz
  done

Ce script recherche tous les comptes présents et génère pour chacun d'eux une archive tar compressée. Le rendre exécutable par la comande chmod

chmod u+x svgzimbra.sh

La programmation dans le fichier /etc/crontab est aisée

00 23 * * * zimbra . ~/.profile; svgzimbra.sh

Chaque jour à 23h00 l'ensemble des comptes zimbra seront sauvegardés.

jeudi, mars 24 2011

Proxy Squid avec Debian

images.jpegCet article n'est pas véritablement nouveau, mais je l'ai sous le coude depuis longtemps et il m'a régulièrement servit comme support de cours sur la mise en place de Squid 3.

A l'époque je me suis, plus que fortement, inspiré du travail de Christian Caleca.

L'objectif n'est pas de "pomper" mais de présenter un cas pratique qui fut mis en place exactement ainsi chez un de mes clients. L'article se trouve donc sur le Wiki de Silverlake via le lien suivant : Squid et Debian

mardi, mars 22 2011

Sauvegarde/Restauration d'un compte Zimbra

La version OpenSource de Zimbra ne fournit pas d'interface graphique ou simple pour sauvegarder un compte. La commande zmmailbox permet toutefois de le faire facilement.

Ce billet est directement déduit du wiki Zimbra en anglais ( http://wiki.zimbra.com/index.php?title=User:SGIA )

Pour les manipulations présentées, se connecter au serveur sous le compte zimbra, en général via su - zimbra.

Taille du compte

/opt/zimbra/bin/zmmailbox -z -m compte@domaine.com gms
750,12MB

La boite compte@domaine.com fait donc 750Mo

Sauvegarde

Il s'agit en fait plus d'un export sous forme d'une archive tar compressée ( .tgz ). Le mieux est de définir un répertoire de destination des sauvegardes accéssible au compte ZImbra ( ici /home/backup/account )

/opt/zimbra/bin/zmmailbox -z -m compte@domaine.com getRestURL "//?fmt=tgz" > /home/backup/accounts/compte@domaine.com.tgz

Restauration

Il s'agit ici d'importer l'archive tar dans Zimbra

/opt/zimbra/bin/zmmailbox -z -m compte@domaine.com postRestURL "//?fmt=tgz&resolve=reset" /home/backup/accounts/compte@domaine.com.tgz

Ces méthodes sont aussi efficaces pour migrer des comptes d'un serveur à l'autre simplement. Pour information j'ai migré en moins de 4 heures 10 comptes avec un volume total de 50Go d'une Zimbra 6. vers Zimbra 7. Certes ceci est possible depuis la console d'admin, mais ce processus est simple et aussi scriptable. La commande suivante permet de générer la liste de tous les comptes d'un serveur Zimbra

/opt/zimbra/bin/zmaccts | grep "@" | awk '{print $1}'

samedi, mars 19 2011

Zimbra sur Debian Lenny

zimbra_logo.jpgCe billet synthétise le mode opératoire de Zimbra 6.0.12 CE sur une plate-forme Debian Lenny 64bits. Une installation basique de Debian est faite. Il faut prévoir une partition montée sous /opt assez conséquente ( 5 Go mini ). La taille de /opt dépend du volume de la messagerie.

Si on veut rapidement déployer Zimbra, il faut charger les packages pré-conçus pour sa distribution, pour cela se rendre sur le site de Zimbra. Bien que Squeeze soit la version actuelle de Debian, Zimbra ne propose pas de packages pour elle. Voila pourquoi pour cet exemple le choix s'est porté sur Lenny en version 64 bits.

Ce test fut réalisé sur un serveur kimsufi 750G de OVH disposant de 750Go de disque et de 4Go de RAM avec l'installation standard OVH de Debian Lenny 64bits.

Important : aucun logiciel autre que ssh ne doit être implanté.

Pré-requis

Installer les packages suivants :

aptitude install sudo libexpat1 libperl5.10 sysstat

Zimbra

Télécharger l'archive compressée.

cd /home
wget http://files2.zimbra.com/downloads/6.0.12_GA/zcs-6.0.12_GA_2883.DEBIAN5_64.20110305232032.tgz

La décompresser

tar -xvzf zcs-6.0.12_GA_2883.DEBIAN5_64.20110305232032.tgz

Lancer l'installation

cd /home/zcs-6.0.12_GA_2883.DEBIAN5_64.20110305232032
./install.sh

Il suffit de répondre aux questions. Il est nécessaire que le serveur soit identifié comme enregistrement MX pour un domaine. L'unique autre question est de definir le mot de passe de l'administrateur.

En fin de procédure il suffit de pointer le navigateur sur l'URL https://serveur:7071/zimbraAdmin pour accéder à la console d'administration.

dimanche, mars 6 2011

Mise en place d'un Wiki

Les billets de ce blog peuvent être vus comme une boite de Lego permettant à chacun d'assembler sa solution. Dans mon activité de formateur, beaucoup de stagiaires apprécient de disposer de procédures directement exploitables suite au cours.

Le wiki de Silverlake propose donc des procédures complètes de mise en place de solution. Le lecteur pourra ainsi user et abuser du copier/coller pour installer rapidement un logiciel ou une plate-forme.

La première procédure est dédiée à la mise en place d'un serveur Oracle 11g sous Centos 5.5. Sa particularité est de ne pas utiliser l'interface graphique. La solution a été testée sur un serveur de location Kimsufi de OVH ( publicité gratuite ) avec uniquement un accès ssh.

Bonne lecture.

dimanche, novembre 14 2010

Nagios

Nagios.pngDans l'univers de la supervision Nagios est un incontournable. Sa configuration est complexe et demande de nombreux fichiers de paramètres, mais l'investissement en vaut la peine.

Ce billet présente l'installation du serveur Nagios version 3.2.3 sur Debian Lenny

Prérequis

Disposer d'un serveur web apache et du module php5

aptitude install apache2 php5

Il faut de plus installer un certain nombre de package supplémentaires pour compiler l'ensemble

aptitude install build-essential libgd2-xpm-dev

Télécharger les sources du noyau Nagios et des plugins

cd /home
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
tar -xvzf nagios-3.2.3.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
tar -xvzf nagios-plugins-1.4.15.tar.gz

Les versions sont celles valides au moment de la rédaction de ce billet, le site officiel de Nagios est ici. Créer un utilisateur Nagios, lui donner un mot de passe et l'affecter dans les bons groupes

useradd -m -s /bin/bash nagios
passwd nagios
groupadd nagios
usermod -G nagios nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data

Compilation et installation de Nagios

cd /home/nagios-3.2.3
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode

Configuration de l'interface web

make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
/etc/init.d/apache2 reload

La seconde commande permet de créer un utilisateur nagiosadmin avec un mot de passe qui sera demandé pour accéder au serveur web.

Ne pas déjà démarrer Nagios, il faut en effet installer d'abord les plugins.

Installation des plugins

cd /home/nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

Finalisation

Mettre nagios en démarrage automatique au boot

update-rc.d nagios defaults

Tester la configuration ainsi

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 3.2.3
Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 10-03-2010
License: GPL
...
Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Démarrer nagios

/etc/init.d/nagios start

Pointer un navigateur sur l'url http://monserveur/nagios et renseigner le login ( nagiosadmin ) et le mot de passe saisi précédemment. La configuration par défaut n'est faite que pour le serveur supportant nagios.

L'ensemble des fichiers de configuration se trouve sous /usr/local/nagios/etc. La commande :

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Est à utiliser après chaque modification de configuration, il faut ensuite redémarrer nagios ( /etc/init.d/nagios restart ) afin de mettre en place les nouvelles configurations. Pour la suite...Voir la doc !

mardi, novembre 2 2010

SAMBA et CUPS

Dans les logs de samba, il arrive de trouver des lignes de ce type :

Unable to connect to CUPS server localhost:631 - Connection refused

Pour retirer ces messages, si bien sur aucune imprimante n'est mise en place par samba, rajouter les lignes suivantes dans la section global du fichier smb.conf

load printers = no		
show add printer wizard = no
printing = none
printcap name = /dev/null
disable spoolss = yes

vendredi, octobre 22 2010

Gestion de projet avec REDMINE

redmine_logo.jpgRedmine est un système de gestion de projet en mode web. Il est développé en ruby grâce au framework ruby on rails. La dernière version stable de Redmine à ce jour est la version 1.0.2. Elle nécessite la version 2.3.5 de Rails et la version 1.0.1 de Rack.

Ce billet se base sur l'article suivant : http://doc.ubuntu-fr.org/redmine, il est adapté pour Debian.

Le site officiel de redmine est ici

Prérequis

Installer les packages suivants :

aptitude install build-essential ruby1.8-dev rubygems rake

Si vous êtes sous Debian-Lenny la version de rubygems fournit par debian n'est pas à jour, charger donc la dernière version et l'installer. Ceci est inutile si vous êtes sous Squeeze.

wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
tar -xvzf rubygems-1.3.7.tgz
cd rubygems-1.3.7
ruby1.8 setup.rb

Charger rails et rack, les installations via gem sont assez lentes.

gem1.8 install rails -v=2.3.5
gem1.8 install rack -v=1.0.1

il peut être intéressant de créer le lien symbolique suivant :
ln -s /usr/bin/gem1.8 /usr/bin/gem

Installation de redmine

Télécharger redmine

wget http://rubyforge.org/frs/download.php/72627/redmine-1.0.2.tar.gz
tar -xvzf redmine-1.0.2.tar.gz

Il faut une base de donnée, ici on prend MySQL. Installer la base de données

aptitude install mysql-server libmysqlclient-dev

Puis charger l'adaptateur MySQL pour ruby

gem1.8 install mysql

Créer un utilisateur spécifique. Pour des raisons de sécurité, il est préfèrable de créer un utilisateur spécifique à Redmine pour utiliser la base :

addgroup redmine
adduser redmine --no-create-home --ingroup redmine

Un mot de passe sera demandé pour l'utilisateur redmine. L'exemple prendra motdepasse

Créer la base de données de Redmine

mysql -u root -p
mysql> create database redmine default character set utf8 collate  utf8_general_ci;
mysql> grant all privileges on redmine.* to redmine@localhost identified by 'motdepasse' with grant option;
mysql> flush privileges;
mysql> exit;

Configuration

Se positionner dans le répertoire où sont décompressées les sources redmine et editer un fichier config/database.yml

production:
  adapter: mysql
  socket: /var/run/mysqld/mysqld.sock 
  database: redmine
  host: localhost
  username: redmine
  password: motdepasse
  encoding: utf8

Puis entrer la commande suivante :

rake generate_session_store

Il faut installer le package suivant :

aptitude install libopenssl-ruby1.8

Sinon l'erreur suivante se produira :

Rake aborted!
no such file to load -- net/https

Créer la structure de la base

RAILS_ENV=production rake db:migrate

Insérer les données par défaut

RAILS_ENV=production rake redmine:load_default_data

La langue sera demandée, fr pour du français.

Finalisation

En principe tout s'est fait sous l'identité root, aussi le mieux est de mettre redmine sous /opt afin de respecter les normes linux.

cd /opt
mkdir redmine
cd redmine
cp -r /root/redmine-1.0.2/* .

Il faut un dossier pids doit être présent également pour permettre au serveur web mongrel ( voir plus loin ) de démarrer.

mkdir /opt/redmine/tmp/pids

Affecter les droits

cd /opt/redmine
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Pour fonctionner redmine a besoin d'un serveur web. Mongrel est un serveur HTTP écrit en Ruby et en C. Il a été conçu pour être léger, rapide et sécurisé. Il est bien sur possible d'utiliser apache ( voir le lien suivant )

aptitude install mongrel

Démarrage de redmine

Créer sous /etc/init.d un script redmine avec les instructions suivantes :

#!/bin/sh
 
set -e
 
REDMINE_PATH=/opt/redmine/
REDMINE_PID=/tmp/mongrel.pid
REDMINE_PORT=3000
 
if [ -x /usr/bin/mongrel_rails ] ; then
        HAVE_MONGREL=1
else
        echo "Mongrel n'est pas installé."
        exit 0
fi
 
. /lib/lsb/init-functions
 
case "$1" in
  start)
        log_action_begin_msg "Démarrage de Redmine server"
        mongrel_rails start -c $REDMINE_PATH -d -e production -p $REDMINE_PORT -P $REDMINE_PID
        log_action_end_msg $?
        ;;
  stop)
        log_action_begin_msg "Arrêt de Redmine server"
        mongrel_rails stop -c $REDMINE_PATH -P $REDMINE_PID
        log_action_end_msg $?
        ;;
  force-reload|restart)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage: /etc/init.d/redmine {start|stop|restart|force-reload}"
        exit 1
        ;;
esac
 
exit 0

Par défaut redmine sera accéssible via le port 3000.

Le rendre executable et l'activer au boot de la machine

chmod +x /etc/init.d/redmine
update-rc.d redmine defaults

Démarer redmine

/etc/init.d/redmine start

Pointer un navigateur sur http://monserveur:3000. La page redmine s'affiche, le login de connexion par défaut est admin/admin.