My hosting service, Webfaction, installs apache start scripts for django/python apps automatically. The installed start script is:
#!/bin/bash
LD_LIBRARY_PATH=/home/mertnuhoglu/webapps/dj02/apache2/lib /home/mertnuhoglu/webapps/dj02/apache2/bin/httpd.worker -f /home/mertnuhoglu/webapps/dj02/apache2/conf/httpd.conf -k start
This script starts an httpd.worker instance:
3364 00:03 8950 /home/mertnuhoglu/webapps/dj02/apache2/bin/httpd.worker
Recently, I followed a tutorial for custom app installation. In this tutorial, start script is defined as:
#!/bin/bash
/home/rocketmonkeys/webapps/django/apache2/bin/apachectl start
This script starts an httpd -k start:
0.0 1620 17462 /home/mertnuhoglu/webapps/django/apache2/bin/httpd -k start
I would like to ask three things:
-
What is the difference between these two ways of starting apache server?
-
In the first script, which executable (
httpd.worker
orhttpd.conf
or something else) is run? -
Why does
httpd
instance in the second example has-k start
parameter? Is this due toapachectl
?
Best Answer
apachectl
is a wrapper overhttpd
and just sets some environment variables and adds further functionality, likeconfigtest
, more in detail here.httpd.worker
is likehttpd
but with the worker module enabled.The first script executes the
httpd.worker
binary with thehttpd.conf
configuration file.Correct,
apachectl
appends the-k start
parameter tohttpd