What Is Apache (Apache HTTP Server)?
Apache, formally the Apache HTTP Server and commonly run as a background process called httpd, is free, open-source web server software maintained by the Apache Software Foundation. It has been one of the most widely used web servers since its release in 1995, known for its modular design and for supporting per-directory .htaccess configuration files that let individual site folders override server settings without touching the main configuration.
Where Apache came from
Apache grew out of NCSA HTTPd, an early web server, and was first released under the Apache Software Foundation in 1995. According to the project's own commonly repeated history, the name plays on it being "a patchy server," built from a collection of software patches contributed by its early developers. Three decades later, it remains an actively maintained, mainstream choice, particularly on Linux-based shared hosting and cPanel environments.
How Apache handles requests: MPMs
Apache processes incoming connections using a swappable component called a Multi-Processing Module (MPM), and the choice of MPM shapes how it performs under load:
| MPM | How it works | Notable trait |
|---|---|---|
| prefork | Spawns a separate process per connection | Compatible with older, non-thread-safe modules like mod_php |
| worker | Uses threads within processes | Lower memory use than prefork under load |
| event | Threaded, with dedicated handling for keep-alive connections | Default on most modern installs, closest to Nginx-style efficiency |
Key features that define Apache
- .htaccess files: per-directory configuration that site owners can edit without server-wide access, widely used on shared hosting
- Modular architecture: functionality like URL rewriting (mod_rewrite), HTTPS (mod_ssl), and web application firewall rules (mod_security) are added as loadable modules
- Virtual hosts: name-based configuration that lets one Apache install serve many different domains from a single server
- Broad platform support: runs on Linux, Windows, and macOS, and is bundled with most Linux distributions' package managers
Apache today: still a mainstream choice
Apache remains a default option on much of cPanel-based shared hosting and continues to pair closely with PHP, either through the older mod_php module or the faster, more modern PHP-FPM. It coexists in the market with alternatives such as Nginx and LiteSpeed, each with different strengths around raw concurrency and built-in caching, but Apache's long track record and .htaccess flexibility keep it in active, ongoing use rather than treated as legacy software.
Basic commands for managing Apache
On most Linux systems, Apache is managed through systemd and its own configuration-test utility:
# Start, stop, and check status
sudo systemctl start apache2
sudo systemctl status apache2
# Test configuration syntax before reloading
apachectl configtest
# Reload configuration without dropping connections
sudo systemctl reload apache2
Frequently asked questions
What does httpd stand for?
httpd stands for "HTTP daemon," the generic name for the background process that runs the Apache HTTP Server (or another web server) and listens for incoming HTTP requests.
Is Apache free to use?
Yes, Apache HTTP Server is free, open-source software released under the Apache License, with no cost to download, install, or run on your own server.
Is Apache still widely used today?
Yes, Apache remains an actively maintained and commonly deployed web server, especially on Linux-based shared hosting and cPanel environments, alongside alternatives like Nginx and LiteSpeed.
What is .htaccess used for in Apache?
A .htaccess file lets you set configuration for a specific folder, such as redirects, custom error pages, or access restrictions, directly from that folder without editing the server's main configuration file.
Does Apache support PHP?
Yes, Apache runs PHP either through the older mod_php module, which embeds PHP directly in the Apache process, or through PHP-FPM, a separate PHP process manager that Apache forwards requests to.
How do I check which Apache version I'm running?
Run "apache2 -v" or "httpd -v" at the command line on most Linux systems, or check the server information shown in your hosting control panel if you do not have direct server access.
Related topics
- What Is a Web Server? Web Servers
- What Is Shared Hosting? Hosting Basics
- What Is cPanel? Control Panels
- What Is an SSL Certificate? Security & SSL
- Apache vs. Nginx Web Servers