Special software suites use to install, deploy and display the dynamic websites, web applications and the network software on the servers. Such software suites include LAMP stack.
What is a LAMP
LAMP is a free and open source software suite combines four popular technologies (also referred to as "layers"):
- Linux - uses as a server of the operating system performing the necessary tasks. The popularity of OS spread all over the world and widely used in all industries due to its flexible features and customization options compared with the other operating systems.
- Apache is a web server equipped with the additional modules. It makes a web server compatible with the scripts written in the various programming languages.
- MySQL is a DBMS running on Unix and Windows easy to use and it is suitable for the small projects and also for the large and complex sites.
- PHP is a server-side dynamic scripting language (Perl or Python can also be used as it). Together with Apache, it helps to create dynamic web pages.
In other words, LAMP is a complex where the users' projects work stably, quickly and professionally.
The architecture of LAMP consists of the several layers. At first level is Linux operating system. The second level occupied by Apache and MySQL. At the top level is PHP. Although PHP is nominally at the top (representation layer). PHP component is a part of Apache web server.
Where use it and what functions does LAMP perform?
The scope of LAMP technologies is quite wide and includes the following tasks:
- creation the environments for web development and testing the applications prepared due to LAMP - both CMS and user's own developments;
- creation a productive web server for hosting projects on the virtual or dedicated servers;
- deploying a server due to a version control system;
- self-training of administration systems.
LAMP stack has developed settings and add-ons, modules and libraries where it is possible to debug the company's working technologies for current needs. For example, LAMP availability could be improved either by balancing the load across web servers or database servers, or by using the resource redundancy levels to serve new users.
Due to the peculiarities of LAMP structure, corporate applications where it is used are able to work smoothly and uninterruptedly for as long as possible even with the increased loads.
Advantages and disadvantages
The advantages of LAMP include:
- ease of configuration, significantly speeding up the deployment of applications;
- compatibility all layers of a stack with servers running on Ubuntu;
- the ability to create a large number of the open source applications based on a stack, including content management systems and control applications;
- flexibility work with databases, web servers and with the scripting languages;
- use of open source kits speeding up the development processes;
- the ability to use alternative layers - PostgreSQL and SQLite instead of MySQL, Python, Perl and Ruby instead of PHP, Nginx, Cherokee and Lighttpd as a replacement for Apache;
- using Tasksel - a Debian/Ubuntu tool - to speed up the installation of LAMP and combine the multiple dependent packages into a common server task.
However, despite on a convenience and practicality of LAMP, this combination has a number of disadvantages:
- there is a risk of performance degradation and the difficulties in determining the source of this problem (application or database) due to the use of the same server resources;
- there could be the problems with the horizontal scaling, with the integration’s cloud, with the switching between internal and external tools.
How to install LAMP
Installing and configuring LAMP stack is possible with almost any server, both using Tasksel utility and manually (via the command line).
This installs Apache, MySQL and PHP (for Ubuntu 16.04 and above) as follows:
the list of available packages is updating (
sudo apt-get update);
Apache is installing (
sudo apt-get install apache2)and launching (
sudo service apache start);
after the refreshing a page MySQL server is installing (
sudo apt-get install mysql-server);
after confirming a consent and entering a password all components for supporting PHP language are installing (
sudo apt-get Install php7.2 libapache2-mod-php7.2 phpmysql) and the phpMyAdmin shell (
sudo apt-get install phpmyadmin php-mbstring php-gettext). Then enter the command
sudo apt-get install php. The database configures with a special configurator.
Using the Tasksel utility for LAMP installing on Ubuntu distribution, enter the command
sudo tasksel install lamp-server.
For Debian and so on enter the command
sudo systemctl start apache2.service, for CentOS and its derivatives -
sudo systemctl start httpd.service.
Which technical stacks are out there?
In addition to LAMP stack there are several other different stacks:
- LEMP - Linux, Nginx (engine-x), MariaDB (MySQL), PHP (Perl,Python). This stack uses to serve the dynamic web pages and web applications most commonly on WordPress sites;
- MEAN is a stack that includes MongoDB (NoSQL) database, Express.js framework, Angular custom development platform and Node.js runtime. This stack uses to develop the web applications;
- XAMPP is a cross-platform stack combining Apache, MariaDB and PHP or Perl. Due to its cross-platform nature, it could be used on Windows, MacOS or Linux to install and run the local servers for testing and deployment. XAMPP uses in the products such as Drupal, Joomla, WordPress, Magento, SuiteCRM;
- WAMP - a stack similar in structure to LAMP, but running on Windows;
- AMPPS is the most complex stack in structure that includes LAMP, WAMP and MAMP - a product from Softaculous based on Macintosh, Apache, MySQL, MongoDB, PHP (also Perl and Python).
LAMP stack could be described as a "stable, simple and powerful". It is one of the first open source software stacks for developing the web applications and remains the most popular way to deliver them. Modern web applications such as WordPress, Drupal and others are based on it.