Apache 服务器配置
Apache Server Configs 是配置片段的集合,可以帮助您的服务器提高网站的性能和安全性,同时还确保使用正确的内容类型来提供资源,并且在需要时甚至跨域都可以访问这些资源。
入门
有两种获取Apache服务器配置的选项:
- 如果您有权访问 main server configuration
file
(通常称为
httpd.conf
), 则应以这种方式配置 Apache。这通常是推荐的方法,因为使用.htaccess文件会降低 Apache的速度!
- 如果您没有访问权限(这在托管服务中很常见),请继续阅读本文
.htaccess
指南部分。
直接使用Apache服务器配置存储库需要执行一些必需的步骤。请参阅 Apache 官方指南。 Apache Getting Started.
检查 httpd.conf 设置
首先要检查的是,该 httpd.conf
文件包含适合您的特定安装值。
具体的变量如下:
ServerRoot
User
Group
ErrorLog
CustomLog
TypesConfig
(确保 mime.types
文件路径有效)
Apache 测试和重新加载
-
验证 Apache 配置
-
验证带有自定义文件的 Apache 配置
-
重新加载 Apache 并应用新配置
启用 Apache httpd 模块
如果未启用适当的模块,则某些配置将无效。因此,为了使所有功能都能按预期工作,您需要确保已启用以下 Apache 模块:
有关配置文件以及如何使用它们的更多详细信息,请查看相应的 Apache 官方文档:
Standalone
下列说明适用于 apt-get 用于安装 Apache 的任何发行版。
-
打开一个终端,然后键入以下命令。出现提示时输入密码。
sudo a2enmod setenvif headers deflate filter expires rewrite include
-
使用以下命令重新启动 apache,以便新配置生效。
sudo /etc/init.d/apache2 restart
MAMP/WAMP/XAMPP
-
MAMP PRO. 在主屏幕上,单击 Apache 选项卡,并确保已选中所有必需的模块,表明它们已启用。
-
WampServer. 如果您已经安装 WampServer 只要点击任务栏中的图标,然后点击 Apache - modules 。您将看到一个模块列表。只需单击一个模块名称即可启用它。启用模块后,WampServer 将自动重新启动 Apache 服务。
-
Others. 找到该httpd.conf
文件,通常在以下位置找到:
- MAMP:
/Applications/MAMP/conf/apache/httpd.conf
- XAMPP:
/Applications/XAMPP/etc/httpd.conf
- WAMP:
C:\apache\conf\httpd.conf
在文本编辑器中打开文件,然后取消注释所有必需的模块。完成后,重置 MAMP / WAMP / XAMPP。
使用方法
配置文件的默认位置是/usr/local/apache2/
,但是这些文件可以位于各种位置,具体取决于您安装服务器的方式。
这些文件的公共位置可以在 httpd wiki 中找到.
作为参考
要用作参考,不需要任何特殊的安装步骤,可以将存储库下载/签出到方便的位置,并采用该存储库中包含所需功能的现有 httpd 配置进行调整。
下载最新版本的文档.
直接使用
要直接使用,请从此存储库添加 httpd 配置文件。
例如:
apache2ctl stop
git clone https://github.com/h5bp/server-configs-apache.git /tmp/h5bp-apache
cd /usr/local
cp -r apache2 apache2-previous
cp -r /tmp/h5bp-apache/* apache2
# install-specific edits
apache2ctl start
管理网站
cd /usr/local/apache2/vhosts
-
建立一个新的网站
cp templates/example.com.conf .actual-hostname.conf
sed -i 's/example.com/actual-hostname/g' .actual-hostname.conf
-
启用网站
mv .actual-hostname.conf actual-hostname.conf
-
禁用网站
mv actual-hostname.conf .actual-hostname.conf
.htaccess 文件
用法
只需将.htaccess
文件复制到网站的根目录即可。
获取方式:下载 h5bp.htaccess
的最新版本 latest release 并且重命名为 .htaccess
。
自定义 .htaccess
安全性,mime 类型和缓存最佳做法一直不断发展,因此您也应该自定义 .htaccess 文件。过去,在每个新的 Apache Server Configs 版本中,找出 .htaccess 新的技巧或仅在某些细微差别上进行了非常繁琐的更改。
构建脚本,是可重复使用和可定制的,构建配置可以让你轻松地更新您的 .htaccess 文件。每个新 .htaccess 构建都将包含更新的 Apache Server Configs源文件,这些文件将根据 htaccess.conf 项目根目录中的设置启用或禁用。
配置 htaccess.conf
它允许您定义项目启用或禁用的模块。只需将 htaccess.conf
中的默认值复制到您的项目目录,根据您的需要进行调整,添加您项目所需的自定义代码段。它的语法很简单,几乎是不言自明的:
# Example Module
title "example module"
enable "src/example-module/images.conf"
enable "src/example-module/web_fonts.conf"
disable "src/example-module/not-needed.conf"
omit "src/example-module/not-needed-at-all.conf"
#... more modules ...
禁用模块
例如, “Cross-origin web fonts” 始终包含在 .htaccess
文件中并且已经启用
注释禁用:
disable "h5bp/cross-origin/web_fonts.conf"
排除:
omit "h5bp/cross-origin/web_fonts.conf"
启用模块
例如, “Forcing https://
” 代码段默认情况下处于禁用状态,要启用此代码段,请将disable
关键字更改为enable
:
enable "h5bp/rewrites/rewrite_http_to_https.conf"
自定义模块
想象一下,您正在将对不存在文件的所有请求传递到您喜欢的 Web 框架。相应的 mod_dir 片段将如下所示:
FallbackResource index.php
将此代码段存储在一个文件中,例如 config/framework_rewrites.conf
,并在您的 htaccess.conf
中添加参考:
# PROJECT MODULES
enable "config/framework_rewrites.conf"
构建脚本
访问项目根目录,并从克隆存储库的任何地方调用构建脚本。这是三个示例:
- 创建一个默认
.htaccess
在当前工作目录中创建一个默认.htaccess
,htaccess.conf 将使用此目录中的现有目录。
$ path/to/server-configs-apache/bin/build.sh
# Output looks like:
[✔] Build .htaccess
[✔] Moved in place: './.htaccess'
- 自定义输出位置
只需添加输出路径和文件名作为参数即可。顺便说一句,如果有现有.htaccess
文件,则构建脚本将创建一个备份。
$ path/to/server-configs-apache/bin/build.sh htdocs/.htaccess
[✔] Build .htaccess
[✔] Create backup: 'htdocs/.htaccess~'
[✔] Moved in place: 'htdocs/.htaccess'
- 自定义
.htaccess
配置
为什么不维护您的个人~/htaccess.conf
?本示例.htaccess
根据您可能已存储在$HOME
目录中的常用设置在当前工作目录中创建一个:
path/to/server-configs-apache/bin/build.sh ./.htaccess ~/htaccess.conf
版本支持
其他服务器配置样本
「Apache」
「IIS」
「Lighttpd」
「Nginx」