Ubuntu的Apache:httpd.conf或apache2.conf?

我应该使用哪两个文件中的哪一个configurationApache?

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

它使我困惑!

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

另外一个select就是把你的自定义configuration放到/etc/apache2/conf.d中,这个目录下的所有文件都包含在内。

这些不是你唯一的select。 在Ubuntu / Debian上,Apache也处理/etc/apache2/sites-enabled/所有文件(这应该是符合链接到sites-available/目录中的文件,由a2ensitea2dissite程序pipe理)

你打算把这些目录用于VirtualHost

apache2.conf包含httpd.conf:

 a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf Include /etc/apache2/httpd.conf 

我认为,httpd.conf已被弃用,但只留在那里为保守的人,让他们find他们的方式… 🙂

编辑:

读完Rob的回答之后,我做了一个更好的grep:

 a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf # Include all the user configurations: Include /etc/apache2/httpd.conf 

用户configuration是…

Apache软件基金会发布了许多软件,其中一个是名为httpd的networking服务器。 httpd项目源包括httpd.conf示例configuration文件,默认情况下安装在/usr/local/etc/httpd/etc/httpd 。 你会发现在大多数系统上这样命名的httpd。

然而,很久以前,Debian GNU / Linux发行版中的某个人决定将该分发版中的软件名称从httpd更改为apache2 。 因此,在Debian系统上,您将在名为/etc/apache2的目录中find名为apache2.conf的configuration文件。 我不知道是谁做了这个或者是为什么,但是这和调用Windows“微软”或ESXi“VMware”一样是一个长期混乱的根源。 基于Debian的发行版,比如Ubuntu,inheritance了这个奇怪的东西。 更奇怪的是,他们还包含一个文件/etc/apache2/httpd.conf ,其中Include来自apache2.conf d,用户可以在其中放置自定义configuration。

所以答案是,如果你使用的是Debian系统,那么你的大脑就像Debian希望你做的那样。 否则,你通常以正常的方式做上游的httpd项目。

如果apache2.conf不为空,并且httpd.conf为空,则应该使用apache2.conf 😉

但是我认为其中一个包含另一个(而且其中一个纯粹是出于向后兼容的原因) ,所以它不应该改变太多。

不过,如果你想添加一些东西,像一个新的VirtualHost :是不是有另一个子目录,你可以把你的文件,并包括它?

这可能是一个更好的解决scheme:你不会修改默认文件 – 这将简化更新。

只需打开apache2.conf并查看内容:

 Include /etc/apache2/mod-enabled/*.conf Include /etc/apache2/httpd.conf 

所以如果你想包含你自己的configuration,把它添加到httpd.conf,apache2.conf会自动获取它。

换句话说,apache2.conf可以机器生成,最好不要触摸它。

有关更多信息,通常Ubuntu使用apache2.conf和Centos使用httpd.conf。 所以所有这些文件取决于你有哪个操作系统。

Apache 2.4

请使用:

/etc/apache2/conf-available/{name}.conf放置任何自定义configuration

使用sudo a2enconf {name}sudo a2disconf {name}启用/禁用您的configuration。

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

不要使用:

httpd.conf被弃用,你不应该再看到它 – 如果你这样做,把它留空为安装。

apache2.conf仍然是安装的,但是如果你希望干净地/容易地升级Apache,就不要apache2.conf

在“全局”Apacheconfiguration中可能看到的任何东西都可以按照上面的定制configuration添加/覆盖。

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

要findconfiguration文件的名称和位置,您必须:

1)search进程被调用,在这种情况下,使用Apache的用户:

 ps -ef | grep apache 

(在这个例子中,返回: httpd

2)显示二进制使用的variables:

 httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE' 

提取和截图: http : //www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html