我应该使用哪两个文件中的哪一个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/
目录中的文件,由a2ensite
和a2dissite
程序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