Apache2 non avvia il mio server web


8

Quindi eseguo questo comando:

/etc/init.d/apache2 start

E dice:

* Starting web server apache2 [ OK ]

Ma! Il mio sito Web non viene ancora visualizzato. E!

service --status-all
 [ - ]  apache2

Whaattt ....? Che sta succedendo? ; (

[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!

4
tronchi, per favore! dai un'occhiata a '/var/logs/apache2/error.log' o altri file nella stessa directory.
lajuette,

Niente, i registri non dicono nulla al riguardo.
Robert Ross,

Solo per essere sicuri, stai eseguendo questo come root o usando sudo? cioè non un normale account utente
David Rickman

Sei sicuro che l'installazione sia ben eseguita? Digitare dpkg --configure -aper assicurarsi che tutti i file siano stati configurati correttamente.
inkaphink,

Risposte:


3

Su Linux, ciò è generalmente dovuto a thread elevatiPerChild + ulimit -s alto o illimitato.

Su Linux, la dimensione dello stack predefinita per ogni thread è il valore di ulimit o 8-10 megabyte - Apache necessita di circa 512 kilobyte di spazio dello stack o meno in normali condizioni d'uso.

In questo modo si superano rapidamente le dimensioni dello spazio degli indirizzi a 32 bit con TPC vicino a 200+ o se si hanno limiti di memoria di sistema, è possibile eseguirne anche una violazione.

Imposta ulimit -s 512 nel tuo file "envvars" fornito insieme ad apachectl - nota che ThreadStackSize non aiuta qui perché imposta un minimo.


2

Si tratta di una nuova installazione o era precedentemente stabile e non è possibile eseguire il backup?

Memoria insufficiente potrebbe essere la causa, sebbene un "(12) Impossibile allocare memoria: apr_thread_create: impossibile creare il thread di lavoro" dovrebbe essere visualizzato in questo caso.

È più probabile che stai superando l'impostazione PTHREAD_THREADS_MAX nel tuo sistema operativo. Potresti aumentarlo o abbassare ThreadsPerChild in Apache.

Probabilmente stai usando la distribuzione "Worker" di Apache, il "prefork" potrebbe essere più appropriato perché usa 1 thread per processo, contro "worker" che utilizza molti thread per processo.

fonti:


Grazie! Passando a preforkrisolto questo per me.
Felix Frank,

1

Dai un'occhiata ai registri, in particolare error_log. Questo dovrebbe aiutare. Se non aiuta, prova a rintracciare il comando apache2:

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

strace traccerà le chiamate di sistema (il flag -f ordina allo strace di seguire anche i processi figlio e il flag -o scrive l'output nel file output.txt)


[Sab 01 Mag 14:45:18 2010] [avvertire] file pid /var/run/apache2.pid sovrascritto - Arresto impuro della precedente esecuzione di Apache? [Sab 01 Mag 14:45:18 2010] [avviso] Apache / 2.2.11 (Ubuntu) PHP / 5.3.2 configurato - ripresa delle normali operazioni [Sab 01 Mag 14:45:18 2010] [avviso] (11) Risorsa temporaneamente non disponibile: apr_thread_create: impossibile creare il thread di lavoro [Sab 01 Maggio 14:45:18 2010] [avviso] (11) Risorsa temporaneamente non disponibile: apr_thread_create: impossibile creare il thread di lavoro
Robert Ross

qual è l'output di strace? le ultime righe dovrebbero essere pertinenti ...
Marco Ramos,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.