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.