Ajouter un commentaire

Debian 11 Bullseye : configuration complémentaire de Nginx et PHP 8 FPM

Dans 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 :

  1. /etc/php/8.0/fpm/php.ini
  2. /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

You must have Javascript enabled to use this form.