httpd.service(glossar.html) - phpMan

HTTPD.SERVICE(8)              httpd systemd units             HTTPD.SERVICE(8)
NAME
       httpd.service, httpd@.service, httpd.socket, httpd-init.service - httpd
       unit files for systemd
SYNOPSIS
       /usr/lib/systemd/system/httpd.service,
       /usr/lib/systemd/system/httpd@.service,
       /usr/lib/systemd/system/httpd-init.service,
       /usr/lib/systemd/system/httpd.socket
DESCRIPTION
       This manual page describes the systemd unit files used to integrate the
       httpd daemon with systemd. Two main unit files are available:
       httpd.service allows the httpd daemon to be run as a system service,
       and httpd.socket allows httpd to be started via socket-based
       activation. Most systems will use httpd.service.
       The apachectl command has been modified to invoke systemctl for most
       uses, so for example, running apachectl start is equivalent to running
       systemctl start httpd.service. This ensures that the running httpd
       daemon is tracked and managed by systemd. In contrast, running httpd
       directly from a root shell will start the service outside of systemd;
       in this case, default security restrictions described below (including,
       but not limited to, SELinux) will not be enforced.
   Changing default behaviour
       To change the default behaviour of the httpd service, an over-ride file
       should be created, rather than changing
       /usr/lib/systemd/system/httpd.service directly, since such changes
       would be lost over package upgrades. Running systemctl edit
       httpd.service or systemctl edit httpd.socket as root will create a
       drop-in file (in the former case, in
       /etc/systemd/system/httpd.service.d) which over-rides the system
       defaults.
       For example, to set the LD_LIBRARY_PATH environment variable for the
       daemon, run systemctl edit httpd.service and enter:
           [Service]
           Environment=LD_LIBRARY_PATH=/opt/vendor/lib
   Starting the service at boot time
       The httpd.service and httpd.socket units are disabled by default. To
       start the httpd service at boot time, run: systemctl enable
       httpd.service. In the default configuration, the httpd daemon will
       accept connections on port 80 (and, if mod_ssl is installed, TLS
       connections on port 443) for any configured IPv4 or IPv6 address.
       If httpd is configured to depend on any specific IP address (for
       example, with a "Listen" directive) which may only become available
       during start-up, or if httpd depends on other services (such as a
       database daemon), the service must be configured to ensure correct
       start-up ordering.
       For example, to ensure httpd is only running after all configured
       network interfaces are configured, create a drop-in file (as described
       above) with the following section:
           [Unit]
           After=network-online.target
           Wants=network-online.target
       See https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
       for more information on start-up ordering with systemd.
   SSL/TLS certificate generation
       The httpd-init.service unit is provided with the mod_ssl package. This
       oneshot unit automatically creates a TLS server certificate and key
       (using a generated self-signed CA certificate and key) for testing
       purposes before httpd is started. To inhibit certificate generation,
       use systemctl mask httpd-init.service after installing mod_ssl, and
       adjust the mod_ssl configuration to use an appropriate certificate and
       key.
   Reloading and stopping the service
       When running systemctl reload httpd.service, a graceful restart is
       used, which sends a signal to the httpd parent process to reload the
       configuration and re-open log files. Any children with open connections
       at the time of reload will terminate only once they have completed
       serving requests. This prevents users of the server seeing errors (or
       potentially losing data) due to the reload, but means some there is
       some delay before any configuration changes take effect for all users.
       Similarly, a graceful stop is used when systemctl stop httpd.service is
       run, which terminates the server only once active connections have been
       processed.
       To "ungracefully" stop the server without waiting for requests to
       complete, use systemctl kill --kill-who=main httpd; similarly to
       "ungracefully" reload the configuration, use systemctl kill
       --kill-who=main --signal=HUP httpd.
   Automated service restarts
       System packages (including the httpd package itself) may restart the
       httpd service automatically after packages are upgraded, installed, or
       removed. This is done using the systemctl reload httpd.service, which
       produces a graceful restart by default as described above.
       To suppress automatic reloads entirely, create the file
       /etc/sysconfig/httpd-disable-posttrans.
   Changing the default MPM (Multi-Processing Module)
       httpd offers a choice of multi-processing modules (MPMs), which can be
       configured in /etc/httpd/conf.modules.d/00-mpm.conf. See httpd.conf(5)
       for more information on changing the MPM.
   systemd integration and mod_systemd
       The httpd service uses the notify systemd service type. The mod_systemd
       module must be loaded (as in the default configuration) for this to
       work correctly - the service will fail if this module is not loaded.
       mod_systemd also makes worker and request statistics available when
       running systemctl status httpd. See systemd.exec(5) for more
       information on systemd service types.
   Security and SELinux
       The default SELinux policy restricts the httpd service in various ways.
       For example, the default policy limits the ports to which httpd can
       bind (using the Listen directive), which parts of the filesystem can be
       accessed, and whether outgoing TCP connections are possible. Many of
       these restrictions can be relaxed or adjusted by using semanage to
       change booleans or other types. See httpd_selinux(8) for more
       information.
       The httpd service enables PrivateTmp by default. The /tmp and /var/tmp
       directories available within the httpd process (and CGI scripts, etc)
       are not shared by other processes. See systemd.exec(5) for more
       information.
   Socket activation
       Socket activation (see systemd.socket(5) for more information) can be
       used with httpd by enabling the httpd.socket unit. The httpd listener
       configuration must exactly match the ListenStream options configured
       for the httpd.socket unit. The default httpd.socket has a
       ListenStream=80 and, if mod_ssl is installed, ListenStream=443 by a
       drop-in file. If additional Listen directives are added to the httpd
       configuration, corresponding ListenStream options should be added via
       drop-in files, for example via systemctl edit httpd.socket.
       If using socket activation with httpd, only one listener on any given
       TCP port is supported; a configuration with both "Listen 127.0.0.1:80"
       and "Listen 192.168.1.2:80" will not work.
   Instantiated services
       The httpd@.service unit is an instantiated template service. An
       instance of this unit will be started using the configuration file
       /etc/httpd/conf/INSTANCE.conf, where INSTANCE is replaced with the
       instance name. For example, systemctl start httpd AT foobar.service will
       start httpd using the configuration file /etc/httpd/conf/foobar.conf.
       The HTTPD_INSTANCE environment variable is set to the instance name by
       the unit and is available for use within the configuration file.
       To allow multiple instances of httpd to run simultaneously, a number of
       configuration directives must be changed, such as PidFile and
       DefaultRuntimeDir to pick non-conflicting paths, and Listen to choose
       different ports. The example configuration file
       /usr/share/doc/httpd/instance.conf demonstrates how to make such
       changes using HTTPD_INSTANCE variable.
       It can be useful to configure instances of httpd@.service to reload
       when httpd.service is reloaded; for example, logrotate will reload only
       httpd.service when logs are rotated. If this behaviour is required,
       create a drop-in file for the instance as follows:
           [Unit]
           ReloadPropagatedFrom=httpd.service
       As with normal units, drop-in files for instances can be created using
       systemctl edit, e.g.  systemctl edit httpd AT foobar.service.
FILES
       /usr/lib/systemd/system/httpd.service,
       /usr/lib/systemd/system/httpd.socket,
       /usr/lib/systemd/system/httpd@.service,
       /etc/systemd/systemd/httpd.service.d
SEE ALSO
       httpd(8), httpd.conf(5), systemd(1), systemctl(1), systemd.service(5),
       systemd.exec(5), systemd.socket(5), httpd_selinux(8), semanage(8)
AUTHOR
       Joe Orton <jorton AT redhat.com>
           Author
httpd                             08/12/2024                  HTTPD.SERVICE(8)