4 votes

Comment faire en sorte qu'Apache 2.4 fonctionne en mode travailleur unique par défaut ?

J'utilise Apache 2.4 sur mon serveur. Mes scripts consomment beaucoup de system() et ils doivent travailler dans un seul mode de traitement.

Quand je démarre apache en utilisant la commande :

apachetctl -X

(qui est normalement le mode débogage, qui fonctionne comme un seul processus si je ne me trompe pas), cela fonctionne bien. Cependant, si je lance Apache en tant que démon système, cela ne fonctionne plus et donne des résultats assez bizarres.

J'ai commenté la ligne suivante dans httpd.conf

LoadModule mpm_event_module modules/mod_mpm_event.so

cela n'a pas aidé, alors je l'ai décommenté et lui ai donné la configuration suivante dans le fichier httpd-mpm.conf fichier :

<IfModule mpm_event_module>
    StartServers             1
    MinSpareThreads          1
    MaxSpareThreads          1
    ThreadsPerChild          1
    MaxRequestWorkers        1
    MaxConnectionsPerChild   0
</IfModule>

Mais ça ne marche toujours pas. Dans le /etc/httpd/modules/ J'ai également d'autres modules liés au threading et aux processus :

mod_mpm_event.so
mod_mpm_worker.so
mod_mpm_prefork.so

J'ai lu dans la documentation qu'ils sont censés être précompilés dans Apache, mais lorsque j'appelle la commande apachectl -l tout ce que je reçois, c'est ça :

# apachectl -l               
Compiled in modules:
  core.c
  mod_so.c
  http_core.c

Ma question est donc la suivante. Comment configurer Apache 2.4 pour qu'il fonctionne dans le même mode que s'il était lancé avec la commande apachectl -X . Merci beaucoup.

1voto

Marek Points 169

Ce qui manquait, c'était ServerLimit définition. Une fois que je l'ai ajoutée, le problème a été résolu. Maintenant, toutes les system() Les commandes fonctionnent bien et j'ai exactement le même comportement qu'en mode débogage.

<IfModule mpm_event_module>
    StartServers             1
    MinSpareThreads          1
    MaxSpareThreads          1
    ThreadsPerChild          1
    MaxRequestWorkers        1
    MaxConnectionsPerChild   0
    ServerLimit              1
</IfModule>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X