520

How can I find where my httpd.conf file is located?

I am running an Ubuntu Linux server from the Amazon Web Services EC2 (Elastic Compute Cloud) and I can't find my Apache config.

jpyams
  • 4,030
  • 9
  • 41
  • 66
Shalin Shah
  • 8,145
  • 6
  • 31
  • 44

2 Answers2

655

Get the path of running Apache

$ ps -ef | grep apache
apache   12846 14590  0 Oct20 ?        00:00:00 /usr/sbin/apache2

Append -V argument to the path

$ /usr/sbin/apache2 -V | grep SERVER_CONFIG_FILE
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

Reference:
http://commanigy.com/blog/2011/6/8/finding-apache-configuration-file-httpd-conf-location

Ivan Chau
  • 1,403
  • 1
  • 18
  • 28
squiguy
  • 32,370
  • 6
  • 56
  • 63
  • 196
    In some OS's you will get the relative path of conf file : -D SERVER_CONFIG_FILE="apache2.conf" You can run "/usr/sbin/apache2 -V | grep HTTPD_ROOT" to find the root. Output: "-D HTTPD_ROOT="/etc/apache2/apache2.conf" The absolute path will be then : "/etc/apache2/apache2.conf" – Mayank Jaiswal Oct 27 '13 at 14:56
  • 6
    Doesn't work on my shared host since ps only shows tasks running as me. I had to just try running "httpd -V" and "apache2ctl -V" as Rich Bower suggests. – John Pankowicz Jan 17 '16 at 22:22
  • 6
    I'm on ubuntu 14.04 with Apache2 and `sudo /usr/sbin/apache2 -V | grep SERVER_CONFIG_FILE` gives me some warning errors `Invalid Mutex directory` so the right command I used is `sudo apachectl -V | grep SERVER_CONFIG_FILE` – NineCattoRules Feb 27 '16 at 23:23
  • 4
    Didn't work for me on Ubuntu 16.04. It just returns the PID of grep. – posfan12 Sep 02 '16 at 17:14
214

See http://wiki.apache.org/httpd/DistrosDefaultLayout for discussion of where you might find Apache httpd configuration files on various platforms, since this can vary from release to release and platform to platform. The most common answer, however, is either /etc/apache/conf or /etc/httpd/conf

Generically, you can determine the answer by running the command:

httpd -V

(That's a capital V). Or, on systems where httpd is renamed, perhaps apache2ctl -V

This will return various details about how httpd is built and configured, including the default location of the main configuration file.

One of the lines of output should look like:

-D SERVER_CONFIG_FILE="conf/httpd.conf"

which, combined with the line:

-D HTTPD_ROOT="/etc/httpd"

will give you a full path to the default location of the configuration file

Rich Bowen
  • 5,872
  • 2
  • 17
  • 15