Apache is a web server software that is created and maintained by a community called Apache Software Foundation. It’s available both as a standalone and a part of a larger stack called LAMP (Linux, Apache, MySQL, PHP)
If you’re a web developer, or familiar with web hosting, you might come across Apache every so often in the discussions about web servers. But what exactly it is, how it works, and why is it so popular? In this article, I’ll be answering all your questions and explain some of its notable features.
Before we get to that, let me tell you what a web server is. It’s a computer or a program in charge of fetching and serving the information requested by a web client (your browser) over the internet.
Apache has a lot of useful features, such as virtual domains, SSL, and CGI. However, it’s most notable for its modular design that works like a sandbox filled with existing code for you to build on. As such, it allows you to easily add or remove features using the native or third-party module patches.
Among the modules, the essential ones are the multi-processing modules (MPM) as they determine how the server does its job. Namely, to connect ports, receive data requests, and multitask processes. As a result, an Apache server can only be loaded with one MPM at a time.
Unix has Prefork-based, Worker-based, and Event-based MPM, while Windows has WinNT MPM. What differentiates them is the number of child processes and threads they can launch, as well as how many tasks they can do within a single thread.
The way this server works ties in with the previous features mentioned. Once a user sends an HTTP request via a URL, it will be relayed to the computer server that uses Apache. Then, the software will create a thread for each HTTP query it receives and responds with the data asked. This way, it can serve web pages to multiple clients at the same time.
Aside from that, Apache also caters to program-serving. Let’s say you request an executable program for a particular programming language, be it Python, PHP, or Perl. Apache can process this inquiry, provided that you have installed a suitable module for the script.
Why Should You Use Apache?
Since its conception in 1995, Apache has powered over 44% of websites on the internet, and for good reason. Below are the aspects that make it worth your consideration.
1. Open Source
Open source means that a software’s source codes are available for everyone to inspect, modify, and improve. Its flexibility is one of the reasons why Apache is so popular in the first place. Not to mention, it’s automatically free to use, so it helps to keep the cost down as well.
2. Easy to Configure
Compared to other web server software, such as NGINX or Litespeed, Apache is easy to configure since it only has four main configuration files on top of its flexible module-based architecture. They are:
- httpd.conf – the main configuration file containing most of the settings. It defines how the system works, the location where data is stored, and more.
- access.conf – this file configures security and identifies which information a user can access. Since the 2.0 version, it’s merged with the Include directive in httpd.conf that provides the same function.
- srm.conf – it handles resources and where to find them, but it’s also combined with the primary config using the same directive as above.
- mime.types – the file configures extensions with the correct file types. The newest installment of Apache utilizes the TypeConfig directive for the same effect.
It also has the all-powerful htaccess file that can apply changes on any individual directory for those without root access.
Last but not least, if you need help, there is always an active community to get technical support.
3. A Multi-Platform Web Server
Apache is compatible with multiple operating systems, be it Unix-based (Linux, Solaris, macOS and more) or Windows. Installing it on the latter is especially easy since it’s equipped with a user-friendly Graphical User Interface.
WordPress can run on Apache with little adjustments needed.
Apache supports PHP, which WordPress is written in. However, you need to need to install a module like mod_php or PHP-based process manager such as PHP-FPM to make it work. The latter is especially capable of optimizing speed for WordPress and is compatible with Apache.
Another advantage of running a WordPress site on Apache is its htaccess feature. With it, you can make useful changes to your websites such as fixing broken permalinks or strengthening the security of your WordPress admin area.
Although Apache is famous for its remarkable features, it comes with a few disadvantages:
- Security issues – since it’s highly configurable, it leads to several vulnerabilities that make it prone to some types of attacks, such as Slowloris.
- Static content inefficiencies – Apache is not as efficient in serving static data compared to NGINX or Litespeed.
- Lack of speed – in terms of speed, Apache falls behind from NGINX and LiteSpeed that can handle heavier traffic better.
Conclusion: What is Apache?
Apache is one of the most popular web servers that allows server-side applications to be installed to increase performance.
The software is open-source, comparatively easy to configure, usable on multiple platforms, and is highly compatible with WordPress.
However, it also has several drawbacks, such as security problems, static file-serving inefficiency, and speed-related issues. Nevertheless, it’s still one of the most widely-used web server software today which flexibility you can benefit from!