Ubuntu Apache:httpd.conf 还是 apache2.conf?

ajs*_*sie 45 ubuntu apache-2.2

我应该使用这两个文件中的哪一个来配置 Apache?

httpd.conf是空的,而apache2.conf不是。

这让我很困惑!

小智 47

httpd.conf 是为用户配置而设计的。你真的不应该编辑 apache2.conf 因为它可能会被未来的升级更新。

另一个选项是将您的自定义配置放入/etc/apache2/conf.d,该目录中的所有文件也包括在内。

  • 我没有名为 apapche2.conf 的文件 (5认同)

Pow*_*ord 21

这些不是您唯一的选择。在 Ubuntu/Debian 上,Apache 还处理其中的所有文件/etc/apache2/sites-enabled/应该sites-available/目录中文件的符号链接,由a2ensitea2dissite程序管理)

您打算将这些目录用于VirtualHosts。


Mic*_*ton 8

Apache 软件基金会发布了许多软件,其中之一是名为httpd. httpd 项目源包括一个httpd.conf示例配置文件,默认安装在/usr/local/etc/httpd或中/etc/httpd。您会发现在大多数系统上 httpd 都是这样命名的。

然而,很久以前,Debian GNU/Linux 发行版中的某人决定将该发行版中的软件名称从 更改httpdapache2. 因此,在 Debian 系统上,您将apache2.conf在名为 的目录中找到一个名为 的配置文件/etc/apache2。我不知道是谁这么做的,也不知道为什么这样做,但这就像将 Windows 称为“Microsoft”或将 ESXi 称为“VMware”一样,是一个长期令人困惑的根源。基于 Debian 的发行版,例如 Ubuntu,继承了这种奇怪的特性。更奇怪的是,他们随后包含一个文件/etc/apache2/httpd.conf,用户可以Include从中apache2.conf放置自定义配置。

所以答案是,如果您使用的是基于 Debian 的系统,您就会专心按照 Debian 希望您做的方式做事。否则,您通常会按照上游 httpd 项目的正常方式执行操作。


Ale*_*r T 6

apache2.conf 包括 httpd.conf:

a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
Include /etc/apache2/httpd.conf
Run Code Online (Sandbox Code Playgroud)

我认为 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
Run Code Online (Sandbox Code Playgroud)

用户配置是...

  • +1“不推荐使用httpd.conf” (8认同)