如果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 |
或者在运行apache2ctl的时候指定, apache2ctl –f /usr/local/apache2/conf/httpd.conf。
如果启动阶段一切正常, server进程会从terminal分离, 命令行会提示你输入其它的命令。这时候,就意味着apache httpd server已经正常启动了。然后就可以使用你最常用的浏览器,来访问apache server的测试页面,其位置默认由DocumentRoot指定。
如果你希望在启动操作系统的时候自动启动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的符合链接。