{{tag>tutoriel}}
====== Serveur HTTP LEMP (Nginx + MariaDB + PHP) ======
===== Pré-requis =====
===== Première étape =====
- **Stopper le service Apache** :nicolas@chateau:~$ sudo systemctl stop apache2
- **Renommer index** :sudo mv /var/www/html/index.html /var/www/html/index.html.apache
- **[[apt>nginx-full,mariadb-server,mariadb-client,php,php-fpm,php-mysql,php-curl,php-xml,php-mbstring,php-bcmath,php-gd,php-cli,php-zip]]** nicolas@chateau:~$ sudo apt install {nginx-full,mariadb-{server,client},php,php-{fpm,mysql,curl,xml,mbstring,bcmath,gd,cli,zip}}
- **Créez les répertoires, monter, régler les permissions, démarrer et activer le service NGINX** :nicolas@chateau:~$ sudo mkdir -p /var/{www,lib/geneweb}
nicolas@chateau:~$ sudo mount -a
nicolas@chateau:~$ sudo usermod -aG www-data $USER
nicolas@chateau:~$ sudo chown -R www-data:www-data /media/serveur/srv/www/
nicolas@chateau:~$ sudo chmod -R 2770 /media/serveur/srv/www
nicolas@chateau:~$ sudo nginx
- **Vérifier** :
- **NGINX et MariaDb sont démarrés** :nicolas@chateau:~$ sudo systemctl is-active nginx
active
nicolas@chateau:~$ sudo systemctl is-active mariadb
active
- **Version de php** :nicolas@chateau:~$ php -v
PHP 8.1.2 (cli) (built: Aug 17 2022 13:08:39) (NTS)
- **Connectez-vous à** : [[http://chateau.parc/]]{{ tutoriel:installation:chateau:lemp:lemp_001.jpg?400 |}}
- **php-fpm** :
- **Vérifiez que php-fpm est actif** (adaptez la version en utilisant la touche Tab) :nicolas@chateau:~$ sudo systemctl is-active php8.1-fpm.service
active(PHP-FPM est une alternative à PHP FastCGI)
- **S'il n'est pas actif**, essayez de le démarrer (aidez-vous de l'auto-complétion avec la version trouvée ci-dessus) :nicolas@chateau:~$ sudo systemctl enable php8.1-fpm
Synchronizing state of php8.1-fpm.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable php8.1-fpm
- **Sécurisez MariaDb** :nicolas@chateau:~$ sudo mysql_secure_installation
(...)
Enter current password for root (enter for none):
(...)
Switch to unix_socket authentication [Y/n]
(...)
Change the root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
(...)
Remove anonymous users? [Y/n]
(...)
Disallow root login remotely? [Y/n]
(...)
Remove test database and access to it? [Y/n]
(...)
Reload privilege tables now? [Y/n]
(...)
- Au début, répondez Entrée car il n'y a pas de mot de passe
- puis donnez-en un.
- Acceptez toutes les réponses proposées.
===== Autres étapes =====
- **Hôtes virtuels** :
- **Sauvegardez ''/etc/nginx/sites-available/default'', restaurez les fichiers du répertoire ''/etc/nginx/sites-available/'' et le fichier ''/etc/nginx/sites-available/default''** :
nicolas@chateau:~$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.dist
nicolas@chateau:~$ sudo cp /media/l-reservoirs/svg/2022-08-31/chateau/etc/nginx/sites-available/* /etc/nginx/sites-available/
nicolas@chateau:~$ sudo cp /etc/nginx/sites-available/default.dist /etc/nginx/sites-available/default
- **Repérez le nom exact du fichier phpX.Y-fpm.sock** :nicolas@chateau:~$ ls -l /var/run/php/
...
srw-rw---- 1 www-data www-data 0 août 17 10:20 php8.1-fpm.sock
...Ici : php**8.1**-fpm.sock
- **Hôte virtuel par défaut** :
- **Éditez avec les droits d'administration le fichier /etc/nginx/sites-available/default** pour modifier la section server comme ceci :
- **Ajoutez index.php** sur la ligne index
- **Modifiez la ligne mentionnant phpX.Y-fpm.sock** avec le bon numéro de version (ici, php8.1-fpm.sock) :
# Default server configuration
#
server {
...
index index.php index.html index.htm index.nginx-debian.html;
...
location ~ \.php$ {
...
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
...
}
...
}
- **[[tutoriel:installation:chateau:lemp:fichiers:default:start|]]**
- **Autres hôtes virtuels**: Faites de même avec les autres fichiers du répertoire sites-available
- **[[tutoriel:installation:chateau:lemp:fichiers:localhost:start|]]**
- **[[tutoriel:installation:chateau:lemp:fichiers:chateau.parc:start|]]**
- **[[tutoriel:installation:chateau:lemp:fichiers:nfrappe.fr:start]]**
- **Activez les hôtes virtuels** :nicolas@chateau:~$ sudo ln -s /etc/nginx/sites-available/localhost /etc/nginx/sites-enabled/localhost
nicolas@chateau:~$ sudo ln -s /etc/nginx/sites-available/chateau.parc /etc/nginx/sites-enabled/chateau.parc
nicolas@chateau:~$ sudo ln -s /etc/nginx/sites-available/nfrappe.fr /etc/nginx/sites-enabled/nfrappe.fr
- **Testez la configuration et relancez nginx** :nicolas@chateau:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
nicolas@chateau:~$ sudo nginx -s reload
===== Conclusion =====
===== Problèmes connus =====
===== Voir aussi =====
* **(en)** [[http://]]
* **(fr)** [[http://]]
----
//Basé sur << [[http://|ARTICLE]] >> par AUTEUR.//