/etc/httpd/conf/httpd.conf, /etc/httpd/conf.modules.d, /etc/httpd/conf.d
The main configuration file for the httpd daemon is /etc/httpd/conf/httpd.conf. The syntax of this file is described at m[blue]https://httpd.apache.org/docs/2.4/configuring.htmlm[], and the full set of available directives is listed at m[blue]https://httpd.apache.org/docs/2.4/mod/directives.htmlm[].
The main configuration file (httpd.conf) sets up various defaults and includes configuration files from two directories - /etc/httpd/conf.modules.d and /etc/httpd/conf.d. Packages containing loadable modules (like mod_ssl.so) place files in the conf.modules.d directory with the appropriate LoadModule directive so that module is loaded by default.
Some notable configured defaults are:
DocumentRoot /var/www/html
Listen 80
ErrorLog "logs/error_log"
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
To remove any of the default configuration provided in separate files covered below, replace that file with an empty file rather than removing it from the filesystem, otherwise it may be restored to the original when the package which provides it is upgraded.
The configuration file at /etc/httpd/conf.modules.d/00-mpm.conf is used to select the multi-processing module (MPM), which governs how httpd divides work between processes and/or threads at run-time. Exactly one LoadModule directive must be uncommented in this file; by default the event MPM is enabled. For more information on MPMs, see m[blue]https://httpd.apache.org/docs/2.4/mpm.htmlm[].
If using the prefork MPM, the "httpd_graceful_shutdown" SELinux boolean should also be enabled, since with this MPM, httpd needs to establish TCP connections to local ports to successfully complete a graceful restart or shutdown. This boolean can be enabled by running the command: semanage boolean -m --on httpd_graceful_shutdown
Module configuration files are provided in the /etc/httpd/conf.modules.d/ directory. Filenames in this directory are by convention prefixed with two digit numeric prefix to ensure they are processed in the desired order. Core modules provided with the httpd package are loaded by files with a 0x- prefix to ensure these load first. Only filenames with a .conf suffix in this directory will be processed.
Other provided configuration files are listed below.
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-optional.conf
/etc/httpd/conf.modules.d/00-systemd.conf
Default module configuration files and site-specific configuration files are loaded from the /etc/httpd/conf.d/ directory. Only files with a .conf suffix will be loaded. The following files are provided:
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.d/ssl.conf (present only if mod_ssl is installed)
As an alternative to (or in addition to) the httpd.service unit, the instantiated template service httpd@.service unit file can be used, which starts httpd using a different configuration file to the default. For example, systemctl start httpd@foobar.service will start httpd using the configuration file /etc/httpd/conf/foobar.conf. See httpd@.service(8) for more information.
/etc/httpd/conf/httpd.conf, /etc/httpd/conf.d, /etc/httpd/conf.modules.d
httpd(8), httpd.service(8), m[blue]https://httpd.apache.org/docs/2.4/configuring.htmlm[], m[blue]https://httpd.apache.org/docs/2.4/mod/directives.htmlm[]
Joe Orton <jorton@redhat.com>