Comment passer des variables d’environnement à PHP-FPM ?

Comment passer des variables environnements à PHP-FPM

Qu'avons-nous dans la boîte ?

Sur un serveur Web Linux avec PHP-FPM, comment rendre disponibles les variables d’environnement au moteur de scripts PHP ? La réponse dans ce tutoriel !

Sur un serveur Linux, il y a plusieurs manières de déclarer des variables d’environnement, et chaque application peut adopter un comportement différent et gérer les variables d’environnement d’une certaine façon. Par exemple, si l’on prend l’exemple du serveur Web Apache2, il s’appuie sur un fichier de configuration : /etc/apache2/envvars.

Dans cet exemple, nous allons utiliser un serveur sous Debian 12 avec PHP-FPM 8.2, mais ceci s’applique à d’autres environnements.

1. Configurer PHP-FPM

Connectez-vous à votre serveur Web où PHP-FPM est en place. Avec un éditeur de texte (nano, vi, etc.), vous allez devoir éditer le fichier de configuration « www.conf » de PHP-FPM. Il se situe à cet endroit :

nano /etc/php/8.2/fpm/pool.d/www.conf

Recherchez la ligne suivante :

;clear_env = no
PHP-FPM - Variables environnements

Nous pouvons voir que l’option « clear_env » est commentée et que sa valeur par défaut est « yes« . Ceci signifie, que par défaut, PHP-FPM empêche la lecture des variables d’environnements, et qu’il « réinitialise » en quelque sorte toutes les variables d’environnement. Ainsi, elles ne peuvent pas être lues que ce soit via getenv(), $_ENV ou $_SERVER.

Ceci peut s’avérer gênant dans certains scénarios. Par exemple, lorsqu’il y a besoin de s’appuyer sur un connecteur ODBC car ceci empêche la lecture de la variable LD_LIBRARY_PATH.

Dans ce cas, retirez le caractère « ; » au début de la ligne et veillez à ce que l’option soit définie sur « no ».

clear_env = no

Après avoir enregistré le fichier de configuration, redémarrez PHP-FPM :

systemctl restart php8.2-fpm.service

Voilà, il ne reste plus qu’à tester votre nouvelle configuration !

Si cela ne fonctionne pas, retournez dans le fichier « www.conf » déjà édité précédemment. Sous la directive « clear_env », déclarez votre ou vos variables d’environnement.

Voici quelques exemples de syntaxe (fournis dans le fichier de configuration) :

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp

Enregistrez le fichier, redémarrez PHP-FPM et testez.

2. Conclusion

Suite à la lecture de cet article de la boite à tutoriels, vous êtes capable d’accéder aux variables d’environnement de votre machine Linux au sein des scripts PHP exécutés sur votre serveur Web à l’aide de PHP-FPM !

Ressources :

Vous aimerez aussi...

Laisser un commentaire

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