Linux

apachectl 和 httpd.worker 有什麼區別?

  • December 18, 2010

我的託管服務 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 start

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

我想問三件事:

  1. 這兩種啟動apache伺服器的方式有什麼區別?
  2. 在第一個腳本中,執行哪個執行檔(httpd.workerhttpd.conf其他)?
  3. 為什麼httpd第二個範例中的實例有-k start參數?這是由於apachectl
  1. apachectl是一個包裝器httpd,只是設置一些環境變數並添加更多功能,例如configtest,更詳細的herehttpd.worker就像httpd但啟用了工作模組。
  2. 第一個腳本httpd.worker使用配置文件執行二進製httpd.conf文件。
  3. 正確,將參數apachectl附加到-k start``httpd

引用自:https://serverfault.com/questions/213956