apachectl 和 httpd.worker 有什么区别?

apachectl 和 httpd.worker 有什么区别?

我的托管服务 Webfaction 会自动为 django/python 应用安装 apache 启动脚本。已安装的启动脚本为:

#!/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

此脚本启动httpd.worker实例:

 3364       00:03  8950 /home/mertnuhoglu/webapps/dj02/apache2/bin/httpd.worker

最近,我关注了教程用于自定义应用程序安装。在本教程中,启动脚本定义为:

#!/bin/bash
/home/rocketmonkeys/webapps/django/apache2/bin/apachectl start

此脚本启动httpd-k启动

 0.0  1620 17462 /home/mertnuhoglu/webapps/django/apache2/bin/httpd -k start

我想问三件事:

  1. 这两种启动apache服务器的方式有什么区别?

  2. 在第一个脚本中,运行哪个可执行文件(httpd.worker或其他文件)?httpd.conf

  3. 为什么httpd第二个示例中的实例有-k start参数?这是由于 吗apachectl

答案1

  1. apachectl是一个包装器httpd,只设置一些环境变量并添加进一步的功能,例如configtest,更详细这里.httpd.worker就像httpd但是工作者模块已启用。

  2. 第一个脚本httpd.worker使用httpd.conf配置文件执行二进制文件。

  3. 正确,将参数apachectl附加-k starthttpd

相关内容