como fazer o Apache 2.4 funcionar no modo de trabalhador único por padrão?

3

Estou usando o Apache 2.4 no meu servidor. Meus scripts estão usando muitos comandos system() e precisam trabalhar em um modo de processo.

Quando eu começo o apache usando o comando:

apachetctl -X

(que normalmente é o modo de depuração, que funciona como processo único, se eu não estiver errado), funciona bem. No entanto, se eu iniciar o Apache como daemon do sistema, ele não funciona mais e dá alguns resultados bastante bizarros.

Comentei a seguinte linha em httpd.conf

LoadModule mpm_event_module modules/mod_mpm_event.so

não ajudou, então eu descomentei e dei a seguinte configuração em httpd-mpm.conf file:

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

Mas ainda não funciona. No diretório /etc/httpd/modules/ , também tenho outros módulos relacionados a encadeamentos e processos:

mod_mpm_event.so
mod_mpm_worker.so
mod_mpm_prefork.so

Eu li em docs que eles devem ser pré-compilados no Apache, mas quando eu chamo o comando apachectl -l , tudo que eu vejo é:

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

Então, minha pergunta é a seguinte. Como configurar o Apache 2.4 para funcionar do mesmo modo como se tivesse sido iniciado com o comando apachectl -X . Muito obrigado.

    
por Marek 15.07.2014 / 10:55

1 resposta

1

O que faltou foi ServerLimit definition. Uma vez que eu adicionei, resolveu a questão. Agora todos os comandos system() funcionam bem e eu tenho exatamente o mesmo comportamento que no modo de depuração.

<IfModule mpm_event_module>
    StartServers             1
    MinSpareThreads          1
    MaxSpareThreads          1
    ThreadsPerChild          1
    MaxRequestWorkers        1
    MaxConnectionsPerChild   0
    ServerLimit              1
</IfModule>
    
por 15.07.2014 / 14:19