Configuration d'Exim avec nom de domaine géré par gandi

Bonjour,

aujourd’hui nous allons voir comment, facilement, exploiter une fonctionnalité offerte par Gandi (ou bien comprise dans le prix de nom de domaine, ça dépend comment on voit les choses).

beaucoup d’entre nous n’ont pas le temps (et souvent pas l’envie de non plus) de se prendre la tête avec un vrai MTA genre postfix ou exim et le configurer en s’assurant de bien renseigner les enregistrement MX chez le registrar, d’installer les bons outils pour le POP (ou IMAP) etc. etc.

il faut savoir qu’avec un nom de domaine de chez Gandi, on a droit a quelques comptes emails (5 par domaine de mémoire) et une infinité d’alias sur ces comptes.

ce qu’on va voir ici, c’est comment configurer une machine (serveur dédié) pour assurer le minimum syndical en s’appuyant sur le service proposé par gandi.

dans notre exemple il s’agira d’un Exim4 (c’est le seul avec lequel j’ai testé pour l’instant, et ça marche tellement bien que je n’ai pas envie de changer 🙂 )

on va supposer un compte admin@mon-domaine.com

tout d’abord il faut éditer le fichier : /etc/exim4/passwd.client en ajoutant tout à la fin :

*:admin@mon-domaine.com:MOT-DE-PASSE-DU-COMPTE

en suite, on va éditer le fichier /etc/exim4/update-exim4.conf.conf pour avoir quelque chose comme :

dc_eximconfig_configtype='satellite'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost='mon-domaine.com'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='mail.gandi.net:587'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

un petit

/etc/init.d/exim4 reload

et le tour est joué 🙂

votre serveur envoie maintenant ces mails en utilisant le compte gandi, plus de soucis de conf complexe, maj à risque etc a se faire…

pour tester :

test-machine:/etc/exim4# mail user@omain.tld
Subject: test
ceci est un message de test !
.
Cc:

PS. procédure trouvé il y a un moment sur les forums gandi, mais je n’arrive jamais a la retrouver je la mets ici, au cas où.
PS2. comme d’habitude, notre distribution ici est une Debian 🙂

Share

Installer et configurer Munin

… sur une debian.

Aujourd’hui on va voir comment installer et configurer l’outil de monitoring munin

Un petit article aide mémoire comme beaucoup d’autres sur ce blog 🙂

pour commencer :

apt-get install munin munin-node

en suite il faut éditer le fichier de configuration : /etc/munin/munin.conf

changer juste la valeur de htmldir pour choisir un répertoire où les fichiers html des rapports seront déposés, pour moi c’est sous un vhosts de statistiques, exemple :

htmldir	/var/www/munin

vous pouvez aussi laisser la valeur par défaut.

un autre fichier de configuration pourrait vous intéresser, personnellement je n’ai pas eu a le toucher : /etc/munin/munin-node.conf

Important : Assurez vous que le répertoire « htmldir » choisi plus haut soit accessible en écriture a l’utilisateur munin (sinon le cron vous bombarde de mails pas cool), moi j’ai fait un :

chown -R munin:www-data MON/HTML/DIR/DE/MUNIN

maintenant on restart tout ça :

/etc/init.d/munin-node restart

quelques minutes après (le temps de générer quelques stats) on va a l’url correspondant au htmldir et on admire les garphs 🙂

localhostlocaldomain-memory-day

Share

Lighttpd vs Apache vs Lighttpd + Apache

Il fut un temps où on ne se posait pas de question quant au serveur web, on prend Apache et on en parle plus, aujourd’hui les choses ont changé, Apache reste quand même le plus utilisé avec plus de 66% des parts de marché, suivi par IIS, puis tous les autres « petits » derrière, néanmoins en fonction des besoins, certains de ces petits peuvent s’avérer bien plus performants qu’Apache, aujourd’hui on va tester 3 configurations possibles avec Apache et Lighttpd.

d’après ce qu’on peut lire un peu partout sur le net, Lighttpd (lighty pour les intimes) est beaucoup plus performant quand il s’agit de servir des pages statiques, mais qu’en est-il vraiment ? et comment s’en sort-il avec le contenu dynamique ? (des sites statiques ça n’existe plus de nos jours ^^).

pour notre test, on va prendre un site très léger, basé sur Zend framework (donc loin d’être statique), contenant une page qui affiche 9 images au hasard a partir d’une tables mysql contenant environ 1000 enregistrements (seulement les emplacement des images sont stockés dans la base). Le serveur de test est un kimsufi L (petit processeur et 1Go de RAM).

versions utilisées :
Apache 2.2.9
Lighttpd 1.4.19
PHP 5.2.6

pour les tests on utilise siege, on lance donc un siege avec 100 concurrency sur 10 minutes, voici la commande :

siege -c100 -t10M URL_DU_SITE

on note également le Load average de la machine a la fin de l’opération.

1ère configuration : Lighttpd tout seul

voici le resultat :

Load average : 4.87
 
Lifting the server siege...      done.
Transactions:		       23859 hits
Availability:		      100.00 %
Elapsed time:		      600.37 secs
Data transferred:	       83.25 MB
Response time:		        2.02 secs
Transaction rate:	       39.74 trans/sec
Throughput:		        0.14 MB/sec
Concurrency:		       80.21
Successful transactions:       23859
Failed transactions:	           0
Longest transaction:	        5.20
Shortest transaction:	        0.10

2ème configuration : Apache2 tout seul

le résultat :

Load average : 77.51
 
Lifting the server siege...      done.
Transactions:		       23543 hits
Availability:		      100.00 %
Elapsed time:		      599.66 secs
Data transferred:	       82.16 MB
Response time:		        2.04 secs
Transaction rate:	       39.26 trans/sec
Throughput:		        0.14 MB/sec
Concurrency:		       80.22
Successful transactions:       23543
Failed transactions:	           0
Longest transaction:	       10.51
Shortest transaction:	        0.05

3ème configuration : Lighttpd + Apache

maintenant faisons le test en couplant les 2, dans cette configuration tout ce qui est statique (images, css, js, etc.) sera servi par lighty alors que les scripts php eux, seront traités par apache, pour cela on active le mod_proxy dans lighty, et on ajoute le code suivant dans le vhost de notre site :

 $HTTP["url"] !~ "\.(js|css|gif|jpg|png|ico|txt|swf|html|htm)$" {
               proxy.server  = ( "" => (
                               ( "host" => "127.0.0.1", "port" => 8080 )
                       )
               )
       }

vous l’aurez compris, Apache écoute sur le port 8080 (c’est fait en changeant le fichier /etc/apache2/ports.conf).

voici le résultat :

Load average : 14.79
 
Lifting the server siege...      done.
Transactions:		       22684 hits
Availability:		      100.00 %
Elapsed time:		      600.25 secs
Data transferred:	       79.10 MB
Response time:		        2.13 secs
Transaction rate:	       37.79 trans/sec
Throughput:		        0.13 MB/sec
Concurrency:		       80.53
Successful transactions:       22684
Failed transactions:	           0
Longest transaction:	        8.61
Shortest transaction:	        0.07

plutôt surprenant !

Conclusion :

Lighty s’en sort très bien au vu des transactions/s (ou le nombre total de transactions traitées), contrairement a ce qu’on pouvait attendre, coupler les 2 nous fait perdre en performances (on enregistre quand même un load average nettement inférieur a la config d’apache tout seul).

personnellement ce que je retiens, c’est que lighty n’est pas si mauvais que ça pour le contenu dynamique, les performances restent quand très proches dans les 3 cas, donc autant utiliser la solution qui nous plait 🙂

Share

Partager un répertoire Windows avec VirtualBox

Dans cet article nous allons voir comment partager, facilement, un répertoire Windows avec une machine virtuelle sous VirtualBox.

Tout d’abord, précisions l’environnement :
Il s’agit d’un système Hôte sous Windows XP, nous installons dessus le logiciel VirtualBox, et dans ce dernier nous créons une machine virtuelle tournant sous Linux (Systême guest).

Pour commencer il faut installer les additions client pour notre VirtualBox, pour cela je vous renvoie à notre article : Additions client pour VirtualBox.

Une fois les additions client installées, procédons comme suit :

  1. Sélectionner la machine virtuelle est cliquez sur « Répertoires Partagés« 
  2. Cliquez sur le « + » (PLUS) a droite de la fenêtre qui s’ouvre et sélectionner un répertoire à partager, vous pouvez lui donner un nom
  3. Valider et démarrez votre machine virtuelle

Maintenant, nous allons voir comment monter le partage du coté de notre système guest (Linux), pour cela, exécutez la commande suivante :

mount -t vboxsf NOM_PARTAGE POINT_MONTAGE

où :
NOM_PARTAGE est le nom que vous avez donné à votre répertoire partagé lors de sa sélection.
POINT_MONTAGE est le point (répertoire, ou encore emplacement) dans la machine virtuelle dans lequel vous voulez monter le répertoire.

voici un exemple avec un partage nommé Downloads :

mount -t vboxsf Downloads /mnt/downloads
Share

Installer libssh2, ssh2 pour php

Dans cet article nous allons voir comment installer l’extension ssh2 pour php5, cette extension permet l’utilisation de fonctionnalités SSH2 avec php (très utiles quand on veut faire du SFTP par exemple) pour plus d’informations cf. la documentation officielle sur php.net

Pour l’installation, ce n’est pas très compliqué, il suffit de suivre ces quelques étapes à la lettre et tout ira très bien 😉

tout d’abord il faut s’assurer d’avoir les bons paquets d’installés, en voici une liste :

  • php5-dev
  • openssl
  • libssl-dev
  • gcc
  • make
  • etc. je suppose que si vous installez cette extension, c’est que vous avez déjà php, apache etc.

Toute la suite s’effectue en root

mais avant toute chose, n’oublions pas de faire un petit :

apt-get update
apt-get upgrade

en suite il faut créer un répertoire de travail :

cd ~
mkdir libssh2
cd libssh2

ensuite télécharger libssh2 :

wget http://ovh.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.14.tar.gz

puis l’extraire :

tar -xzvf libssh2-0.14.tar.gz

aller dans le répertoire créé et installer libssh2 :

cd libssh2-0.14
./configure && make all install

maintenant que libssh2 est installée, passons a ssh2 :

on sort du repertoire de libssh2 et on télécharge ssh2 :

cd ..
wget http://pecl.php.net/get/ssh2-0.10.tgz

extraire l’archive téléchargée :

tar -xzvf ssh2-0.10.tgz

aller dans le répertoire créé et installer ssh2 :

cd ssh2-0.10
phpize && ./configure --with-ssh2 && make

maintenant que l’installation est terminée, on active l’extension, ici on va copier le fichier ssh2.so dans le répertoire des extension de php5 (il peut être différent du mien selon la distrib et l’installation) :

cp modules/ssh2.so /usr/lib/php5/20060613+lfs

puis on ajoute l’extension en créant un fichier ssh2.ini dans le répertoire conf.d (comme pour toutes les autres extensions de php) on n’oublie pas de le faire pour apache mais aussi pour le mode CLI.

echo "extension=ssh2.so" > /etc/php5/cli/conf.d/ssh2.ini
echo "extension=ssh2.so" > /etc/php5/apache2/conf.d/ssh2.ini
/etc/init.d/apache2 restart

Et voilà, notre extension est installée, a vous ssh2 et sftp avec php 🙂

Share