个人工具
登录
查看“Serverguide”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“Serverguide”的源代码
来自Ubuntu中文
←
Serverguide
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
===== 4.10.2. 配置 ===== Apache 可以在纯文本配置文件中通过 语句 来配置的。主配置文件叫 apache2.conf。此外,其外配置文件可以用 Include 语句来添加,也可以使用通配符来包含多个配置文件。任何语句都可能被放在这些配置文件的任何一个文件中。修改过的主配置文件只在 Apach2 启动或重启时才能被其识别。 服务器也查看包含 mime 文档类型的文件;该文件名通过 TypesConfig 设置,缺省情况下是mime.types。 缺省的 Apache2 配置文件是 /etc/apache2/apache2.conf。您可以编辑该文件以配置 Apache2 服务器。您可以配置端口号、文档根目录、模块、日志文件及虚拟主机等。 ====== 4.10.2.1. 基本设置 ====== 本部分内容说明 Apache2 服务器基本的配置参数。详情请参阅 Apache2 文档 **** Apache2 提供了一个友好虚拟主机的缺省配置。它配置成单个缺省虚拟主机 (使用 VirtualHost 语句) 。如果您有单个站点,可以修改或直接使用它。如果您有多个站点的话,可以将其作为其它虚拟主机的模板。如果对其不加理会,该缺省虚拟主机将会作为您的缺省网站提供服务,或者如果网站用户所输入的 URL 并没有匹配您任何所定义站点的 ServerName 语句时,将看到该虚拟主机内容。要修改缺省虚拟主机,可以编辑文件 /etc/apache2/sites-available/default。如果您希望配置一个新的虚拟主机或站点,在同一目录中将拷贝该文件并将新文件重命名为您所想要的文件名,如sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite。编辑新文件并用下面的所描述的语句来配置新的站点: **** ServerAdmin 语句指定服务器管理员的邮件地址,缺省值是 webmaster@localhost。应该改成您的邮件地址 (如果您是服务器管理员的话)。如果您的网站有问题,Apache2 将显示包含该邮件地址的错误信息以便报告该问题。在 /etc/apache2/sites-available 目录中您网站的配置文件里可以找到该语句。 **** Listen 语句指定端口以及可选的 IP 地址,Apache2 将在其上监听。如果 IP 地址没有被指定,Apache2 将监听所有指向其所运行机器上的 IP 地址。Listen 语句的缺省值是 80。把其改成 127.0.0.1:80 将使 Apache2 只在您的环回接口上临听以致于它相对于 Internet 不可用。也可改变其监听端口如81,或保持原样以便正常操作。该语句可以在它自己的文件 /etc/apache2/ports.conf 中发现并修改。 **** The ServerName 语句是可选的,它指明您站点要应答什么 FQDN。缺省虚拟主机没有指定 ServName,因为它要应答没有匹配其它虚拟主机 ServerName 语句的所有请求。如果您只获得 ubunturocks.com 域名并希望在您的 Ubuntu 服务器上只作它的主机,那么在您虚拟主机配置文件中的 ServerName 语句值应该是 ubunturocks.com。在您先前创建的新虚拟主机文件 (/etc/apache2/sites-available/mynewsite) 中添加该语句。 您也可能要您的网站响应 www.ubunturocks.com 的请求,因为许多用户会假定 www 前缀是适当的。可以使用 ServerAlias 语句来解决这个问题。您也可以在 ServerAlias 中使用通配符。例如,ServerAlias *.ubunturocks.com 将使您的网站响应任何域名以 .ubunturocks.com 结尾的请求。 **** DocumentRoot 语句指定 Apache 将到哪儿去寻找站点文件,缺省值为 /var/www。没有站点配置在那里,但如果您反注释在 /etc/apache2/apache2.conf 中的 RedirectMatch 语句,请求将被重定向到 /var/www/apache2-default,那里是缺省的 Apache2 站点。在您站点的虚拟主机文件中改变该值,记住在必要时可以创建相应的目录! /etc/apache2/sites-available 目录并 不会 被 Apache2 解析。在 /etc/apache2/sites-enabled 的软链接指向 "可用的" 站点。使用 a2ensite (Apache2 启用站点) 工具可以创建这些软链接,如:sudo a2ensite mynewsite 这里您站点的配置文件是 /etc/apache2/sites-available/mynewsite。同样,a2dissite 工具将用来禁用站点。 ====== 4.10.2.2. 缺省设置 ====== 这部分内容说明 Apache2 服务器缺省设置的配置。举个例子,如果您添加一个虚拟主机,您为该虚拟主机配置的设置将优先于缺省虚拟主机。如果在该虚拟主机的设置中有个语句没有定义,那么将使用缺省值。 **** 当用户在目录名后使用斜杠 (/) 来请求一个目录索引时,The DirectoryIndex 将通过服务器提供缺省页服务。 例如,当一个用户请求 http://www.example.com/this_directory/ 页时,他或她要么得到 DirectoryIndex 页,如果它存在的话;要么得到一个服务器生成的目录列表,如果它不存在且设置了 Indexes 选项的话;要么就得到一个无权访问页,如果它不存在且没有设置 Indexes 选项的话。服务器尝试找到在 DirectoryIndex 语句中所列文件之一,并返回它所找到的第一个。如果它没有找到任何一个文件且该目录设置了 Indexes 选项,服务器将生成并返回一个 HTML 格式的列表,包括该目录中的子目录和文件。缺省值可以在 /etc/apache2/apache2.conf 文件中找到,是 " index.html index.cgi index.pl index.php index.xhtml"。因此,如果 Apache2 在所请求的目录中找到任何一个匹配这些名字的文件,第一个将被显示。 **** ErrorDocument 语句允许您为 Apache 指定一个用于特定错误事件的文件。例如,如果用户请求的资源不存在,那么将引发 404 错误,而在 Apache2 的缺省配置中,文件 /usr/share/apache2/error/HTTP_NOT_FOUND.html.var 将被显示。该文件并不在服务器的 DocumentRoot 中,但在 /etc/apache2/apache2.conf 中有个别名语句将到 /error 目录的请求重定向到 /usr/share/apache2/error/ 中。要查看缺省的 ErrorDocument 语句列表,可以使用命令:grep ErrorDocument /etc/apache2/apache2.conf **** 在缺省状态下,服务器将传输日志记录在文件 /var/log/apache2/access.log 中。您可以在您每个虚拟主机站点的配置文件上用 CustomLog 语句来改变它,或者忽略它以接受在 /etc/apache2/apache2.conf 中指定的缺省设置。您也可以通过 ErrorLog 语句来指定记录错误日志的文件,该文件缺省是 /var/log/apache2/error.log。这些都从传输日志中分离出来以便更好地在您的 Apache2 服务器中发现和解决问题。您也可以指定 LogLevel (缺省值是 "warn") 和 LogFormat (缺省值参见 /etc/apache2/apache2.conf) **** 一些选项是基于每目录而非每服务器的。Option 是这些语句中的一个。Directory 段是被放在类 XML 标记中,如: <pre><nowiki> <Directory /var/www/mynewsite> ... </Directory></nowiki></pre> 在 Directory 段中的 Options 语句接受一个或更多下面的用空格分隔的值 (包括其它): * ExecCGI - 允许执行 CGI 脚本。如果该选项没有设置,则 CGI 脚本将不能执行。 大多数文件不会作为 CGI 脚本运行的。这是非常危险的。CGI 脚本应该位于您 DocumentRoot 目录以外与之分开的目录中,并且只能该目录才有 ExecCGI 选项设置。缺省状态下,CGI 脚本默认位于 /usr/lib/cgi-bin。 * Includes - 允许服务器端包含。服务器端包含允许一个 HTML 文件包含其他文件。这不是一个常用选项。更多信息参见 the Apache2 SSI 指南。 * IncludesNOEXEC - 允许服务器端包含,但 CGI 脚本中的 #exec 和 #include 指令无效。 * Indexes - 如果 DirectoryIndex (如 index.html) 在请求的目录没存在的话,按一定方式显示目录内容列表。 * Multiview - 支持内容协商的多重视图;该选项在缺省状态下出于安全的考虑是被禁用的。参见 Apache2 关于该选项的文档。 * SymLinksIfOwnerMatch - 仅在软连接与其目的文件或目录拥有相同所有者时才使用。 ====== 4.10.2.3. 虚拟主机设置 ====== 虚拟主机允许您在同一台机器上相对不同的 IP 地址、主机名或不同端口号运行不同的服务器。例如,您可以运行使用虚拟主机在同一个 Web 服务器上运行网站 http://www.example.com 和 http://www.anotherexample.com。这一选项适用于缺省虚拟主机和基于 IP 的虚拟主机的 <VirtualHost> 语句,也适用于基于名称的虚拟主机的 <NameVirtualHost> 语句。 虚拟主机的语句设置仅应用于特定的虚拟主机。如果一个语句在服务器范围中设置而没有在虚拟主机设置中定义,那么将使用缺省设置。例如,您可以定义网络管理员的邮件地址而无需为每个虚拟主机都分别定义邮件地址。 为虚拟主机设置 DocumentRoot 语句到包含根文档 (如 index.html) 目录。缺省的 DocumentRoot 是 /var/www。 在 VirtualHost 段中的 ServerAadmin 语句是指用于错误页的页脚中的邮件地址,如果您想在错误页的页脚显示邮件地址的话。 ====== 4.10.2.4. 服务器设置 ====== 这部分内容说明如何配置基本的服务器设置。 LockFile - 当服务器编译时使用了 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 参数时,使用 LockFile 语句来设置 lockfile 的路径。它必须保存在本地磁盘上,它应该设置成缺省值,除非日志目录被定位在 NFS 共享上。如果是这种情况,缺省值应该被改为本地磁盘的位置并且其目录只对 root 用户可读。 PidFile - PidFile 语句设置服务器记录其进程 ID (pid) 的文件。该文件只对 root 用户可读。在大多数情况下,应该保留其缺省值。 User - 用户语句设置被服务器用于回应请求的用户 ID。该设置决定服务器的权限。一些该用户无法访问的文件也无法被您网站的访问者访问。用户缺省值是 www-data。 除非您的确知道您在做什么,否则请不要将 User 设为 root 用户。用 root 作为 User 的值将会在您的 Web 服务器中产生极大的安全漏洞。 Group 语句同 User 语句相似。Group 设置被服务器用于回应请求的用户组。缺省的组也是 www-data。 ====== 4.10.2.5. Apache 模块 ====== Apache 是一个模块化的服务器。这就意味着在核心服务器中只包括最基本的功能。扩展功能可以通过被引导进 Apache 的模块来实现。缺省情况下,基本模块是在编译时被包含进服务器的。如果服务器编译成可以动态引导模块,那么模块可以单独编译,并在任何时候使用 LoadModule 语句来添加。否则,Apache 必须在添加或删除模块时重新编译。Ubuntu 编译 Apache2 时是允许动态引导模块的。配置语句通过将已有模块放置 <IfModule> 块中以便有条件地包含在配置语句中。您可以在您的 Web 服务器上安装和使用额外的 Apache2 模块。您可以用 apt-get 命令来安装 Apache2 模块。如安装 MYSQL 认证的 Apach2 模块,您可以在终端提示符中运行以下命令: <pre><nowiki> sudo apt-get install libapache2-mod-auth-mysql</nowiki></pre> 一旦您安装了模块,模块将出现在 /etc/apache2/mods-available 目录中。您可以使用 a2enmod 命令来启用模块。您也可以使用 a2dismod 命令来禁用模块。一旦您启用该模块,该模块将在 /etc/apache2/mods-enabled 目录中出现。
返回至
Serverguide
。