Depuis des années pour faire un serveur web on utilise Apache sous linux (car c’est nettement plus optimisé que sous windows). C’est presque devenu un automatisme car il faut avouer qu’Apache est bien souvent le meilleur. Avec le temps apache est devenu un sacré défi pour le configurer, ajout de plug-in pour ceci, cela etc … Pour les serveurs qui ne doivent servir que du contenu et qui sont fortement sollicités des ingénieurs russes ont eu l'idée de développer un serveur web en partant de zéro (ou quasi) et ayant une faible empreinte système. Pour toute l’histoire de Nginx le plus simple est d’aller lire le wikipedia. L’architecture est très différente d’Apache et tout aussi efficace pour servir du contenu Web. Ce serveur web est de plus en plus répandu il est donc logique de s'y intéresser.

Pourquoi installer un serveur web sur son PC ? Tout simplement pour tester les nouveautés de tel ou tel CMS, Gallery où tout autre chose. On verra tout cela dans un autre article.

Dans ce tuto on va installer un serveur web Nginx, une base Mysql et bien entendu php le tout sous Ubuntu 12.10. Pour ceux qui n’aime pas la ligne de commandes je suis désolé de vous annonve que l’on va utilise quelques unes mais rien de bien méchant. On va donc ouvrir un terminal en appuyant les touches Ctrl + Alt + T.

Attention pour ce tuto il est préférable de ne pas avoir installé mysql et apache

On va commencer par installer Mysql avec la commande suivante:
sudo apt-get install mysql-server mysql-client

Il faut aussi entrer un mot de passe pour le compte root, il va de soit qu'il faut le garder précieusement
installation nginx img 001installation nginx img 002installation nginx img 003
Commande pour installer Nginx
sudo apt-get install nginx
installation nginx img 004
Dès maintenant on peut démarrer le serveur Nginx avec la commande
sudo /etc/init.d/nginx start
installation nginx img 005
Pour information les fichiers à servir (sources html, php) sont stockés dans le répertoire :
/usr/share/nginx/www

Maintenant on va commencer l’installation de php avec la commande :
sudo apt-get install php5-fpm
Une fois installer il faut démarrer php5-fpm
sudo /etc/init.d/php5-fpm start
installation nginx img 006
à ce niveau on va ajouter un fichier php pour contrôler que la configuration de nginx est correcte pour fonctionner avec php. On va créer/éditer un fichier info.php.
sudo gedit /usr/share/nginx/www/info.php
--- on ajoute le texte suivant dans le fichier

<?php
phpinfo();
?>
installation nginx img 007installation nginx img 008

il se peut que la configuration du site par défaut n’accepte pas le php, de fait votre navigateur va vous proposer de télécharger le fichier info.php. Pour remédier au problème on va simplement changer la configuration par défaut du serveur Nginx avec la commande suivante:
sudo gedit /etc/nginx/sites-available/default

au niveau de la ligne index index.html index.htm on va ajouter index.php

au niveau # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 on va supprimer les # qui vont bien (image) (exemple de fichier)

On recharge la configuration avec la commande sudo service nginx reload
installation nginx img 010
voilà votre serveur lnmp est presque prêt. On va ajouter les librairies php qui vont bien avec la commande
sudo apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

et on va redémarrer le serveur php
sudo /etc/init.d/php5-fpm restart

Enfin on va finir par une facilité pour la suite des évènements à savoir aller chercher les sources dans un endroit facile d’accès à l’occurrence les dossiers personnels :

D’abord on va créer un répertoire www dans Dossier Personnels avec les commandes suivantes:
cd ~
mkdir www

on va à nouveau editer le fichier de configuration par défaut
sudo gedit /etc/nginx/sites-available/default
on va ajouter tout simplement en début de fichier les lignes suivantes (vous devez remplacer /home/jbaptiste par votre home, bizarrement ~/www ne fonctionne pas )

server {
root /home/jbaptiste/www;
server_name test.local;

index index.html index.htm index.php;

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
#With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}

exemple de fichier à modifier par vos soins (remplacer /home/jbaptiste ..) télécharger
installation nginx img 009

Ensuite il vous faut éditer votre fichier hosts pour ajouter la ligne
127.0.0.1 test.local
commande
sudo gedit /etc/hosts
Enregistrer et quitter
restart nginx avec la commande
sudo /etc/init.d/nginx restart
ou la commande
sudo service nginx reload


voilà vous pouvez créer vos programmes php et autres dans votre répertoire www

pour tester vous pouvez écrire un fichier index.php avec les instructions suivantes

gedit ~/www/index.php

enter dans ce fichier :
<?
echo ‘youpi nginx fonctionne’

?>

Enfin dans votre navigateur préféré tester http://test.local

installation nginx img 011

Pour aller plus loin un excellent tuto pour ajouter de la puissance à votre apache avec NGINX http://www.papygeek.com/software/optimiser-son-serveur-web-avec-nginx/

Comments powered by CComment

We use cookies

Nous utilisons des cookies sur notre site web. Certains d’entre eux sont essentiels au fonctionnement du site et d’autres nous aident à améliorer ce site et l’expérience utilisateur (cookies traceurs). Vous pouvez décider vous-même si vous autorisez ou non ces cookies. Merci de noter que, si vous les rejetez, vous risquez de ne pas pouvoir utiliser l’ensemble des fonctionnalités du site.