server configs apache

Delphi源码 2025-08-16

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的任何分布上都可以使用。

  1. 打开终端并键入以下命令。提示时输入密码。

    sudo a2enmod setenvif headers deflate filter expires rewrite include
  2. 通过使用以下命令重新启动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
    • wampC:\apache\conf\httpd.conf

    在文本编辑器中打开文件,并输入所有必需的模块。完成此操作后,请重置MAMP/WAMP/XAMPP。

基本结构

该存储库具有以下结构:

 ./
├── 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-configs dist/文件夹中,您会找到一个即可使用的.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字体,则可以disableomit此部分:

这将评论本节:

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中。

笔记

此关键字不控制构建脚本创建的注释(例如titledisabled指令),而只有那些在源部分文件中的注释。

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,并从克隆回购的任何地方调用构建脚本。这里有三个例子:

  1. 创建默认.htaccess

在当前工作目录中创建默认的.htaccess 。将使用此目录中的现有htaccess.conf ;如果不存在,则将应用默认配置

$ path/to/server-configs-apache/bin/build.sh

# Output looks like:
[✔] Build .htaccess
[✔] Moved in place: './.htaccess'
  1. 自定义输出位置

只需添加输出路径和文件名作为参数。顺便说一句,如果有现有的.htaccess文件,则构建脚本将创建备份。

$ path/to/server-configs-apache/bin/build.sh htdocs/.htaccess
[✔] Build .htaccess
[✔] Create backup: 'htdocs/.htaccess~'
[✔] Moved in place: 'htdocs/.htaccess'
  1. 自定义.htaccess配置

为什么不维护您的个人~/htaccess.conf ?根据您最喜欢的设置,您可能存储在$HOME目录中:此示例在当前工作目录中创建.htaccess

path/to/server-configs-apache/bin/build.sh ./.htaccess ~ /htaccess.conf

支持

  • Apache v 2.4.17 +

贡献

但是,欢迎任何人做出贡献,但是,如果您决定参与其中,请花点时间查看准则:

  • 错误报告
  • 功能请求
  • 拉请求

致谢

Apache Server配置只能归功于所有很棒的贡献者!

执照

该代码可根据MIT许可证获得。

下载源码

通过命令行克隆项目:

git clone https://github.com/h5bp/server-configs-apache.git