Le serveur est un double quadruple coeur avec 16 Giga de RAM, je crée préalablement les partitions suivantes via le manager de mon provider préféré :

  1. primaire ext3  / 1 10000 Mo
  2. primaire swap  none - 2 x 10000 Mo
  3. primaire ext3  /home 1 730000 Mo

Installation du serveur web :

Nous aurons besoin du client subversion pour récupérer diverses sources ainsi que pour pouvoir éxecuter les recettes de déploiement des applications à migrer, nous l'installons via yum :

yum install subversion.x86_64

Les sites et applications hebergés sur ce serveur engendrent un trafic assez conséquent ce qui implique la mise en place d'un serveur web léger, Apache sera donc mis de côté au profit de lighttpd, cela impliquera des petites contraintes lors de migration des sites existants sur lesquelles nous reviendrons plus tard. L'ensemble de ces applications nécessite PHP(5.2). Téléchargement des sources :

mkdir /usr/src/lighttpd
cd /usr/src/lighttpd/
wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz
tar -xvf lighttpd-1.4.25.tar.gz
cd lighttpd-1.4.25

Prérequis avant compilation :

yum install libtool.x86_64 pcre-devel.x86_64 zlib-devel.x86_64 bzip2-devel.x86_64 gamin-devel.x86_64 libxml2-devel.x86_64

On configure et compile :

./configure
make && make install

Attention : le compilateur C devra évidement être désinstallé avant la mise en production!

on crée le script de lancement à partir du modèle contenu dans doc/ et on copie les configurations de base :

sed -e 's/FOO/lighttpd/g' doc/rc.lighttpd.redhat > /etc/init.d/lighttpd
chmod a+rx /etc/init.d/lighttpd
cp -p doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
install -Dp ./doc/lighttpd.conf /etc/lighttpd/lighttpd.conf

On le rend disponible au démarage de la machine :

chkconfig lighttpd on

On crée le user qui lancera le serveur et son dossier HOME :

useradd --create-home --password pass wwwrun

On édite le fichier de démarrage fraîchement créé :

nano /etc/init.d/lighttpd

On change une petite ligne (erreur dans le script fourni avec les sources) :

lighttpd="/usr/bin/lighttpd"

par :

lighttpd="/usr/sbin/lighttpd"

On édite le fichier de config :

nano /etc/lighttpd/lighttpd.conf

changer le document-root pour :

server.document-root        = "/home/wwwrun/"

on change le user en décommentant les lignes :

## change uid to <uid> (default: don't care)
 
server.username            = "wwwrun"
 
 
## change uid to <uid> (default: don't care)
 
server.groupname           = "wwwrun"

on crée le dossier et les fichiers de logs :

mkdir /var/log/lighttpd
touch /var/log/lighttpd/error.log
chown wwwrun:wwwrun /var/log/lighttpd/ -R

On installe facilement php via yum :

yum install php.x86_64

Petit test de notre serveur web fraîchement installé :

su wwwrun
nano /home/wwwrun/index.html

on colle :

<h1>It works!</h1>

maintenant on teste : http://ip.reel.du.serveur/index.html

un autre petit test pour vérifier la prise en charge de php :

nano /home/wwwrun/index.php

on y colle :

<?php
phpinfo();

Ensuite on ajoute php à la configuration de lighttpd :

nano /etc/lighttpd/lighttpd.conf

on décommente la ligne :

#                               "mod_cgi"
 
 
et on ajoute :
 
 
cgi.assign = ( ".php" => "/usr/bin/php-cgi" )

on redémarre le serveur :

service lighttpd restart

et on teste : http://ip.reel.du.serveur/index.php

Libre à vous de passer ensuite en fastcgi (un billet sur l'optimisation du serveur viendra plus tard.

Installation du serveur de données :

Le serveur de données requis pour les applications est mySql qui reste à l'heure actuelle la meilleure solution pour le web. L'installation se fait facilement via yum :

yum install mysql-server.x86_64

on lance le serveur et on s'assure qu'il démarre en même temps que le système :

service mysqld start
chkconfig mysqld on

on configure le mot de passe root :

mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('pass') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

on déplace les données dans /home/mysql :

service mysqld stop
mkdir /home/mysql
cp /var/lib/mysql/* /home/mysql/ -Rv
chown mysql:mysql /home/mysql/ -R

On édite la config de mysql pour lui indiquer le nouveau chemin :

nano /etc/my.cnf

on change :

datadir=/var/lib/mysql

par :

/home/mysql
 
service mysqld start

On installe le paquet contenant PDO pour pouvoir piloter mysql depuis php : yum install php-mysql.x86_64