Quinn Labs: A website about building websites

FEMP LAMP 01

FEMP > LAMP

Upshot

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.

LAMP

The basic software components of a web server to provide a dynamic, database-driven web site, using only open-source software, are these:

  1. a Unix-like operating system
  2. web-server software
  3. a database management system (DBMS)
  4. 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:

  1. Linux
  2. Apache
  3. MySQL
  4. 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.

FEMP

Our web-server stack comprises these:

  1. FreeBSD
  2. Nginx (pronounced “engine X”)
  3. MariaDB
  4. PHP

FreeBSD

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

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

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

PHP

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.

About the Author

  • Fred Condo

    Fred has a Ph.D. in the Management of Information Systems and Cognitive Psychology from Claremont Graduate School, and is Chief Engineer at Quinn Interactive. He taught a graduate level class, “Principles of Usability” at the Academy of Art in San Francisco, and was an Assistant Professor in the Communication Design department at California State University, Chico for 6 years, teaching web development and human factors. Fred got into SilverStripe in 2008. He has made 35 commits to the SilverStripe framework repository, which makes him the 36th-most prolific contributor to the project (as of November 2014). You should follow him on GitHub here.

    More from Fred Condo