多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 启动Apache 在Windows NT/2000/XP/2003操作系统中,Apache一般以服务方式运行,或者在Windows 95/98/ME中以控制台程序方式运行。详情请参见以[服务方式运行Apache](#calibre_link-422)和[以控制台程序方式运行Apache](#calibre_link-372)。 在Unix操作系统中,`httpd`程序作为一个守护进程运行,在后台不断处理请求。本文档描述了如何调用`httpd` 。 ## Apache是怎样启动的 如果配置文件中`Listen`定义的是默认的80端口(或1024以下),那么启动Apache将需要root权限以将它绑定在特权端口上。一旦服务器开始启动并完成了一些诸如打开日志文件之类的准备操作,它将创建很多_子进程_来完成一些诸如侦听和回应客户端请求的工作。`httpd`主进程仍然以root用户的权限运行,而它的子进程将以一个较低权限的用户运行。这将由你选择的[多路处理模块](#calibre_link-252)进行控制。 调用`httpd`可执行文件的推荐方法是使用`apachectl`控制脚本。此脚本设置了在某些操作系统中正常运行`httpd`所必需的环境变量,然后调用`httpd`二进制文件。`apachectl`会传递命令行的所有参数,因此所有用于`httpd`的选项多半也可以用于`apachectl` 。你可以直接修改`apachectl`脚本,改变首部的`HTTPD`变量使之指向`httpd`可执行文件的正确位置,也可以设置任意的命令行参数,使之_总是_有效。 `httpd`被调用后第一件要做的事情就是找到并读取[配置文件](#calibre_link-255)`httpd.conf` 。此文件的位置是在编译时设定的,但也可以象下面这样在运行时用 `-f` 选项来指定: ``` /usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf ``` 如果启动过程一切正常,服务器将与终端分离并几乎立即出现命令行提示符。这表示服务器已经启动并开始运行。然后你就可以用你的浏览器去连接你的服务器来查看`DocumentRoot`目录下的测试文档及其页面链接里的其它文档的本地副本。 ## 启动时发生错误 如果Apache在启动过程中发生了致命错误,它将在退出前把描述这个错误的信息显示在终端上或者写入到`ErrorLog`中。一个最常产生的错误信息是"`Unable to bind to Port ...`",这主要由以下原因造成: * 想由一个特权端口启动服务但没有以root用户运行 * 启动服务时已经有另外的Apache实例在运行或其他的web服务器已经绑定了同样的端口 更多问题的解决办法,请参见[常见问题](#calibre_link-3)。 ## 随系统启动时启动 如果你希望你的服务器在系统重启后仍保持运行状态,你应该把`apachectl`的调用加入到你的系统启动文件中(通常为`rc.local`文件或`rc.N`目录下的某一文件)。这将会以root权限启动Apache。当然,在此之前,你必须保证你的服务器已经完成了安全和访问权限的设定。 `apachectl`脚本被设计为可以用作SysV初始化脚本,它接受`start`、`restart`、`stop`参数,并把它们翻译为`httpd`对应的信号,所以通常都可以将`apachectl`连接到适当的初始目录,但是需要检查你的系统对此的精确要求。 ## 额外信息 关于`httpd`和`apachectl`以及其他相关支持程序的命令行选项的详细信息请参见[服务器和支持程序](#calibre_link-104)页面。其中还包括所有的随Apache发行包发布的[模块](#calibre_link-1)和它们提供的[指令](#calibre_link-2)的文档。