FEMP > LAMP
To get great performance and lower maintenance costs from your PHP-based (SilverStripe, Drupal, Wordpress, Laravel, etc.) web site, it should run on FreeBSD, Nginx, and MariaDB (FEMP), not Linux, Apache, and MySQL (LAMP). FEMP is the platform we use at Quinn Interactive. Here’s why.
The basic software components of a web server to provide a dynamic, database-driven web site, using only open-source software, are these:
- a Unix-like operating system
- web-server software
- a database management system (DBMS)
- a web programming language (also called middleware)
In 1998, German writer Michael Kunze coined the acronym LAMP to describe a stack of open-source software that could substitute for then-available, expensive, commercial systems. Those components were these:
- PHP, Perl, or Python
These components were not specifically designed to work together. At the time, they were well-known, and served to make Kunze’s point that open-source software could be used in real-world web services. Every one of them could be replaced with something else. At Quinn Interactive, we’ve replaced the first 3.
Our web-server stack comprises these:
FreeBSD is an open-source Unix-like operating system that descends from Bell Labs’ Research Unix by way of the Berkeley Software Distribution. It grew out of research at UC Berkeley.
We prefer FreeBSD over Linux because FreeBSD:
- provides a complete operating system, so we don’t have to decide among a multitude of “distributions” as we do with Linux
- has a well-defined release process, which makes it easy to plan for upgrades
- provides a rich package library that contains the most current version of PHP (many Linux distributions still provide PHP 5.3, which is dangerously out of date)
- enables Quinn Interactive to maintain our own custom package library for ourselves and for clients who also use FreeBSD, so that our software stack is built exactly the way we want it, while still keeping the benefits of package management
Nginx is a web server. We prefer it over Apache because Nginx:
- uses fewer computing resources (memory and processor) to do the same job as Apache
- is easier to configure than Apache
- reliably provides HTTPS + SPDY
MariaDB is a drop-in replacement for MySQL, that is developed and maintained by a community led by the original developers of MySQL. We prefer it over MySQL because:
- MySQL is now controlled by Oracle, whose commercial interests are in tension with the progress of the community edition of MySQL
- MariaDB has performance improvements that are not available in the community edition of MySQL
- a well-backed foundation supports MariaDB development
We haven’t replaced PHP, which is the foundation of the SilverStripe framework, but FreeBSD makes it easy for us to deploy the most current, secure versions of PHP available.