Cet après midi, j’ai décidé de quitter Apache pour Nginx sur ma machine locale.
En plus de cela, je quitte également PHPMyAdmin, pour l’utilisation d’Adminer, bien plus léger, vu qu’il tient dans un seul fichier.

Nous allons donc passer de LAMP (Apache), à LEMP !
Pourquoi LEMP ? Eh bien ce mot est l’acronyme de Linux, Nginx (prononcé Engine X), MySQL, et PHP. Le pré-requis pour ce tutoriel est donc, bien sur, d’être sur une machine Linux (Ubuntu plus précisément).

Avant de commencer toute installation, veillez à bien avoir un système à jour :

sudo apt-get update

Installation de MySQL

Pour installer MySQL, tapez cette ligne de commande dans votre terminal :

sudo apt-get install mysql-server php5-mysql

Pendant l’installation, un mot de passe vous sera demander pour paramétrer le mot de passe « root ». Saisissez-le si vous souhaiter en mettre un, sinon appuyez sur entrée sans rien saisir.

Une fois l’installation terminée, activez le avec cette commande :

sudo mysql_install_db

Et lancez le script d’installation :

sudo /usr/bin/mysql_secure_installation

Pour la première question, j’ai mis le paramètre à non (n).
Pour toutes les autres question j’ai mis oui (Y).

Installation de Nginx

L’installation est très rapide, nous configurerons Nginx dans un étape ultérieure :

echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/nginx-stable.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
sudo apt-get update
sudo apt-get install nginx

Notez que Nginx ne se lance pas automatiquement, il vous faut le lancer avec cette commande :

sudo service nginx start

En vous rendant au http://127.0.0.1 , vous devriez voir une page affichant la présence de Nginx sur votre serveur.

Installation et configuration de PHP

Commencez tout d’abord par installer PHP:

sudo apt-get install php5-fpm

Ouvrez désormais le fichier suivant avec votre editeur favori (j’ai mis nano mais vous pouvez changer ! )

 sudo nano /etc/php5/fpm/php.ini

Recherchez la ligne cgi.fix_pathinfo=1 et remplacez là par (Décommentez la ligne si elle est commentée, pour celà il suffit de supprimer le « ; » en début de ligne) :

cgi.fix_pathinfo=0

Maintenant ouvrez le fichier suivant :

 sudo nano /etc/php5/fpm/pool.d/www.conf

Vérifiez que la ligne suivante est présente :

listen = /var/run/php5-fpm.sock

Chez moi, elle l’était, mais dans d’autres cas, il est possible d’avoir cette valeur : listen = 127.0.0.1:9000, il faut donc la remplacer par la valeur ci-dessus

Pour terminer, redémarrez PHP :

sudo service php5-fpm restart

Configuration de Nginx

Ouvrez le vhost par défaut (toujours avec l’éditeur de votre choix !)

sudo nano /etc/nginx/sites-available/default

Je vous file ma configuration perso, je n’ai pas la prétention de savoir tout expliquer, donc je préfère tout vous partager :

# Default server configuration
#
server {
	listen 80 default_server;
	listen [::]:80 default_server;

	# SSL configuration
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!
	# include snippets/snakeoil.conf;
	#
	# ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE
	# ssl_ciphers HIGH:!aNULL:!MD5;
	# ssl_prefer_server_ciphers on;

	root /usr/share/nginx/html;

	# Add index.php to the list if you are using PHP
	index index.php index.html index.htm index.nginx-debian.html;

	server_name magento2.lan;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}

	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                
        }

	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	#location ~ /\.ht {
	#	deny all;
	#}
}

Les lignes importantes sont les suivantes :
– La ligne root, vérifiez que le chemin existe sur votre ordinateur, il se peut que le dossier diffère d’une version d’ubuntu à une autre. (ex : /usr/share/nginx/www)
root /usr/share/nginx/html;
– La ligne des index, avec la valeur « index.php » présente
index index.php index.html index.htm index.nginx-debian.html;
– La ligne server_name qui doit concorder avec une ligne de votre fichier « /etc/hosts »
server_name magento2.lan;
Dans mon fichier /etc/hosts, j’ai ajouté la ligne suivante :
127.0.1.1 magento2.lan
– Les lignes englobées dans la configuration de « location ~ \.php$ { […] } »

Après tout ceci, vous pouvez redémarrer Nginx :

sudo service nginx restart

Configurer plusieurs vhost

Comme avec apache, il est possible de paramétrer plusieurs vhost. Pour mon exemple, j’ai dupliqué mon fichier « /etc/nginx/sites-available/default » dans « /etc/nginx/sites-available/localhost » :

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/localhost

Supprimes les lignes suivantes :

	listen 80 default_server;
	listen [::]:80 default_server;

Configurez le reste comme vous le souhaitez, notamment les lignes :
– root [Chemin du dossier]
– server_name [Nom du serveur]
Je rappelle que le nom du serveur est a renseigner dans votre fichier « /etc/hosts » également.

Une fois ceci fait, créez un lien symbolique pour activer votre configuration :

sudo ln /etc/nginx/sites-available/localhost /etc/nginx/sites-enabled/localhost

Avec cette commande, quand vous modifierai le fichier dans site-available, le fichier dans site-enabled sera modifié aussi !

Puis redémarrez Nginx :

sudo service nginx restart

Installation d’Adminer

Commencez tout d’abord par télécharger la dernière version d’Adminer.

Personnellement, j’ai renommé le fichier en « adminer.php », puis a vous de le placer dans le répertoire de votre serveur. Pour ma part dans : /usr/share/nginx/html

Il se peut que vous deviez passer par un chmod avant de pouvoir placer le fichier dans le dossier :

sudo chmod 777 /usr/share/nginx/html -R

Une fois collé, appelez votre fichier depuis le navigateur :
http://magento2.lan/adminer.php
Notez que l’adresse peut varier selon le nom de votre serveur, et le nom donné au fichier.
Si la page « Access Denied » s’affiche, relancez la commande chmod précédente.

Et voilà, votre serveur tourne, et Adminer vous permettra de gérer vos BDD comme bon vous semble !

Installer un serveur Nginx en local (LEMP + Adminer)
Taggé sur :                

Une réflexion sur “Installer un serveur Nginx en local (LEMP + Adminer)

  • 20/11/2014 à 12:06
    Permalink

    Trés bon article pour avoir rapidement un nginx en local. Je connaissais pas Adminer. Merci Max 🙂

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous utilisons des cookies afin de nous assurer de vous proposer la meilleure expérience sur ce site.
Ok