LAMP -- что это в программировании (web, ламп)

LAMP -- набор программных систем, используемых для работы и разработки web-приложений на ЯП PHP.

В него входят:

  1. Linux -- операционная система
  2. Apache -- web-сервер
  3. MySQL -- одна из СУБД
  4. PHP -- т.е. интерпретатор этого языка

Дело в том, что:

  • Linux -- на современных компьютерах программы обычно выполняются внутри глобальной программы -- операционной системы
  • Apache -- для приёма http-запроса от программы-клиента (веб-браузера) нужна специальная программа -- веб-сервер (см. о клиент-серверной архитектуре) -- то есть вам не достаточно просто интерпретатора php. В данном случае (в lamp), таким веб-сервером является Apache.
  • PHP -- его интерпретатор, как-то взаимодействуя с веб-сервером (а такие способы взаимодействия могут быть различными -- см. о SAPI и его видах), позволяет этому веб-серверу не просто отдавать статические html-страницы или иные файлы, но и выполнять сложную программную логику (а html отдавать как результат выполнения таких php-программ).
  • MySQL -- предоставляет услуги по обработке данных, часто используется в сложным приложениях (чтобы управлять этой системой нужно давать команды на языке SQL), но в теории (если бы её не было) можно обойтись просто записью данных в файл на диск.

Изложенное выше можно проиллюстрировать такой схемой (работа LAMP во взаимодействии клиентом):
LAMP схема работы с клиентом

Обратите внимание на то, что:

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

Рассмотрим ещё пару иллюстраций:

  1. На этой схеме показано, что в рамках LAMP и PHP и Apache взаидмодействуют с файловой системой Linux, а также раскрыты подробнее детали работы браузера, который обладает модулями интерпретации языка разметки HTML, языка стилей CSS и языка программирования JavaScript:
    LAMP схема работы, взаимодействие с файловой системой Linux
  2. На схеме ниже показана общая схема для работы PHP в качестве серверного (бэкэнд) языка: PHP-сервер схема взаимодействия с клиентом

    -- тут не конкретизирована ОС сервера, а также какая именно программа (веб-сервер) служит "привратником" для php-интерпретатора (то есть, это может быть другой набор, например lemp), но зато тут показано, что php может взаимодействовать не только с СУБД ("Database" на схеме), и с файловой системой на сервера (создавать файлы, например), а также с другими программами/службами запущенными на компьютере -- типа почтового сервера ("Mail Server"), показанного на схеме.

Дополнительные материалы