启动Apache
在Windows上,Apache通常作为服务运行。有关详细信息,请参阅“将Apache作为服务运行”。
在Unix上,httpd
程序作为守护程序运行,该守护程序在后台连续执行以处理请求。本文档介绍了如何调用httpd
。
Apache的启动方式
如果Listen
配置文件中指定的默认值为80(或低于1024的任何其他端口),则必须具有root特权才能启动apache,以便它可以绑定到该特权端口。服务器启动并执行了一些初步的活动(例如打开其日志文件)后,将启动几个子进程,这些子进程负责侦听和答复客户端的请求。主httpd
进程继续以root用户身份运行,而子进程以特权较低的用户身份运行。这由所选的多处理模块控制。
建议的调用httpd
可执行文件的方法是使用apachectl
控制脚本。该脚本设置某些环境变量,这些变量对于httpd
在某些操作系统下正常运行是必需的,然后调用httpd
二进制文件。apachectl
将通过任何命令行参数传递,因此任何httpd
选项也可以与一起使用apachectl
。您也可以apachectl
通过更改HTTPD
顶部附近的变量来直接编辑脚本,以指定httpd
二进制文件的正确位置以及希望始终存在的任何命令行参数。
httpd
调用它时,要做的第一件事是查找并读取配置文件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服务器已绑定到同一端口时,尝试启动服务器。
有关进一步的故障排除说明,请参阅Apache FAQ。
在启动时开始
如果希望服务器在系统重新引导后继续运行,则应将调用添加apachectl
到系统启动文件(通常rc.local
是目录中的rc.N
文件)。这将以root身份启动Apache。在执行此操作之前,请确保已正确配置服务器的安全性和访问限制。
该apachectl
脚本旨在像标准的SysV初始化脚本一样工作。它可以采取的论点start
,restart
和stop
并将其转化为相应的信号httpd
。因此,您通常可以简单地链接apachectl
到相应的init目录。但是请务必检查系统的确切要求。
附加信息
有关的命令行选项的更多信息httpd
,并apachectl
包含在服务器以及其他支持程序可在对服务器和支持程序页面。还提供了有关Apache发行版随附的所有模块及其提供的指令的文档。