由于HTTP协议比较简单,因此Web服务器软件相当多,但是性能、可靠性、功能等都非常优秀的却并不是很多。当前最流行的Web服务器软件是Apache,它基于几年前相当流行的一种Web服务器NCSA-httpd,并增加了很多新的特点,以增加功能和提高效率,因此它的使用非常流行。
Apache的网址为http://www.apache.org,这里可以找到关于Apache的最新源文件和二进制文件、文档和相关的开发计划。这里提到的Apache本身及其相关的模块的源文件,均可以在这个站点中获得。
Apache可以运行在各种操作系统──从Unix到Windows系统上,易于安装和配置,提供了很多较新的特性,例如它支持模块功能,很容易就能通过增加新的模块以增加新的服务器功能。Apache和FreeBSD结合起来,提供了出色的稳定性和性能,非常适合建立重负载的专业Web站点。
在FreeBSD上安装Apache服务器非常容易,可以使用Packages Collection安装A pache服务器的二进制版。然而,如果是基于特殊目的而需要调整Apache支持的模块,就需要重新编译Apache 。重新编译可以使用Ports Collection进行编译和安装。
在Ports Collection中,提供了好几个版本的Apache服务器,其中一些属于Apache 1.2.x版本,而另一些为Apache 1.3版本,即使是同一个Apache版本,也提供了使用了不同模块支持的 Apache。当前应该选择Apache 1.3版本,第一次安装可以选择基本版本apache13,这个版本中没有提供额外的模块支持,此后当正式使用Apache的时候,会需要加入SSL支持和PHP3支持,因此应该选择 apach13-modssl或apache13-php3版本。其中基本版本apache13和apache13-php3 有预编译的二进制软件包。
基本安装
使用Packages Collection或Ports Collection可以轻松安装Apache服务器。安装时将缺省设置文件复制到了/usr/local/etc/apache目录下,除了这些标准的设置文件之外,这些设置文件还有对应的以.default为后缀的备份,如果万一设置文件被破坏,可以使用这些备份来恢复缺省配置文件。而缺省配置文件中的文档目录为/usr/local/www/data,指向随同软件一起安装的apache文档,CGI程序的目录为/usr/local/www/cgi-bin。
在稍早的版本中,缺省配置文件和文档路径并没有直接安装好,而仅仅安装了以.default结尾的备份文件,以及cgi-bin.default,data.default目录。以提醒使用者修改缺省配置文件。将这些.def ault结尾的文件和目录复制为不包括.default后缀的文件和目录就能得到正确的设置。
缺省设置并不一定百分之百保证能启动Apache服务器,缺省设置适合绝大多数情况,但不能保证没有特殊情况发生,例如服务器没有正确的配置名字等。一般情况下,不需要更改缺省设置就可以直接启动Apache服务器了,但即使如此,使用者也需要根据自己的实际情况更改设置文件,例如修改管理员的电子邮件地址等。如果Apache服务器不能正常启动,也没有关系,这仅仅说明缺省设置不适合该计算机的实际情况,可以通过调整设置参数来进行修正。
Ports Collection安装的缺省设置文件并不是Apache软件包中直接附带的模板文件,而是P ort的维护者根据FreeBSD环境加以更改之后的设置,因此适合大部分FreeBSD环境,基本上不进行改动就能启动Apache。
安装完毕之后,就可以尝试启动Apache服务器了,通常可以使用apachectl程序来完成这个操作。
# /usr/local/sbin/apachectl start
如果安装的apache为较早的1.2.x系列版本,那么可能不存在apachectl这个管理命令,可以通过安装到/usr/local/etc/rc.d目录中的启动脚本apache.sh来启动Apache。或者直接执行Apache服务器的守护进程程序──httpd。
# /usr/local/etc/rc.d/apache.sh start
在提供了apachectl命令的Apache 1.3版本,apache.sh实际是调用这个命令启动和停止服务器。
当服务器启动之后,就可以使用浏览器来查看服务器是否回应http请求,可以使用X Window下的Net scpe Navigtor,然而更方便的工具为字符界面的浏览器lynx。对于进行管理和维护来讲,还可以使用te lnet向Web服务器直接发送控制命令,为了验证服务器是否正常运行,不需要请求某个文档,只需要发送HEAD请求就可以了。
$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD /http/1.0
HTTP/1.0 200 OK
Date:
如果服务器能象这个例子一样回应对80端口的连接请求,并对用户输入的请求命令返回一定的结果,那么就说明A pache服务器安装和运行一切正常。此时如果使用浏览器访问这个使用缺省设置的服务器,那么就将看到Apache的文档。这是因为缺省页面被设置为了Apache文档,此后Web管理员可以将/usr/local/www/data 目录更改为真正要对外发布的网页文档目录,使得系统真正能对外提供Web服务。