Что такое LAMP (lamp стек)

Что такое LAMP (lamp стек) 19 Января 2022

Для установки, развертывания и отображения динамических веб-сайтов и веб-приложений и сетевого программного обеспечения на серверах используются специальные наборы ПО. К таким наборам программного обеспечения относится стек LAMP.

Что такое LAMP

LAMP - это свободно распространяемый и бесплатный набор ПО, комбинирующий четыре популярные технологии (их также называют «слоями»):

  • Linux - используется в качестве серверной ОС, выполняющая необходимые задачи. Популярная ОС распространена по всему миру и широко используется во всех отраслях, благодаря гибким функциям и возможностям настройки по сравнению с другими операционными системами.
  • Apache - веб-сервер, оснащенный дополнительными модулями, обеспечивающими совместимость веб-сервера со сценариями, написанными на различных языках программирования.
  • MySQL - СУБД, работающая на Unix и Windows, удобная в работе и подходящая для выполнения небольших проектов и также для больших и сложных сайтов.
  • PHP - серверный язык динамических сценариев (в его качестве также могут использоваться Perl или Python). Совместно с Apache помогает создавать динамические веб-страницы.

Иными словами, LAMP представляет собой комплекс, с помощью которого проекты пользователей работают стабильно, быстро и профессионально.

Архитектура LAMP

Архитектура LAMP складывается из нескольких уровней. На первом уровне находится операционная система Linux. Второй уровень занимают Apache и MySQL, на верхнем уровне PHP. Хотя номинально PHP и находится на самом верху (на уровне представления данных), компонент PHP входит в веб-сервер Apache.

Где применяется и какие функции выполняет LAMP

Область применения технологий LAMP достаточно широка и включает следующие задачи:

  • создание сред для веб-разработки и тестирования приложений, написанных под LAMP - как CMS, так и собственных наработок пользователя;
  • создание производительного веб-сервера под хостинг проектов на виртуальных или выделенных серверах;
  • развертывание сервера под систему контроля версий;
  • самообучение систем администрирования.

В стеке LAMP имеются разработанные настройки и надстройки, модули и библиотеки, с помощью которых можно отлаживать рабочие технологии компании под актуальные потребности. Так, доступность LAMP может быть улучшена либо в ходе распределения нагрузки между веб-серверами или серверами баз данных, либо за счет использования уровней избыточности ресурсов для обслуживания новых пользователей.

Благодаря особенностям структуры LAMP, корпоративные приложения, для которых она используется, способны максимально долгое время работать безотказно и бесперебойно даже при повышенных нагрузках.

Преимущества и недостатки

К преимуществам LAMP стоит отнести:

  • простоту конфигурации, значительно ускоряющую развертывание приложений;
  • совместимость всех слоев стека с серверами, работающими на Ubuntu;
  • возможность создания на базе стека большого числа приложений с открытым исходным кодом, в том числе систем управления содержимым и управляющих приложений;
  • гибкость в работе с БД, web-серверами и языками сценариев;
  • использование наборов открытого ПО, ускоряющее процессы разработки;
  • возможность использования альтернативных слоев - PostgreSQL и SQLite вместо MySQL, Python, Perl и Ruby вместо PHP, Nginx, Cherokee и Lighttpd как замена Apache;
  • применение Tasksel - инструмента Debian/Ubuntu - для ускорения установки LAMP и объединения нескольких зависимых пакетов в общую серверную задачу.

Однако, несмотря на удобство и практичность LAMP, у этой комбинации есть и ряд недостатков:

  • существует риск снижения производительности и сложностей в определении источника этой проблемы (приложения или БД) из-за использования одних и тех ресурсов сервера;
  • могут возникнуть проблемы с проведением горизонтального масштабирования, с интеграцией с облаком, с переключением между внутренними и внешними инструментами.

Также для LAMP прогнозируется спад востребованности из-за преобладания JavaScript и облачных сред.

Как установить LAMP

Установка и настройка стека LAMP возможна практически на любом сервере, как с использованием утилиты Tasksel, так и вручную (через командную строку).

При этом Apache, MySQL и PHP (для Ubuntu 16.04 и выше) устанавливаются следующим образом:

  • обновляется список доступных пакетов (sudo apt-get update);
  • проводится установка (sudo apt-get install apache2) и запуск (sudo service apache start) Apache.
  • после обновления страницы устанавливается сервер MySQL (sudo apt-get install mysql-server);
  • после подтверждения согласия и ввода пароля устанавливаются все компоненты для поддержки языка PHP (sudo apt-get Install php7.2 libapache2-mod-php7.2 phpmysql) и оболочка phpMyAdmin (sudo apt-get install phpmyadmin php-mbstring php-gettext). Затем вводится команда sudo apt-get install php. Настройка базы выполняется при помощи специального конфигуратора.

Используя утилиту Tasksel, для установки LAMP на дистрибутив Ubuntu необходимо ввести команду sudo tasksel install lamp-server.

Для Debian и ему подобных вводится команда sudo systemctl start apache2.service, для CentOS и ее дериватов - sudo systemctl start httpd.service;

Какие технические стеки еще бывают

Помимо стека LAMP существует еще несколько различных стеков:

  • LEMP - Linux, Nginx (engine-x), MariaDB (MySQL), PHP (Perl,Python). Данный стек применяется для обслуживания динамических веб-страниц и веб-приложений, чаще всего на сайтах WordPress;
  • MEAN - стек, включающий базу данных MongoDB (NoSQL), фреймворк Express.js, пользовательскую платформу разработки Angular и среду выполнения Node.js. Данный стек применяется для разработки веб-приложений;
  • XAMPP - кроссплатформенный стек, комбинирующий Apache, MariaDB и PHP или Perl. Благодаря своей кроссплатформенности он может использоваться на Windows, MacOS или Linux, применяться для установки и запуска локальных серверов для тестирования и развертывания. XAMPP задействуется в таких продуктах, как Drupal, Joomla, WordPress, Magento, SuiteCRM;
  • WAMP - стек, схожий по структуре с LAMP, но работающий на ОС Windows;
  • AMPPS - наиболее сложный по структуре стек, в который входят LAMP, WAMP и MAMP - продукт от Softaculous на базе ОС Macintosh, Apache, MySQL, MongoDB, PHP (также Perl и Python).

Заключение.

LAMP стек можно описать как «стабильный, простой и мощный». Он является одним из первых стеков ПО с открытым исходным кодом для разработки веб-приложений и остается самым популярным способом их доставки. На нем основаны современные веб-приложения, такие как WordPress, Drupal и другие.