Apache 2 : starting apache

邹英发
2023-12-01

Apache HTTP server 如何启动?

如果Listen directive 在conf文件中指定为默认的80端口(或者小于1024的其他端口),则需要root权限来启动HTTPD进程。当HTTP Server启动之后,并且完成了一些初始化的动作,如打开Apache的日志文件, Apache HTTPD进程会启动一定数量的child processes, 这些child process用来监听端口,或者响应请求。但是这些child process会以稍低的优先级来启动(非root用户权限)。而这些行为是由Multi-Processing Module来配置的。

运行httpd可执行程序的推荐使用apachectl(apache2ctl)控制脚本。这个脚本会设置httpd启动时在不同的OS下正常运行所需要的环境变量。你也可以编辑apachectl脚本,通过修改HTTPD变量来指定httpd可执行程序正确的位置,并且指定httpd启动时你希望指定的命令行参数。

httpd可执行程序运行时的第一件事是定位其配置文件httpd.conf。配置文件也可以在compile阶段指定,查看编译阶段所使用的参数可以通过:

bl25p-6:/etc/apache2# apache2ctl -V
Server version: Apache/2.2.9 (Debian)
Server built:   Apr 20 2010 15:42:00
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture:   64-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/worker"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

或者在运行apache2ctl的时候指定, apache2ctl –f /usr/local/apache2/conf/httpd.conf。

如果启动阶段一切正常, server进程会从terminal分离, 命令行会提示你输入其它的命令。这时候,就意味着apache httpd server已经正常启动了。然后就可以使用你最常用的浏览器,来访问apache server的测试页面,其位置默认由DocumentRoot指定。

 

在OS启动阶段启动Apache Http Server

如果你希望在启动操作系统的时候自动启动Apache Http Server, 你需要在系统的startup 文件当中增加对apache2ctl的调用(通常情况下系统的startup文件为rc.local或者在rc.N下的某个文件)。但是之前请确保你的Apache HTTP server 已经被正确配置了。

此为,apache2ctl按照System V init的脚本接口规范设计,所以它可以接受start,stop,restart等参数,并且将他们转化成适当的信号发送给httpd deamon process。所以,通常你也可以简单的在系统的init.d目录下建立指向apacha2ctl的符合链接。

 类似资料: