配置 Apache

为了使得对不同模块的安装尽量简单,MandrakelinuxADVX Apache 版本将配置文件分成许多部分。

所有配置文件都位于 /etc/httpd/ 目录中。

您会找到:

我们将一节一节地解释各个配置文件。

与版本相关的配置文件

主配置文件依赖于版本:

  • 对于 1.3 系列,称为 httpd.conf

  • 对于 Apache + Mod_perl,称为 httpd-perl.conf

  • 对于 2.0 系列,称为 httpd2.conf

在这一文件中,有一个配置参数十分重要:ServerName

您应该删除注释符,并把 localhost 改为您服务器的真实域名。您不能自造一个,必须要有相应的 DNS 条目。如果您使用 ADSL 或者其它的动态 IP 连接,您可以使用 dyndnsnoip 或是其它相同的服务以为您的服务器提供 DNS。如果您的服务器将用于 Intranet(内部网)中的私有网络,您可以使用 IP 代替域名。

除非您知道您在做什么,请不要修改该配置文件的其它部分。尤其,如果您更改了 DocumentRoot 参数,那您在随后安装附加网页程序的时候会有问题。因为它们都被配置为安装到 /var/www/html/

如果您想要调整您的 Web 服务器的性能,您可以查看 StartServersMaxClients 参数。繁忙的站点可能会需要增加这些值。这会需要更多的内存,但是可以在同一时刻响应更多的请求。

通用配置文件

通用配置文件(commonhttpd.conf)由所有版本使用。它包含了各个网页目录的权限、日志的格式、别名、图标和文件关联、语言协定、出错页面等。

[Tip]提示

如果您在文献中看到应该在 httpd.conf 添加某些行,请将其添加到 commonhttpd.conf

虚拟主机文件

如果您查看了 httpd.confhttpd2.conf、或 httpd-perl.conf,您会发现它们包含了 conf/vhosts/Vhosts.conf,而其中包括额外的两个参数:DynamicVhostsVirtualHomePages

如果您查看 /etc/httpd/conf/vhosts/Vhosts.conf,您会发现两个虚拟主机的示例。第一个是基于 IP 的,而第二个是 Named VirtualHosts(虚拟域名主机)

第一个示例用于您有多个 IP 地址的情况下,例如,分别对内部网的内部地址和普通外部网站的外部地址。

第二个示例用于您只有一个 IP 地址却希望配置多个网站的情况。此时,您将期望使用的 IP 地址指定为虚拟域名主机(Named Virtual Host),而后就可以对同一 IP 通过不同的服务器域名访问多个虚拟主机。

例如:

NameVirtualHost 192.168.2.1
<VirtualHost 192.168.2.1>
ServerName accounting.mycompany.com
ServerPath /accounting
DocumentRoot /home/accounting
</VirtualHost>
<VirtualHost 192.168.2.1>
ServerName sales.mycompany.com
ServerPath /sales
DocumentRoot /home/sales
</VirtualHost>

当浏览器请求访问 accounting.mycompany.com 时,Web 服务器将会查找 /home/accounting/ 目录并发送其中的 HTML 页面。当浏览器请求访问 sales.mycompany.com 时,它会查找 /home/sales/ 目录。

使用 ServerPath 是为了与旧的浏览器(例如 Netscape 2.0Internet Explorer 3.0)兼容,它们不能访问虚拟域名主机。在这种情况下,这些旧的浏览器的用户可以通过 www.mycompany.com/sales 访问相应网站。

DynamicVhosts.conf 文件对于大学等需要有多个网站的公司和组织十分有用。在此情形下,您可以将每一个网站放在同一个目录下,而 Apache 会自动激活域名。例如,您可以有 /www/hosts/www.company1.com/www/hosts/www.company2.com 等。

VirtualHomePages.conf 文件用于自动建立类似 user1.company.comuser2.company.comuser3.company.com 等的网站。这需要在您的域名中设置一个通配符以便对 *.company.com 的访问会连到 Apache Web 服务器。

MIME 类型

/etc/httpd/conf/apache-mime.types 文件控制了对于特定的文件扩展名浏览器将会打开什么程序。例如,如果您有 Microsoft Excel® 文件(".xls"),该文件将通知浏览器使用 application/msexcel 这一 MIME 类型对应的默认应用程序。

文件类型检测机制

有时候,文件没有扩展名。例如,对于某个叫做 "Company Sales Presentation 2004" 的文件,服务器又应该怎么办呢?

/etc/httpd/conf/magic 文件包含分析文件类型的"提示"。如果该文件开头为百分号和感叹号,那它可能就是一个 Postscript 文件。不过,如果它开头为 "RIFF",那么它可能就是一个 Microsoft® .wav 文件。这样一来,就能通知浏览器调用正确的应用程序处理该类型的文件。

与模块相关的文件

每一个 Apache 2.0 会在 /etc/httpd/conf.d/ 目录中保存一个文件。每个这样的文件名开头为一个数字,它确定了该模块配置包含到 Apache 配置时的顺序。

例如,SSL 的配置在 40_mod_ssl.conf 文件中,而 PHP 的配置在 70_mod_php.conf 文件中。这表示 SSL 的配置将先于 PHP 的被包含。

这些文件中都默认包括了能够正确起作用的配置,除了像 30_mod_proxy.conf 等文件,它们中的某些行出于安全目的而被注释掉了,或是需要进一步的配置才能起作用。