Créer un serveur nginx sous Debian 9

Installation

Mettre à jour le système

apt update && apt upgrade

Installer nginx

apt install nginx

Installer php7.0-fpm

apt install php-fpm

Editer le fichier de configuration du site par défaut de nginx pour utiliser php

nano /etc/nginx/sites-available/default

Dans index, ajouter « index.php »

index index.html index.htm index.php index.nginx-debian.html;

Dé-commenter la partie « location ~ \.php$ { » , ne dé-commenter uniquement la bonne connexion à php-fpm

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

Installer MariaDB

apt install mariadb-server

Sécuriser MariaDB

mysql_secure_installation

Créer un utilisateur administrateur dans mariadb

mariadb
CREATE USER newuser@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO newuser@localhost WITH GRANT OPTION;
quit

Supprimer un utilisateur dans mariadb

mariadb
DROP USER newuser@localhost;
quit

Installer phpMyAdmin

apt install phpmyadmin

Ne rien sélectionner.

Editer le fichier de configuration du site par défaut de nginx pour ajouter phpmyadmin

nano /etc/nginx/sites-available/default

Ajouter dans « server { } » juste avant l’accolade de fin

location /phpmyadmin {
     root /usr/share/;
     index index.php index.html index.htm;

     location ~ ^/phpmyadmin/(.+\.php)$ {
          try_files $uri =404;
          root /usr/share/;
          fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include /etc/nginx/fastcgi_params;
     }

     location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
          root /usr/share/;
     }
}

location /phpMyAdmin {
     rewrite ^/* /phpmyadmin last;
}

Héberger plusieurs sites avec les VirtualHosts

Copier le site dans le serveur

cp site1 /var/www/

Changer le propriétaire du dossier et des sous-dossiers

chown -R www-data:www-data /var/www

Copier l’exemple de configuration des VirtualHosts

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/site1

Editer ce fichier en modifiant le « server_name » qui correspond à l’adresse du site web, ainsi que « root » qui correspond au chemin sur le serveur. Enlever la configuration de phpmyadmin qui est présent uniquement sur le fichier default.

nano /etc/apache2/sites-available/site1

Activer le site en créant un lien symbolique

ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/site1

Recharger la configuration de nginx

systemctl reload nginx

Activer la réécriture d’adresse

Editer le fichier de configuration du site

nano /etc/nginx/sites-available/site1

Les arguments « try_files » dans la section « <location /> »

try_files $uri $uri/ /index.php?$args;

Recharger la configuration de nginx

systemctl reload nginx