≡ Menu

Where does Apache server store its configuration files?

Different Linux distributions and/or UNIX operating system, and control panels stores Apache web server configuration file at different locations. There are different ways to locate configuration file.

Apache is, by default, installed in /etc/httpd directory. But this path also depends on how apache has been compiled. Default configuration file name httpd.conf.

Using httpd command

To find the location where apache is installed and to print configuration file location, run the following command:
# httpd -v

Here is the output from my Fedora Core/RedHat (RHEL) Linux server:

Server version: Apache/2.0.54
Server built:   Jan 17 2006 06:36:00
Server's Module Magic Number: 20020903:9
Architecture:   32-bit
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

HTTPD_ROOT points to default location /etc/httpd and line SERVER_CONFIG_FILE points to configuration file conf/httpd.conf. So the path is /etc/httpd/conf/httpd.conf

If you are using Debian Linux try apache-perl:

# apache-perl -V

cPanel/Plesk Control Panel

If you are using third party control panel, then you can find out Apache configuration file inside your /home/username/ directory or /var/www/vhosts/ directory.

Using find command

This is an old good (read as geekey) classic way to locate httpd.conf file:
# find / -name 'httpd.conf' -print

You may have to wait for few seconds/minute to search complete. Or try out locate command:
# locate httpd.conf

Share this on:

{ 13 comments… add one }

  • Ram bharoshe September 4, 2007, 9:48 am

    To find the location where apache is installed and to print configuration file location, run the following command:
    # httpd -V

    we have to use -V(capital) instead of -v(small).

    Thnx for your information

    Jai Shree Ram

    • Apoorv Gupta October 27, 2015, 11:14 am

      Using this , its saying command not found. Is there any other alternative ?

  • Ashu Kumar Raina April 20, 2009, 1:17 pm

    Hi Sir, i am a operations engineer, but i m weak in Linuk field, could you please update/help me as your younger bro. Please sir i just need a little or basic cmnds regarding Linux. Could you please help me out.

    ashu raina

    • meanperson May 31, 2011, 7:48 am

      @Ashu Kumar Raina,

      Try reading..

    • koshurnafar October 17, 2012, 3:36 pm

      kyoho gowe… hahahhaha..

  • rrrrew October 13, 2009, 10:18 am

    thank you

  • seema August 25, 2010, 10:38 am


    My Apache server is on Linux, it was configured and working fine. Recently the IP of the box got changed and since then I cannot navigate to the UI page. Can you please suggest where to change the IP.


  • Jim August 10, 2012, 8:27 pm

    On Ubuntu 12.04:
    apache2 -V

    -D HTTPD_ROOT=”/etc/apache2″
    -D SERVER_CONFIG_FILE=”apache2.conf”

  • Rico October 13, 2012, 1:47 pm

    Ubuntu 12.04

    sudo apache2 -V

  • Gaurav Mishra April 2, 2013, 9:59 am

    Excelent Info

  • massimo October 11, 2013, 1:43 pm

    my problem is that httpd -V print che compiled settings, but you can start apache with any conf file you want with the option -f for instance :
    /bin/httpd -f /home/me/httpd.conf -k start
    is there a way to obtain the “running” configuration file?

    • Mark October 31, 2013, 6:53 pm

      If you run:
      ps x | grep httpd

      the command collumn will show the full command line, which would include -f /path/to/httpd -k start

  • Mark October 31, 2013, 6:55 pm

    you might want to run it as ps ax | grep httpd ( to make sure you get all processes )

Leave a Comment