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!
apache-2.2
Robert Ross
fuente
fuente
dpkg --configure -a
para asegurarse de que todos los archivos se hayan configurado correctamente.Respuestas:
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.
fuente
¿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:
fuente
prefork
resuelto esto por mí.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)
fuente