Debian 11 Bullseye : configuration complémentaire de Nginx et PHP 8 FPM
Sun, 10/31/2021 - 13:50 — geek17Dans la continuité de l'article sur l'installation de notre serveur web Nginx et de PHP 8 FPM, nous allons apporter quelques modifications à notre installation.
Le but est de vous montrer comment procéder pour que vous puissiez ensuite modifier les paramètres qui vous intéressent.
Configuration complémentaire de PHP 8 FPM
Nous allons commencer par configurer PHP 8.0 FPM.
La configuration est eparpillée dans tout un tas de fichier INI... le fichier principal se trouve dans /etc/php/8.0/fpm/php.ini
Mais il y a d'autres fichiers INI dans le dossier /etc/php/8.0/fpm/conf.d, comme vous pouvez le voir dans la page phpinfo de PHP
L'ordre de chargement des fichiers INI est le suivant :
- /etc/php/8.0/fpm/php.ini
- /etc/php/8.0/fpm/conf.d/ * en chargeant les fichiers du dossier par ordre aphabétique : 10-mysqlnd.ini sera donc chargé en premier, puis 10-opcache.ini et ansi de suite
On va donc créer le fichier /etc/php/8.0/fpm/conf.d/99-myconfig.ini de manière à ce que nos paramètres soient chargés en dernier et écrasent les configurations par défaut.
sudo nano /etc/php/8.0/fpm/conf.d/99-myconfig.ini
On crée le fichier 99-myconfig.ini et on modifie les variables ci-dessous :
- date.timezone permet de définir le fuseau horaire de notre serveur
- upload_max_filesize et post_max_size permettent d'augmenter à 32Mo la taille d'un fichier télécharger en POST via PHP.
- error_reporting permet de limiter les infos qui sont enregistrées par défaut dans le fichier de log /var/log/nginx/error.log
[PHP]
upload_max_filesize = 32M
post_max_size = 32M
date.timezone = Europe/Paris
error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
Il y a beaucoup d'autres variables que vous pouvez consulter ici http://php.net/manual/fr/ini.list.php
Configuration complémentaire de Nginx
On ouvre maintenant le fichier de configuration de Nginx (après avoir fait une petite copie de sauvegarde...)
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
sudo nano /etc/nginx/nginx.conf
Dans ce fichier, localisez la zone http { qui contient les variables à modifier ou ajouter.
Pour activer la compression des pages par défaut, on décommente la ligne gzip on; et on ajoute les options gzip_... supplémentaires indiquées ci-dessous.
La commande server_tokens off; permet de masquer la version de Nginx à vos visiteurs (c'est mieux pour la sécurité de votre site).
Et client_max_body_size 32M; autorise Nginx à uploader des fichiers de 32Mo (c'est en lien direct avec la modification PHP réalisée ci-dessus)
...
http {
gzip on;
gzip_static on;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types
text/css
text/javascript
text/plain
text/xml
text/x-js
text/x-json
text/x-component
application/javascript
application/x-javascript
application/json
application/xml
application/xhtml+xml
application/xml+rss
application/atom+xml
font/truetype
font/opentype
image/svg+xml
image/x-icon;
client_max_body_size 32M;
server_tokens off;
...
Pour optimiser les performances réseau, je vous conseille également les paramètres ci-dessous.
Vous devez les copier juste après l'option sendfile on; déja présente dans la config par défaut, toujours dans la section http { du fichier /etc/nginx/nginx.conf
Pour les curieux, allez jeter un oeil sur le site suivant qui explique en détail ces paramètres réseau https://t37.net/optimisations-nginx-bien-comprendre-sendfile-tcp-nodelay-et-tcp-nopush.html
log_not_found off permet de ne pas enregistrer dans les fichiers error_log de nginx les acès aux fichiers non trouvés.
...
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
types_hash_max_size 2048;
log_not_found off;
...
Pour ceux qui veulent allez plus loin, je vous oriente vers la page des options du site de nginx http://nginx.org/en/docs/http/ngx_http_core_module.html
Et je vous conseille également la page suivante qui propose pas mal de d'examples de configuration https://www.digitalocean.com/community/tools/nginx
Vérification
Reste à redémarrer les services PHP 8.0 FPM et Nginx pour activer les modifications.
sudo service php8.0-fpm restart
sudo service nginx restart
Enfin, afficher la page phpinfo() de PHP, vous constaterez la prise en compte de vos nouveaux paramètres.
Vous pouvez maintenant passer à l'installation du serveur de base de MariaDB.
Pour cela, rendez-vous à cette article Debian 11 Bullseye - Installer et configurer MariaDB