Apache2 is not starting the webserver

apache-2.2

So I run this command:

/etc/init.d/apache2 start

And it says:

* Starting web server apache2 [ OK ]

But! My website still doesn't pull up. And!

service --status-all
 [ - ]  apache2

Whaattt….? What's goin' on? ;(

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

Best Answer

On Linux, this is usually due to high ThreadsPerChild + high or unlimited ulimit -s.

On Linux, the default stack size for each thread is ulimit -s value or 8-10 megabytes -- Apache needs about 512 kilobytes of stack space or less under normal use.

This quickly overruns either 32-bit address space size with TPC near 200+, or if you have system memory limits you can run afoul of them as well.

Set ulimit -s 512 in your "envvars" file shipped alongside apachectl -- note that ThreadStackSize does not help here because that sets a minimum.