丢失了httpd.conf文件,如何找到apache?

520

我该如何找到我的httpd.conf文件所在位置?

我在亚马逊网络服务 EC2(弹性计算云)上运行 Ubuntu Linux 服务器,但无法找到 Apache 配置文件。


2
你使用的是哪个操作系统?你是如何安装Apache的?你正在运行哪个版本的Apache?当这个问题被移动到正确的位置(可能是ServerFault)时,这些都是你应该包括的内容。 - gpojd
65
这个问题应该迁移到superuser.com而不是关闭吗? - trejder
35
快速的方法是:使用命令 find / -name httpd.conf 来查找 httpd.conf 文件。 - prograhammer
15
通常情况下,Red Hat 中的 Apache 配置文件路径是 /etc/httpd/conf/httpd.conf。有关更详细信息,请参阅以下链接:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-apache-config.html - danwild
2
这里还有另一种快速的方法:locate httpd.conf - Sudip Bhandari
显示剩余3条评论
2个回答

654

196
在某些操作系统中,您可以获得配置文件的相对路径:-D SERVER_CONFIG_FILE="apache2.conf"。您可以运行"/usr/sbin/apache2 -V | grep HTTPD_ROOT"来查找根目录。输出为:"-D HTTPD_ROOT="/etc/apache2/apache2.conf"。然后绝对路径将是:"/etc/apache2/apache2.conf"。 - Mayank Jaiswal
6
由于“ps”命令只显示当前用户运行的任务,所以在我的共享主机上无法使用。根据Rich Bower的建议,我只能尝试运行“httpd -V”和“apache2ctl -V”。 - John Pankowicz
6
我正在使用Ubuntu 14.04,并安装了Apache2。执行sudo /usr/sbin/apache2 -V | grep SERVER_CONFIG_FILE命令时,我遇到了一些警告错误:“Invalid Mutex directory”。因此,我使用了正确的命令sudo apachectl -V | grep SERVER_CONFIG_FILE。请为我翻译这段内容。 - NineCattoRules
4
在Ubuntu 16.04上对我无效,它只返回grep的PID。 - posfan12

215

参考http://wiki.apache.org/httpd/DistrosDefaultLayout,讨论了在不同平台上可能会找到Apache httpd配置文件的位置,因为这可能因版本和平台而异。然而,最常见的答案是 /etc/apache/conf 或 /etc/httpd/conf。

通用地,您可以通过运行以下命令来确定答案:

httpd -V

(这是一个大写的 V) 或者,在 httpd 被重命名的系统上,也许是 apache2ctl -V

这将返回有关如何构建和配置 httpd 的各种详细信息,包括主配置文件的默认位置。

其中一行输出应该类似于:

-D SERVER_CONFIG_FILE="conf/httpd.conf"

与以下行结合使用:

-D HTTPD_ROOT="/etc/httpd"

将为您提供配置文件默认位置的完整路径。


15
对我而言,有效的方法是执行 apache2ctl -V 命令,并查找列在其中的路径。 - james-see
1
没错,apache2ctl不是httpd重命名版本,它们是在基于Debian和RedHat的操作系统上同一个应用程序的不同名称。 - vladkras
5
我收到了“找不到命令 httpd”的提示。 - Black
1
如果 "httpd -V" 不起作用,请尝试使用 "apachectl -V"。 - Somnath Pawar
2
在Ubuntu上,您可能有apache2.conf文件而不是httpd.conf文件。您可以在/ etc / apache2目录下找到该文件。 - prasoon
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接