8

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!
Robert Ross
  • 431
  • 2
  • 6
  • 10

3 Answers3

3

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.

covener
  • 1,665
  • 9
  • 15
2

Is this a new Installation or was it previously stable and cannot start back up?

Insufficient memory could be the cause although a "(12)Cannot allocate memory: apr_thread_create: unable to create worker thread" should display if thats the case.

It's more likely that you are exceeding PTHREAD_THREADS_MAX setting within your OS. You could increase that, or lower ThreadsPerChild within Apache.

You are likely using the "Worker" distribution of Apache, the "prefork" may be more appropriate because it uses 1 thread per process, vs "worker" which uses many threads per process.

Sources:

iainlbc
  • 2,694
  • 18
  • 19
1

Take a look at the logs, especially the error_log. That should help. If it doesn't help, try to strace the apache2 command:

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

strace will trace the system calls (the -f flag orders strace to follow child processes as well and the -o flag writes the output to the file output.txt)

creyD
  • 150
  • 5
Marco Ramos
  • 3,100
  • 22
  • 25
  • [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 – Robert Ross May 01 '10 at 21:48
  • what's the strace output? the last lines should be relevant... – Marco Ramos May 01 '10 at 22:47