installation complète d'un serveur web sous centos5.4 | jour 1 - installation du serveur web (lighttpd) et du serveur de données (mysql)
Par Jean-Philippe Serafin le mercredi, décembre 2 2009, 11:02 - Lien permanent
Tout au long de cette série de billets, nous verrons comment installer un serveur autonome sur la distribution centOS 5.4 64bit. Nous aurons besoin d'un serveur web (lighttpd ici), d'un serveur de mail (Postfix) ainsi que d'un serveur de données (mysql).
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é :
- primaire ext3 / 1 10000 Mo
- primaire swap none - 2 x 10000 Mo
- 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
Commentaires
Très intéressant comme article.
J'ai fais un petit tour et j'aime beaucoup votre blog, continuez ainsi ;)