L’installation d’un serveur LEMP Linux + Nginx + MySQL + PHP peut vous être plus utile et plus performant fac à Apache (serveur LAMP).

Installation de Nginx

Il sera nécessaire de connaître l’adresse IP de la machine pour procéder à cette installation à partir d’ifconfig.

 ifconfig eth0 | grep inet | awk '{ print $2 }'
    addr:10.0.0.8

À partir de votre système sous Debian 8, nous installons nginx via la commande :

sudo apt-get update
sudo apt-get install nginx

Votre serveur nginx est maintenant fonctionnel et accessible sauf si une règle empêche les flux HTTP et dans ce cas, vous devrez vérifier netfilter (iptables / ufw).

http://serveur_domaine_ou_adresse_IP

Installation de MySQL

Ensuite, il faut procéder à l’installation de MySQL via la commande suivante :

 apt-get install mysql-server

Pendant l’installation, il vous sera demandé de choisir un mot de passe root.

Il est conseillé de bien choisir son mot de passe de préférence alphanumérique et contenant des caractères spéciaux.

Pour poursuivre l’installation, la commande suivante doit être executée :

 mysql_secure_installation

Saisissez votre mot de passe root au moment demandé et validez les 4 questions suivantes par yes :

 Enter current password for root (enter for none):
    OK, successfully used password, moving on...

Remove anonymous users? [Y/n] y
 ... Success!

Disallow root login remotely? [Y/n] y
... Success!

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

Installation de PHP

Nginx ne contenant pas PHP en natif, il est nécessaire d’installer le gestionnaire de processus PHP appelé PHP FPM (FastCGI Process Manager) :

sudo apt-get install php5-fpm php5-mysql

On va ensuite modifier la configuration de PHP en modifiant la valeur de la variable cgi.fix_pathinfo à 1 ou simplement dé-commenter la ligne :

vim /etc/php5/fpm/php.ini

cgi.fix_pathinfo=1

Enfin, on redémarrage le service PHP :

systemctl restart php5-fpm

Configuration de Nginx

Maintenant, on va modifier notre vhost par défaut afin que Nginx utilise le processeur PHP :

vim /etc/nginx/sites-available/default

Les éléments en rouge devront être ajouté au fichier vhost par défaut :

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name serveur_domaine_ou_adresse_IP;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Nous devons maintenant vérifier la configuration de Nginx puis rechargé le service et en cas d’erreur, il faudra revoir le fichier configuré précédemment :

nginx -t

nginx -s reload

Utilisation

Pour terminer, nous allons tester notre serveur LEMP avec une page phpinfo :

echo "<php phpinfo(); >" > /var/www/html/phpinfo.php

Le résultat sera accessible depuis l’url http://serveur_domaine_ou_adresse_IP/phpinfo.php et nous donnera le résultat suivant :

Votre serveur LEMP est désormais fonctionnel et vous permettra des gains de performance notamment en nombre de requêtes en comparaison à un serveur LAMP sous Apache.