O Apache2 não está iniciando meu servidor da web

8

Então, eu executo este comando:

/etc/init.d/apache2 start

E diz:

* Starting web server apache2 [ OK ]

Mas! Meu site ainda não aparece. E!

service --status-all
 [ - ]  apache2

O que ....? O que está acontecendo? ; (

[Sat May 01 14:45:18 2010] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat May 01 14:45:18 2010] [notice] Apache/2.2.11 (Ubuntu) PHP/5.3.2 configured -- resuming normal operations
[Sat May 01 14:45:18 2010] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Sat May 01 14:45:18 2010] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Sat May 01 14:45:20 2010] [alert] No active workers found... Apache is exiting!
Robert Ross
fonte
4
logs, por favor! consulte '/var/logs/apache2/error.log' ou outros arquivos no mesmo diretório.
Lajuette
Nada, os logs não dizem nada sobre isso.
Robert Ross
Só para ter certeza, você está executando isso como root ou usando o sudo? ou seja, não é uma conta de usuário normal
David Rickman
Tem certeza de que sua instalação foi bem feita? Digite dpkg --configure -apara garantir que todos os arquivos foram configurados corretamente.
ℝaphink

Respostas:

3

No Linux, isso geralmente ocorre devido a ulimit -s alto ou ThreadsPerChild + alto ou ilimitado.

No Linux, o tamanho padrão da pilha para cada encadeamento é ulimit -s value ou 8-10 megabytes - o Apache precisa de cerca de 512 kilobytes de espaço na pilha ou menos sob uso normal.

Isso substitui rapidamente o tamanho do espaço de endereço de 32 bits com o TPC próximo a mais de 200 ou, se você tiver limites de memória do sistema, também poderá se deparar com eles.

Defina ulimit -s 512 no arquivo "envvars" enviado juntamente com o apachectl - observe que o ThreadStackSize não ajuda aqui porque isso define um mínimo.

covener
fonte
2

Esta é uma nova instalação ou era anteriormente estável e não pode ser reiniciada?

Memória insuficiente pode ser a causa, embora um "(12) não possa alocar memória: apr_thread_create: não é possível criar o thread de trabalho" deve ser exibido se esse for o caso.

É mais provável que você esteja excedendo a configuração PTHREAD_THREADS_MAX no seu sistema operacional. Você pode aumentar isso ou diminuir o ThreadsPerChild no Apache.

Você provavelmente está usando a distribuição "Worker" do Apache, o "prefork" pode ser mais apropriado porque usa 1 thread por processo, versus "worker", que usa muitos threads por processo.

Fontes:

iainlbc
fonte
Obrigado! Mudar para preforkisso resolveu para mim.
Felix Frank
1

Dê uma olhada nos logs, especialmente no error_log. Isso deve ajudar. Se isso não ajudar, tente rastrear o comando apache2:

strace -f -o output.txt /etc/init.d/apache2 start

strace rastreia as chamadas do sistema (o sinalizador -f ordena que o strace siga os processos filhos também e o sinalizador -o grava a saída no arquivo output.txt)

Marco Ramos
fonte
[Sat May 01 14:45:18 2010] [warn] arquivo pid /var/run/apache2.pid sobrescrito - Encerramento imundo da execução anterior do Apache? [Sábado 01 de maio 14:45:18 2010] [aviso] Apache / 2.2.11 (Ubuntu) PHP / 5.3.2 configurado - retomando operações normais [Sábado 01 de maio 14:45:18 2010] [alerta] (11) Recurso temporariamente indisponíveis: apr_thread_create: não foi possível criar segmento de trabalho [Sat 01 de maio 14:45:18 2010] [alerta] (11) Recurso temporariamente indisponíveis: apr_thread_create: não foi possível criar segmento de trabalho
Robert Ross
qual é a saída strace? as últimas linhas devem ser relevantes ...
Marco Ramos