Apache服务器配置
Apache Server Configs是一个配置段的集合,可以帮助您的服务器改善网站的性能和安全性,同时还可以确保使用正确的内容类型提供资源,并且在需要时可访问,甚至可以访问交叉域。
入门
有两种获取Apache Server配置的选项:
- 如果您可以访问主服务器配置文件(通常称为
httpd.conf),则应通过这种方式配置Apache。通常,这是建议的方式,因为使用.htaccess文件会减慢Apache! - 如果您无法访问它,这与托管服务非常普遍,请查看
.htaccess指南。
使用Apache Server Configs Repo直接有一些必需的步骤以便能够工作。
另请参阅Apache入门。
检查httpd.conf设置
首先要检查的是httpd.conf文件包含适合您特定安装的值。
大多数特定变量是:
-
ServerRoot -
User -
Group -
ErrorLog -
CustomLog -
TypesConfig(确保mime.types文件有效的路径)
Apache测试并重新启动
-
验证Apache配置
apache2 -t
-
用自定义文件验证Apache配置
apache2 -t -f httpd.conf
-
重新加载Apache并应用新的配置
apache2ctl reload
启用Apache HTTPD模块
如果未启用适当的模块,则某些配置将不会产生任何效果。因此,为了使所有内容都按预期工作,您需要确保启用以下Apache模块:
-
mod_autoindex.c(autoIndex_module) -
mod_deflate.c(deflate_module) -
mod_expires.c(expires_module) -
mod_filter.c(filter_module) -
mod_headers.c(headers_module) -
mod_include.c(include_module) -
mod_mime.c(mime_module) -
mod_rewrite.c(rewrite_module) -
mod_setenvif.c(setenvif_module)
有关配置文件以及如何使用它们的更多详细信息,请检查适当的Apache文档:
- https://httpd.*ap**ache.org/docs/current/configuring.html
- https://httpd.apa**c*he.org/docs/current/howto/htaccess.html
独立
这些说明应在用于apt-get Apache的任何分布上都可以使用。
-
打开终端并键入以下命令。提示时输入密码。
sudo a2enmod setenvif headers deflate filter expires rewrite include
-
通过使用以下命令重新启动Apache,因此新配置会生效。
sudo /etc/init.d/apache2 restart
与妈妈/wamp/xampp
-
Mamp Pro 。在主屏幕上,单击
Apache选项卡,并确保“检查”所有必需的模块,以表明它们已启用。 -
Wampserver 。如果您已经安装了WampServer,则只需单击任务栏中的图标,然后单击Apache部分,然后模块部分。您将获得模块列表。只需单击模块名称即可启用它。启用模块后,WampServer将自动重新启动Apache服务。
-
其他的。找到
httpd.conf文件,该文件通常在:- mamp :
/Applications/MAMP/conf/apache/httpd.conf - xampp :
/Applications/XAMPP/etc/httpd.conf - wamp :
C:\\apache\\conf\\httpd.conf
在文本编辑器中打开文件,并输入所有必需的模块。完成此操作后,请重置MAMP/WAMP/XAMPP。
- mamp :
基本结构
该存储库具有以下结构:
./
├── vhosts/
│ ├── 000-default.conf
│ └── templates/
├── h5bp/
│ ├── basic.conf
│ └── .../
└── httpd.conf
-
vhosts/该目录应包含所有服务器定义。
除非它们是点列前缀或非
.conf扩展名,否则该文件夹中的所有文件均自动加载。-
templates文件夹此文件夹中的文件包含用于安全和非安全主机的
<VirtualHost/>模板。它们旨在在vhosts文件夹中复制,所有example.com出现将更改为目标主机。
-
-
h5bp/该目录包含根据需要包含的配置摘要(Mixins)。
提供了两种类型的配置文件:单个配置片段和提供方便默认值的组合配置文件。
-
basic.conf该文件加载了该存储库提供的一小部分规则,以添加到期的标题,允许跨域字体并保护系统文件免受Web访问。
basic.conf文件包括建议始终定义的规则。
-
-
httpd.conf主apache配置文件。
用法
配置文件的默认位置是/usr/local/apache2/ ,但是这些文件可能位于各种位置,具体取决于您确切安装服务器的方式。
这些文件的常见位置可以在HTTPD Wiki中找到。
作为参考
要使用参考,不需要特殊的安装步骤,请下载/检查存储库,以适应您现有的HTTPD配置,以结合此存储库中所需的功能。
下载最新版本档案。
直接地
要直接使用,请从此存储库中添加HTTPD配置文件。
例如:
apache2ctl stop git clone https://g**it*hub.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
apache2ctl reload
.htaccess文件
用法
只需在网站的根部复制.htaccess文件即可。
获得选项:
- 在最新版本中下载
h5bp.htaccess,然后将文件重命名为.htaccess - 通过NPM安装它们:
npm install --save-dev apache-server-configsdist/文件夹中,您会找到一个即可使用的.htaccess文件。
自定义.htaccess构建
安全性,哑剧类型和缓存最佳实践的发展,您的.htaccess文件也应如此。过去,随着每个新的Apache Server Configs发行版,很乏味地发现.htaccess Trick只是新的,或者只是某些细微差别的变化。
具有可重复使用且可自定义的构建配置的构建脚本可让您轻松更新.htaccess文件。每个新的.htaccess build将包含更新的Apache Server配置源文件,该文件根据您的项目root的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 ...
禁用模块
例如,我们的预构建的.htaccess文件中始终包含“交叉原始Web字体”片段并启用。如果您的项目不涉及Web字体,则可以disable或omit此部分:
这将评论本节:
disable \"h5bp/cross-origin/web_fonts.conf\"
…这将排除该部分,保存输出线:
omit \"h5bp/cross-origin/web_fonts.conf\"
启用模块
例如,默认情况下禁用“强制https:// ”摘要,尽管包含在我们的预构建的.htaccess中。要启用此片段,请更改disable关键字以enable :
enable \"h5bp/rewrites/rewrite_http_to_https.conf\"
控制输出的大小.htaccess文件
默认部分包含大量评论行,其中包含有关如何以及为什么使用设置以及Web参考的宝贵指导。但是,有些人可能会觉得所产生的.htaccess文件的大小太大。
特殊的关键字no-partials-comments可用于防止评论线从部分中复制到.htaccess中。
笔记
此关键字不控制构建脚本创建的注释(例如title或disabled指令),而只有那些在源部分文件中的注释。
no-partials-comments
添加自定义模块
想象一下,您将所有请求传递给不存在的文件到您喜欢的Web框架。根据mod_dir摘要会这样进行:
FallbackResource index.php
将此摘要存储在文件中,例如config/framework_rewrites.conf ,并在您的htaccess.conf中添加参考:
# PROJECT MODULES
enable \"config/framework_rewrites.conf\"
构建脚本: build.sh
潜入您的项目root,并从克隆回购的任何地方调用构建脚本。这里有三个例子:
- 创建默认
.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 ?根据您最喜欢的设置,您可能存储在$HOME目录中:此示例在当前工作目录中创建.htaccess
path/to/server-configs-apache/bin/build.sh ./.htaccess ~ /htaccess.conf
支持
- Apache v 2.4.17 +
贡献
但是,欢迎任何人做出贡献,但是,如果您决定参与其中,请花点时间查看准则:
- 错误报告
- 功能请求
- 拉请求
致谢
Apache Server配置只能归功于所有很棒的贡献者!
执照
该代码可根据MIT许可证获得。
