APACHE_CHILD_TERMINATE |
Termine l'enfant Apache |
---|---|
PHP 4.2+ |
Syntaxe
function apache_child_terminate() |
Retour
Valeur | Description |
---|---|
TRUE | Cette valeur permet d'indiquer si Apache est Apache 1, Apache sans multi-processus et que la directive PHP child_terminate est activé. |
FALSE | Cette valeur permet que la condition n'est pas respecté. |
Description
Cette fonction permet d'arrêter un processus d'Apache immédiatement après cette requête.
Algorithme
MODULE APACHE_CHILD_TERMINATE() Vérifier si l'environnement est un serveur Apache avec PHP en mode mod_php SI c'est le cas ALORS Terminer immédiatement le processus fils en cours d'exécution Libérer les ressources associées à ce processus Signaler que le processus est terminé et ne traitera plus de requêtes SINON RETOURNE une erreur indiquant que cette fonction ne peut être appelée FIN SI |
Remarques
- Arrêt d'un processus enfant Apache : La fonction apache_child_terminate demande à Apache de terminer le processus enfant actuel après la fin du traitement de la requête. Cela peut être utile pour libérer des ressources utilisées par un script PHP après une opération gourmande en mémoire ou en microprocesseur.
- Fonction spécifique à Apache : Cette fonction est disponible uniquement lorsque PHP est exécuté comme module Apache (mod_php). Elle ne fonctionne pas si PHP est utilisé en tant que CGI, FPM ou avec d'autres serveurs Web comme Nginx ou IIS.
- Disponibilité restreinte selon la configuration d'Apache : apache_child_terminate n'est disponible que si le serveur Apache est configuré pour utiliser le mode "processus pré-fork" (préférentiellement sur les systèmes Unix). Elle ne fonctionne pas dans d'autres modes comme le mode en processus léger (worker ou event).
- Objectif d'optimisation des ressources : Cette fonction peut être utile dans des scénarios où un script PHP consomme beaucoup de ressources (par exemple, traitement d'images ou manipulation de gros fichiers). En terminant le processus enfant après la requête, Apache peut redémarrer un processus propre, libérant ainsi les ressources allouées.
- Impact sur les performances globales : Bien que cette fonction puisse résoudre des problèmes ponctuels de mémoire ou de ressources, son utilisation fréquente peut réduire les performances globales du serveur, car Apache doit créer un nouveau processus enfant à chaque fois, ce qui est coûteux en termes de temps et de microprocesseur.
- Pas recommandé pour les environnements modernes : Avec l'avènement de solutions comme PHP-FPM et les serveurs Web modernes (comme Nginx), cette fonction est devenue obsolète. Les approches modernes gèrent mieux la réutilisation des processus ou processus léger, rendant apache_child_terminate rarement nécessaire.
- Non portable : Cette fonction n'est pas portable entre différents serveurs Web ou environnements. Les développeurs devraient éviter son utilisation dans des applications destinées à être déployées sur diverses plateformes ou serveurs, car elle pourrait entraîner des erreurs.
- Problème potentiel de compatibilité : Avec certaines versions d'Apache et de PHP, l'utilisation de cette fonction peut provoquer des comportements imprévisibles, comme l'arrêt incorrect de processus ou des fuites de mémoire. Cela rend son usage risqué sans tests approfondis dans l'environnement cible.
Voir également
Serveur ou service logiciel - Apache - Introduction
Index des extensions de fichier - Format de fichier : httpd.conf
Index des extensions de fichier - Format de fichier : .htaccess
Index des extensions de fichier - Format de fichier : .htpasswd
Dernière mise à jour : Dimanche, le 22 mars 2015