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!

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.


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:


¡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)


[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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.