How to install Apache2¶
The Apache HTTP Server (“httpd”) is the most commonly used web server on Linux systems, and is often used as part of the LAMP configuration. In this guide, we will show you how to install and configure Apache2, which is the current release of “httpd”.
Install apache2¶
To install Apache2, enter the following command at the terminal prompt:
sudo apt install apache2
Configure apache2¶
Apache2 is configured by placing directives in plain text configuration files in /etc/apache2/. These directives are separated between the following files and directories:
Files¶
apache2.confThe main Apache2 configuration file. Contains settings that are global to Apache2.Note
Historically, the main Apache2 configuration file was
httpd.conf, named after the “httpd” daemon. In other distributions (or older versions of Ubuntu), the file might be present. In modern releases of Ubuntu, all configuration options have been moved toapache2.confand the below referenced directories andhttpd.confno longer exists.envvarsFile where Apache2 environment variables are set.magicInstructions for determining MIME type based on the first few bytes of a file.ports.confHouses the directives that determine which TCP ports Apache2 is listening on.
In addition, other configuration files may be added using the Include directive, and wildcards can be used to include many configuration files. Any directive may be placed in any of these configuration files. Changes to the main configuration files are only recognised by Apache2 when it is started or restarted.
The server also reads a file containing MIME document types; the filename is set by the TypesConfig directive, typically via /etc/apache2/mods-available/mime.conf, which might also include additions and overrides, and is /etc/mime.types by default.
Directories¶
conf-availableThis directory contains available configuration files. All files that were previously in/etc/apache2/conf.dshould be moved to/etc/apache2/conf-available.conf-enabledHolds symlinks to the files in/etc/apache2/conf-available. When a configuration file is symlinked, it will be enabled the next time Apache2 is restarted.mods-availableThis directory contains configuration files to both load modules and configure them. Not all modules will have specific configuration files, however.mods-enabledHolds symlinks to the files in/etc/apache2/mods-available. When a module configuration file is symlinked it will be enabled the next time Apache2 is restarted.sites-availableThis directory has configuration files for Apache2 Virtual Hosts. Virtual Hosts allow Apache2 to be configured for multiple sites that have separate configurations.sites-enabledLikemods-enabled,sites-enabledcontains symlinks to the/etc/apache2/sites-availabledirectory. Similarly, when a configuration file insites-availableis symlinked, the site configured by it will be active once Apache2 is restarted.
Detailed configuration¶
For more detailed information on configuring Apache2, check out our follow-up guides.
Part 2: Apache2 configuration settings
Part 3: how to extend Apache2 with modules.
Further reading¶
Apache2 Documentation contains in depth information on Apache2 configuration directives. Also, see the
apache2-docpackage for the official Apache2 docs.O’Reilly’s Apache Cookbook is a good resource for accomplishing specific Apache2 configurations.
For Ubuntu-specific Apache2 questions, ask in the #ubuntu-server IRC channel on libera.chat.