Ubuntu Apache:httpd.conf或apache2.conf?


43

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

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

这让我感到困惑!

Answers:


46

httpd.conf用于用户配置。您实际上不应该编辑apache2.conf,因为以后的升级可能会更新它。

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


5
我没有名为apapche2.conf的文件-Doug
Molineux

18

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

您打算将这些目录用于VirtualHost


1
这是正确的答案!以及端口/ mods可用的配置文件(如果您想详细说明答案的话
-Sudhi 2011年

5

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

用户配置是...


6
+1“不推荐使用httpd.conf”
Feeela

1

Apache Software Foundation发布了许多软件,其中之一是名为的Web服务器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.confInclude从D apache2.conf到哪些用户可以将自定义配置。

因此,答案是,如果您使用的是基于Debian的系统,则您会全神贯注地按照Debian希望您的方式进行操作。否则,您通常会像上游httpd项目那样以正常方式进行操作。


1

阿帕奇2.4

使用:

将所有自定义配置放在 /etc/apache2/conf-available/{name}.conf

使用sudo a2enconf {name}或启用/禁用您的配置sudo a2disconf {name}

(然后重新启动apache2服务。)

不要使用:

httpd.conf 已弃用,并且您不应再看到它-如果这样做,请在安装后将其保留为空。

apache2.conf 仍然安装,但是如果您希望干净/轻松地升级Apache,请不要理会它。

--

您可以按照上述自定义配置在“全局” Apache配置中看到或添加的任何内容。

更多:https//stackoverflow.com/a/11687212/503621


0

如果apache2.conf不为空,并且httpd.conf为空,则可能应使用apache2.conf;-)

但是我想其中一个包含另一个(并且纯粹出于向后兼容的原因保留其中一个) -因此,它应该不会有太大变化。


但是,如果您想添加一些内容,例如新建一个VirtualHost:是否还有另一个子目录可以放入文件并将其包含在其中?

这可能是一个更好的解决方案:您不会修改默认文件-这样可以简化更新。


如Pascal所述,如果要添加新的VirtualHost,则应在可用站点下添加一个新文件,然后使用a2ensite命令在启用了站点的站点中将其符号链接 -help.ubuntu.com/6.06/ubuntu/serverguide/ C / httpd.html
ccheneson

0

只需打开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。因此,所有这些文件取决于您使用的操作系统。


-2

要查找配置文件的名称和位置,您必须:

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


您好,在我看来,您已经回答了一个已经回答多年的问题。此外,您的解决方案无法帮助原始发问者解决问题,最好使用哪种配置文件。
M. Glatki 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.