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

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

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

httpd.conf空,而apache2.conf不为空。

这让我很困惑!

答案1

httpd.conf 是为用户配置而设计的。您真的不应该编辑 apache2.conf,因为它可能会在将来的升级中更新。

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

答案2

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

您打算使用这些目录来VirtualHost

答案3

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

用户配置它是……

答案4

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 配置文件可以按照上述方法在自定义配置下添加/覆盖。您还可以使用包括语句可以自己进一步自定义。示例:您可以从特定的自定义文件中包含您想要的某些/所有站点的其他 SSL 指令include。您只需根据需要将此包含语句添加到所有虚拟站点配置中即可。

更多(Debian / Ubuntu):https://stackoverflow.com/a/11687212/503621

相关内容