Apache/zh-cn

Apache HTTP Server 是web 服务器. 它是当前因特网上使用最为普遍的 web 服务器之一. ]]

多进程模块
如果要使用 Apache 事件或工作 MPM，请启用 Apache 线程 USE 标志：

如果你要使用 Apache event MPM 模式, 把下面的内容添加到 make.conf 里面:

如果你要使用 Apach worker MPM 模式, 把下面的内容添加到 make.conf 里面:

如果未选择多处理模块 (MPM)，则使用默认 MPM. 默认 MPM 取决于平台功能（如线程支持）， 在 Apache 官方文档阅读更多内容.

然后我们安装Apache：

Global USE 支持
开启 global USE 标志可以给Apache多提供一些其他的软件包. 可能在安装时，如果Apache依赖其他软件时，他们就会被安装.

配置USE变量以后，更新系统来使得某些配置生效.

文件
在系统里，Apache2有两个主要的配置文件：


 * Gentoo 的 Apache2 初始化配置文件


 * Apache2 服务器的常规配置文件

位于 ，他是 Gentoo 初始化脚步配置的文件. 唯一生效的一行是 APACHE2_OPTS :

这个定义将解释使用 语句激活或停用整个配置的各种配置文件某些部分的选项. 下文将详细介绍.

文件是Apache服务器的常规配置文件. 实际上这个文件只是一个入口点的配置. 完全的配置分散在目录中的许多文件中，使用 指令组合在一起. 例如，中的语句 旨在将所有包含在文件夹中的文件组合起来，其文件名以 结尾.

考虑到上面小节中的描述，如果选项使用位于 文件中的 APACHE2_OPTS  变量的   标记. 那么作为模块配置文件 几乎总是以 ，在中的一个文件的内容，与其余部分的配置组合. 配置文件是此规则的例外，因为它不以 语句开头，因此始终包含在生成的配置中.

默认值
在全新安装Apache服务器之后，由不同配置文件的集合生成的配置如下. 从入口点开始.

新的开始
在上面的初始配置中可以看到，安装的虚拟主机的 目录是，其服务器名称是“localhost”. 此外，在 目录中提供了一个index.html文件，以检查一切是否正确安装，打开浏览器访问http://localhost/.

"It works!"的字样应该被打印到您的屏幕上.

开启 mod_security
ModSecurity is a rule-based web application firewall that monitors web service traffic, to block attacks exploiting known vulnerabilities.

安装 :

要开启的 模块，更改 APACHE2_OPTS 的值:

通过编辑 和  文件来控制这个模块. 文件 包含推荐的配置 https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#A_Recommended_Base_Configuration. 将基本配置复制到 并根据需要调整设置. 将文件 解压到合适的位置，例如，调整它，并将解压后的文件包含在  中. 最后，重启 Apache. 在网站的 Apache 日志文件中查找错误并采取相应措施.

开启 PHP 支持
安装 PHP 附带  USE 标志，然后开启PHP模块:

在测试PHP模块是否工作前，检查文件 是否存在，是否包含以下默认值.

如果不存在请手动创建一个.

要验证PHP模块是否启动，创建个测试页面：

现在，把他重命名为 ，然后打开测试页面：

应该可以看到一个描述PHP配置的表格.

修改 PHP 版本
要更改Apache处理的PHP版本，首先列出  服务器应用程序编程接口（SAPI）的可用版本：

改变选择：

正如前面上显示，替换 在上面的例子中输出请求的值：.

虚拟主机
对于每个虚拟主机提供一个 ，它是由Apache守护进程控制的目录. 在目录中添加使用此 和虚拟主机服务器的虚拟主机配置文件. 不要忘了在添加一个该域名的条目.

要在虚拟主机文件上分配apache user/group 所有权，请使用 ，如以下示例所示：

下面是两个示例虚拟主机的例子，一个用于domainname1.com，一个用于domainname2.com. 注意使用不同的 和 指令，即时主机本身保持不变：

建议也提供基于IP的虚拟主机. 这允许管理员尝试为通过其IP地址访问网站的用户发送消息：

加入虚拟主机后，服务器需要（正常）重新启动以使新站点变为活动状态.

通过fcgid 开启 PHP
安装 和. PHP 这个包需要有  这个USE标志:

编辑 :

创建所需要的目录：

软链接到PHP wrapper：

开启 模块：

最后重启并检查. 应该被设置为 CGI/FastCGI.

在Apache 2.4上通过 mod_proxy_fcgi开启PHP-FPM
必须满足以下条件才能通过mod_proxy_fcgi启用PHP-FPM：
 * >= PHP 5.3
 * >= Apache 2.4

此外，Apache 2.4中的功能的可用性有一些限制：
 * >= Apache 2.4.9,如果想了解communicate with PHP-FPM over UNIX sockets
 * >= Apache 2.4.10,如果想使用 SetHandler 来替代 ProxyPassMatch.

以下配置将仅适用于Apache 2.4.10及更高版本. 它依赖于 指令，并放在主服务器配置或 中. UNIX socket的位置由 配置文件中的 指令确定，允许为每个站点或函数指定单独的池.

在下面的例子中  被放在Apache的PHP模块配置文件中：

或者，您可以使用ProxyPassMatch - 这是唯一的选项，如果Apache版本在2.4.0和2.4.8之间.

默认情况下， 指令未设置为socket. 首先创建socket文件的目录：

接下来，像下面这样更新:

同时开启 和   模块:

Web frameworks and Apache
Some of the web frameworks that can work with Apache are covered on the wiki:


 * Rails
 * Django

HTTPS with TLS certificates from Let’s Encrypt
It is important that any public-facing web server provide "secure" HTTPS access. Often, sites providing HTTPS will be configured to redirect HTTP requests to the HTTPS equivalent URL.

Let’s Encrypt is a not-for-profit certificate authority that issues free TLS certificats. is a utility available in the Gentoo repository for easily requesting and installing TLS certificates, and automatically setting up HTTPS access for Apache.

See the Let’s Encrypt article for information about using. The EFF also have specific instructions on using on Gentoo to configure Apache.

OpenRC
开启Apache服务

将Apache添加至default runlevel：

重启Apache服务

重新读取Apache配置文件：

systemd
开启Apache服务

将Apache添加至default runlevel：

重启Apache服务

资源
Apache很难配置的很好. 下面是一些可能有用的资源，如果你遇到错误可以看看.


 * Troubleshooting guide

测试
验证Apache上一个IP端口是否开启并监听：

测试Apache服务器在localhost上是否正常工作：

可以使用+ 或者 来中断测试.

apr_sockaddr_info_get failed for 
错误:

apache2: apr_sockaddr_info_get failed for System_Hostname

解析：

发生这种情况时，请将主机名添加到 文件中：

外部资源

 * Slicehost article: Installing Apache on Gentoo
 * Slicehost article: Apache configuration files on Gentoo
 * Slicehost article: Configuring the Apache MPM on Gentoo
 * Slicehost article: Apache configuration on Gentoo
 * Slicehost article: Apache Virtual Hosts on Gentoo
 * Slicehost article: Enabling and using apache's mod_status on Gentoo
 * apache.org documentation
 * Apache2 mod_pagespeed