Apache HTTP服务器 2.0版本
Windows操作系统中,Apache在Windows NT下一般以服务方式运行,而在Windows 95下则以控制台程序方式运行。详情请参见在Windows下运行Apache。
Unix操作系统中,httpd程序作为一个守护进程运行,在后台不断处理请求。本文档描述了如何调用httpd
。
如果配置文件中Listen
的定义为默认的80端口(或其他1024以下的端口),那么启动Apache将需要root权限以将它绑定在这个特权端口上。一旦服务器开始启动并完成了一些诸如打开日志文件之类的操作,它将创建很多子进程来完成一些诸如侦听和回应客户端请求的工作。httpd主进程仍然以root用户的权限运行,而它的子进程将以一个较低权限的用户运行。
这将由你选择的多道处理模块进行控制。
启动httpd
执行文件的推荐方法是使用apachectl控制脚本。
此脚本设置了在某些操作系统中正常运行httpd
所必需的环境变量。
apachectl
会传递命令行的所有参数,
因此所有httpd
的选项多半也可以用于apachectl
。
你可以直接修改apachectl
脚本,
改变头部的HTTPD
变量使之指向httpd
文件的正确位置,
也可以设置任意命令行参数,使之总是有效。
httpd被调用后第一个要做的事情是找到并读取
配置文件httpd.conf
。此文件的位置是在编译时设定的,但也可以象下面这样在运行时用
-f
命令行可选项来指定:
/usr/local/apache/bin/httpd -f
/usr/local/apache/conf/httpd.conf
如果启动时一切都很正常,服务器将与终端分离并几乎同时出现平时的命令行提示符。这代表着服务器已经启动并开始运行。然后你就可以用你的浏览器去连接你的服务器来查看DocumentRoot
目录下的测试文档及其页面链接里的其它文档的本地拷贝。
如果Apache在启动过程中产生了致命错误,它将在退出前把描述这个错误的信息显示在终端上或者写入到ErrorLog
中。一个最常产生的错误信息是“Unable
to bind to Port ...”。这个信息主要由以下原因造成
:
更多问题的解决办法,请参见Apache的FAQ。
如果你希望你的服务器在系统重启后仍保持运行状态,
你应该把httpd或者apachectl的调用加入到你的系统启动文件中
(典型文件为rc.local
或rc.N
目录下的某一文件)。
这将会以root权限启动Apache。当然,在此之前,
你必须保证你的服务器已经完成了安全和访问权限的设定。
apachectl
脚本被设计为可以用作SysV初始化脚本,
它接受start
, restart
, 和stop
参数,
并把它们转译为httpd
的对应信号,
所以通常都可以连接apachectl
到适当的初始目录,
但是需要检查你的系统对此的精确要求。