ajsie Asked: 2010-04-03 07:22:06 +0800 CST2010-04-03 07:22:06 +0800 CST 2010-04-03 07:22:06 +0800 CST Ubuntu Apache:httpd.conf 还是 apache2.conf? 772 我应该使用这两个文件中的哪一个来配置 Apache? httpd.conf是空的,而apache2.conf不是。 这让我很困惑! apache-2.2 8 个回答 Voted Best Answer Rob Di Marco 2010-04-03T07:28:10+08:002010-04-03T07:28:10+08:00 httpd.conf 是为用户配置而设计的。你真的不应该编辑 apache2.conf,因为它可能会被未来的升级更新。 另一个选项是将您的自定义配置放入 /etc/apache2/conf.d,该目录中的所有文件也包括在内。 Powerlord 2010-04-03T07:44:29+08:002010-04-03T07:44:29+08:00 这些不是您唯一的选择。在 Ubuntu/Debian 上,Apache 还处理中的所有文件/etc/apache2/sites-enabled/(它们应该是目录中文件的符号链接sites-available/,由a2ensite和a2dissite程序管理) 您打算将这些目录用于VirtualHosts。 Alexander T 2010-04-03T07:28:19+08:002010-04-03T07:28:19+08:00 apache2.conf 包括 httpd.conf: a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf Include /etc/apache2/httpd.conf 我认为 httpd.conf 已被弃用,但只是留在那里供保守人士使用,以便他们找到解决方法...:) 编辑: 阅读 Rob 的回答后,我做了一个更好的 grep: a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf # Include all the user configurations: Include /etc/apache2/httpd.conf 用户配置是... Michael Hampton 2017-03-24T17:23:08+08:002017-03-24T17:23:08+08:00 Apache 软件基金会发布了许多软件,其中之一是名为httpd. httpd 项目源包括一个httpd.conf示例配置文件,默认安装在/usr/local/etc/httpd或中/etc/httpd。您会发现 httpd 在大多数系统上都是这样命名的。 然而,很久很久以前,Debian GNU/Linux 发行版中的某个人决定将该发行版中的软件名称httpd从apache2. 因此,在 Debian 系统上,您会apache2.conf在名为/etc/apache2. 我不知道是谁这样做的,也不知道为什么这样做,但这是一个常年引起混淆的根源,就像将 Windows 称为“Microsoft”或将 ESXi 称为“VMware”一样。基于 Debian 的发行版,例如 Ubuntu,继承了这种奇怪之处。更奇怪的是,他们随后包含一个文件/etc/apache2/httpd.conf,用户可以Include从中apache2.conf放置自定义配置。 所以答案是,如果您使用的是基于 Debian 的系统,您会竭尽全力按照 Debian 希望您做的方式做事。否则,您通常会像上游 httpd 项目那样以正常方式做事。 B. Shea 2016-03-15T14:29:16+08:002016-03-15T14:29:16+08:00 Apache 2.4(在 Debian/Ubuntu 下) 对于配置/覆盖(不一定是新站点): 将一个新的配置文件放在/etc/apache2/conf-available/{name}.conf. sudo a2enconf {name}使用或启用/禁用您的新配置sudo a2disconf {name}。 这些指令也可以覆盖httpd.conf或apache2.conf作为用户添加的任何其他配置文件在主配置之后最后读入。 重新启动apache2服务以反映更改。 对于站点(以及任何站点特定的配置覆盖): 将新站点文件放入/etc/apache2/sites-available/{name}.conf sudo a2ensite {name}使用或启用/禁用您的站点配置sudo a2dissite {name}。 重新启动apache2服务以反映更改。 不要使用: httpd.conf在某些 Linux 发行版上仍作为主配置文件安装。在其他人身上,你不应该再看到它了——如果你看到了,如果你想通过包管理器干净地/轻松地升级 Apache,请将它留空。 apache2.conf仍然安装在许多系统上,并用作 Debian/Ubuntu 的主要配置文件。但是,如果您希望干净/轻松地升级 Apache,请不要管它。您应该include会在该文件底部附近看到一些关于站点和自定义配置的声明。 改用它们! 根据 Linux 发行版,可以通过 Linux 包管理器安装这些文件中的一个或两个。这是不去碰它们的一个很好的理由,因为它们可能会在未来的系统升级过程中被意外覆盖。 您可能会在“全局” Apache2 配置文件中看到的任何内容都可以按照上述方式在您的自定义配置下添加/覆盖。您也可以自己使用include语句来进一步自定义。示例:您可以在特定自定义include文件中的某些/所有站点上包含所需的其他 SSL 指令。您只需根据需要将此 include 语句添加到所有虚拟站点配置中。 更多(Debian/Ubuntu):https ://stackoverflow.com/a/11687212/503621 Pascal MARTIN 2010-04-03T07:27:52+08:002010-04-03T07:27:52+08:00 如果apache2.conf不是空的,并且httpd.conf是空的,你应该使用apache2.conf;-) 但我想其中一个包含另一个(其中一个纯粹是出于向后兼容性的原因而保留的) ——因此,它应该不会有太大变化。 尽管如此,如果你想添加一些东西,比如一个新的VirtualHost:没有另一个子目录,你可以在其中放置你的文件,并包含它吗? 这可能是一个更好的解决方案:您不会修改默认文件——这会简化更新。 kazi Tanvir Ahsan 2017-03-24T17:12:50+08:002017-03-24T17:12:50+08:00 直接打开apache2.conf看看内容: Include /etc/apache2/mod-enabled/*.conf Include /etc/apache2/httpd.conf 因此,如果您想包含自己的配置,请将其添加到 httpd.conf,apache2.conf 会自动获取它。 正如其他人所说,apache2.conf 可以由机器生成,最好不要碰它。 更多信息,一般Ubuntu使用apache2.conf,Centos使用httpd.conf。因此,所有这些文件都取决于您拥有的操作系统。 Ray Tatooine 2016-12-27T10:32:52+08:002016-12-27T10:32:52+08:00 要查找配置文件的名称和位置,您必须: 1) 在调用进程时搜索,在本例中使用 apache 用户: ps -ef | grep apache (在这个例子中,返回httpd:) 2)显示二进制文件使用的变量: httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE' 提取和截图在:http ://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html
httpd.conf 是为用户配置而设计的。你真的不应该编辑 apache2.conf,因为它可能会被未来的升级更新。
另一个选项是将您的自定义配置放入 /etc/apache2/conf.d,该目录中的所有文件也包括在内。
这些不是您唯一的选择。在 Ubuntu/Debian 上,Apache 还处理中的所有文件
/etc/apache2/sites-enabled/
(它们应该是目录中文件的符号链接sites-available/
,由a2ensite
和a2dissite
程序管理)您打算将这些目录用于
VirtualHost
s。apache2.conf 包括 httpd.conf:
我认为 httpd.conf 已被弃用,但只是留在那里供保守人士使用,以便他们找到解决方法...:)
编辑:
阅读 Rob 的回答后,我做了一个更好的 grep:
用户配置是...
Apache 软件基金会发布了许多软件,其中之一是名为
httpd
. httpd 项目源包括一个httpd.conf
示例配置文件,默认安装在/usr/local/etc/httpd
或中/etc/httpd
。您会发现 httpd 在大多数系统上都是这样命名的。然而,很久很久以前,Debian GNU/Linux 发行版中的某个人决定将该发行版中的软件名称
httpd
从apache2
. 因此,在 Debian 系统上,您会apache2.conf
在名为/etc/apache2
. 我不知道是谁这样做的,也不知道为什么这样做,但这是一个常年引起混淆的根源,就像将 Windows 称为“Microsoft”或将 ESXi 称为“VMware”一样。基于 Debian 的发行版,例如 Ubuntu,继承了这种奇怪之处。更奇怪的是,他们随后包含一个文件/etc/apache2/httpd.conf
,用户可以Include
从中apache2.conf
放置自定义配置。所以答案是,如果您使用的是基于 Debian 的系统,您会竭尽全力按照 Debian 希望您做的方式做事。否则,您通常会像上游 httpd 项目那样以正常方式做事。
Apache 2.4(在 Debian/Ubuntu 下)
对于配置/覆盖(不一定是新站点):
将一个新的配置文件放在
/etc/apache2/conf-available/{name}.conf
.sudo a2enconf {name}
使用或启用/禁用您的新配置sudo a2disconf {name}
。这些指令也可以覆盖
httpd.conf
或apache2.conf
作为用户添加的任何其他配置文件在主配置之后最后读入。重新启动
apache2
服务以反映更改。对于站点(以及任何站点特定的配置覆盖):
将新站点文件放入
/etc/apache2/sites-available/{name}.conf
sudo a2ensite {name}
使用或启用/禁用您的站点配置sudo a2dissite {name}
。重新启动
apache2
服务以反映更改。不要使用:
httpd.conf
在某些 Linux 发行版上仍作为主配置文件安装。在其他人身上,你不应该再看到它了——如果你看到了,如果你想通过包管理器干净地/轻松地升级 Apache,请将它留空。apache2.conf
仍然安装在许多系统上,并用作 Debian/Ubuntu 的主要配置文件。但是,如果您希望干净/轻松地升级 Apache,请不要管它。您应该include
会在该文件底部附近看到一些关于站点和自定义配置的声明。改用它们!
根据 Linux 发行版,可以通过 Linux 包管理器安装这些文件中的一个或两个。这是不去碰它们的一个很好的理由,因为它们可能会在未来的系统升级过程中被意外覆盖。
您可能会在“全局” Apache2 配置文件中看到的任何内容都可以按照上述方式在您的自定义配置下添加/覆盖。您也可以自己使用include语句来进一步自定义。示例:您可以在特定自定义
include
文件中的某些/所有站点上包含所需的其他 SSL 指令。您只需根据需要将此 include 语句添加到所有虚拟站点配置中。更多(Debian/Ubuntu):https ://stackoverflow.com/a/11687212/503621
如果
apache2.conf
不是空的,并且httpd.conf
是空的,你应该使用apache2.conf
;-)但我想其中一个包含另一个(其中一个纯粹是出于向后兼容性的原因而保留的) ——因此,它应该不会有太大变化。
尽管如此,如果你想添加一些东西,比如一个新的
VirtualHost
:没有另一个子目录,你可以在其中放置你的文件,并包含它吗?这可能是一个更好的解决方案:您不会修改默认文件——这会简化更新。
直接打开apache2.conf看看内容:
因此,如果您想包含自己的配置,请将其添加到 httpd.conf,apache2.conf 会自动获取它。
正如其他人所说,apache2.conf 可以由机器生成,最好不要碰它。
更多信息,一般Ubuntu使用apache2.conf,Centos使用httpd.conf。因此,所有这些文件都取决于您拥有的操作系统。
要查找配置文件的名称和位置,您必须:
1) 在调用进程时搜索,在本例中使用 apache 用户:
(在这个例子中,返回
httpd
:)2)显示二进制文件使用的变量:
提取和截图在:http ://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html