Apache2 no está iniciando mi servidor web

8

Entonces ejecuto este comando:

/etc/init.d/apache2 start

Y dice:

* Starting web server apache2 [ OK ]

¡Pero! Mi sitio web aún no se abre. ¡Y!

service --status-all
 [ - ]  apache2

Whaattt ...? ¿Qué pasa? ; (

[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
fuente
44
troncos, por favor! eche un vistazo a '/var/logs/apache2/error.log' u otros archivos en el mismo directorio.
lajuette
Nada, los registros no dicen nada al respecto.
Robert Ross
Solo para asegurarse, ¿está ejecutando esto como root o está usando sudo? es decir, no es una cuenta de usuario normal
David Rickman
¿Estás seguro de que tu instalación está bien hecha? Escriba dpkg --configure -apara asegurarse de que todos los archivos se hayan configurado correctamente.
phaphink

Respuestas:

3

En Linux, esto generalmente se debe a ThreadsPerChild + ulimit -s alto o ilimitado.

En Linux, el tamaño de pila predeterminado para cada subproceso es el valor de ulimit -s o 8-10 megabytes: Apache necesita aproximadamente 512 kilobytes de espacio de pila o menos bajo uso normal.

Esto supera rápidamente el tamaño del espacio de direcciones de 32 bits con TPC cerca de 200+, o si tiene límites de memoria del sistema, también puede enfrentarse a ellos.

Establezca ulimit -s 512 en su archivo "envvars" enviado junto con apachectl; tenga en cuenta que ThreadStackSize no ayuda aquí porque eso establece un mínimo.

Covener
fuente
2

¿Es esta una instalación nueva o era anteriormente estable y no se puede iniciar una copia de seguridad?

Memoria insuficiente podría ser la causa, aunque debería aparecer un "(12) No se puede asignar memoria: apr_thread_create: no se puede crear el subproceso de trabajo" si ese es el caso.

Es más probable que esté excediendo la configuración PTHREAD_THREADS_MAX dentro de su sistema operativo. Podría aumentar eso o disminuir ThreadsPerChild dentro de Apache.

Es probable que esté utilizando la distribución "Trabajador" de Apache, el "prefork" puede ser más apropiado porque usa 1 subproceso por proceso, frente a "trabajador" que usa muchos subprocesos por proceso.

Fuentes:

iainlbc
fuente
¡Gracias! Cambiando a preforkresuelto esto por mí.
Felix Frank
1

Eche un vistazo a los registros, especialmente el error_log. Eso debería ayudar. Si no ayuda, intente aplicar el comando apache2:

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

strace rastreará las llamadas al sistema (el indicador -f ordena que strace siga también los procesos secundarios y el indicador -o escribe la salida en el archivo output.txt)

Marco Ramos
fuente
[Sáb 01 de mayo 14:45:18 2010] [advertir] archivo pid /var/run/apache2.pid sobrescrito - ¿Cierre impuro de la ejecución anterior de Apache? [Sab 01 de mayo 14:45:18 2010] [aviso] Apache / 2.2.11 (Ubuntu) PHP / 5.3.2 configurado - reanudando las operaciones normales [Sat 01 de mayo 14:45:18 2010] [alerta] (11) Recurso no disponible temporalmente: apr_thread_create: no se puede crear un subproceso de trabajo [sáb 01 de mayo 14:45:18 2010] [alerta] (11) Recurso no disponible temporalmente: apr_thread_create: no se puede crear un subproceso de trabajo
Robert Ross
¿Cuál es la salida de strace? las últimas líneas deberían ser relevantes ...
Marco Ramos