LAMP Stack

LAMP is an acronym for Linux, Apache, MySQL, and Php. These technologies are a common choice for running web servers.

Let us break this down a bit.

Linux is the operating system. For desktop and laptop personal computers your choices of operating system include Windows, Mac (OSX), or Linux. For servers your choices are either Windows or Linux. There are a few important points to consider:

  • Linux is not one thing. Think of it like the term "spices". Within the realm of spices you can have an infinite variety of choices: salt, paprika, cummin, nutmeg, etc. For businesses running Linux servers, some common flavors include CentOS and Ubuntu.
  • As a general rule, Windows and Linux are two distinctly different career paths for developers. It does not matter what your staff uses, what matters is the servers. If you have a bunch of Windows servers already, then you probably don't want to hire a LAMP stack developer. For most small and medium businesses (SMBs) looking to create a website or web application, it makes sense to choose a common Linux distribution for your server. This is because Linux is free to use and qualified Linux professionals are plentiful.

Apache is the web server software. Nginx (pronounced like Engine-X) is another common web server, Although a typical LAMP stack could be running either Nginx or Apache, it is more accurate to refer to an Nginx setup as a LEMP stack (where the E is for Nginx).

MySQL is the database. The database allows your website to store information. MariaDB is another common database that is similar to MySQL. MariaDB is often used in instead of MySQL for LAMP servers.

PHP is the server-side scripting language. Server-side just means that the code is processed on the server before the web page is displayed to the end user. An example is logging into a website. When the user enters their username and password and clicks the login button their credentials are sent to the web server. PHP code will handle the actual authentication. The PHP code will attempt to retrieve the user's information from the database and verify that the given password matches the password that is stored in the database. All of this password verification logic happens on the web server before the user is "logged in" and sent to their user dashboard screen.

This is different from client-side code, such as Javascript. Client-side code is processed by the end user's web browser after the web server has delivered the web page.

In other words, server-side code is processed on the company servers, client-side code is processed on your device.