PHP · RFC Watch
RFC PHP : le programme php pourrait aussi lancer FPM
Matthieu Napoli a lancé un RFC pour --enable-cli-fpm, une option de compilation qui intégrerait FPM dans l’exécutable php.
FPM serait sélectionné avec --fpm en premier argument ou par un appel sous un nom commençant par php-fpm. Le fonctionnement CLI resterait inchangé. Des mesures de Bref sur AWS Lambda indiquent 70 ms de moins au démarrage à froid d’une application FPM minimale, soit 25 %, et le retrait d’un exécutable d’environ 26 Mo. L’exécutable php-fpm autonome resterait disponible.
Matthieu Napoli a ouvert une discussion RFC autour de --enable-cli-fpm. Cette option de compilation intégrerait la SAPI FPM à l’exécutable php. FPM serait lancé lorsque --fpm apparaît en premier argument, ou lorsque le programme est appelé sous un nom commençant par php-fpm. Les autres appels continueraient d’utiliser la CLI avec son comportement actuel. La construction produirait aussi l’exécutable php-fpm autonome.
php script.php # CLI, as today
php --fpm --nodaemonize -y /etc/php-fpm.conf # FPM
ln -s php php-fpm
./php-fpm --nodaemonize -y /etc/php-fpm.conf # FPM, through a symlinkNapoli a évalué la proposition avec Bref sur AWS Lambda. Le déploiement d’un seul exécutable retirerait de l’environnement l’un des deux binaires d’environ 26 Mo. Cette réduction libérerait de l’espace pour le code applicatif sous la limite de 250 Mo de Lambda. Le démarrage à froid d’une application FPM minimale gagnerait 70 ms, soit 25 %, car le moteur ne serait plus chargé une seconde fois après son chargement par la CLI. Le principe pourrait aussi profiter aux systèmes qui dépendent d’un démarrage rapide ou disposent de peu d’espace disque, notamment les plateformes d’autoscaling et de serverless.
Une seconde question porte sur l’activation de l’option par défaut. Marc avait proposé ce vote lorsque Napoli demandait le statut nécessaire pour présenter le RFC. Napoli sollicite aussi l’avis des mainteneurs de paquets sur un lien symbolique php-fpm pointant vers l’exécutable php combiné. Le paquet FPM ne contiendrait alors plus que les fichiers de configuration et de service. L’implémentation se trouve dans la pull request 23558 de php/php-src, relue jusqu’ici par Jakub et Marc.
Tribune des lecteurs
Pas encore de contributions — lance le débat.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.