ЛАМПА (комплект программного обеспечения)
LAMP ) — ( L inux, A pache, MySQL , Perl / P HP/ Python один из наиболее распространенных программных стеков для самых популярных веб -приложений . Его общая модель стека программного обеспечения состоит в основном из взаимозаменяемых компонентов. [ 1 ]
Каждая буква в аббревиатуре обозначает один из четырех строительных блоков с открытым исходным кодом :
- L inux для операционной системы
- пачами HTTP-сервер с
- MySQL для системы управления реляционными базами данных
- Perl или , P HP . Python языка в качестве программирования
Компоненты стека LAMP присутствуют в репозиториях программного обеспечения большинства дистрибутивов Linux .
История
[ редактировать ]Аббревиатура LAMP была придумана Михаэлем Кунце в декабрьском выпуске немецкого компьютерного журнала Computertechnik за 1998 год , когда он продемонстрировал, что пакет бесплатного программного обеспечения с открытым исходным кодом «может быть реальной альтернативой дорогим коммерческим пакетам». [ 2 ] С тех пор O'Reilly Media и MySQL объединились, чтобы популяризировать эту аббревиатуру и пропагандировать ее использование. [ 3 ] Этот термин и концепция стали популярными благодаря одному из первых пакетов программного обеспечения с открытым исходным кодом для Интернета. Стек способен размещать различные веб-фреймворки и приложения, такие как WordPress и Drupal . [ 4 ]
Варианты
[ редактировать ]Модель LAMP была адаптирована к другим компонентам, хотя обычно состоит из бесплатного программного обеспечения с открытым исходным кодом . С ростом использования архетипического LAMP появились вариации и ретронимы для других комбинаций операционной системы, веб-сервера, базы данных и языка программного обеспечения. Например, эквивалентная установка в семействе операционных систем Microsoft Windows известна как WAMP . Альтернативный вариант запуска IIS вместо Apache называется WIMP . Варианты, включающие другие операционные системы, включают MAMP ( macOS ), SAMP ( Solaris ), FAMP ( FreeBSD ), iAMP ( IBM i ) и XAMPP (кроссплатформенный). [ нужна ссылка ]
Веб-сервер или система управления базами данных также различаются. LEMP — это версия, в которой Apache заменен более легким веб-сервером Nginx . [ 5 ] Версия, в которой MySQL был заменен PostgreSQL , называется LAPP или иногда сохраняет исходную аббревиатуру LAMP (Linux/Apache/Middleware (Perl, PHP, Python, Ruby)/PostgreSQL). [ 6 ]
Пакет LAMP можно комбинировать со многими другими бесплатными программными пакетами с открытым исходным кодом, в том числе:
- netsniff-ng для тестирования и усиления безопасности
- Snort — система обнаружения вторжений (IDS) и предотвращения вторжений (IPS).
- RRDtool для диаграмм
- Nagios , Collectd или Cacti для мониторинга.
Другой пример: программное обеспечение, которое Arc.Ask3.Ru и другие проекты Фонда Викимедиа используют для своей базовой инфраструктуры, представляет собой настроенный стек LAMP с такими дополнениями, как виртуальный сервер Linux (LVS) для балансировки нагрузки , а также Ceph и Swift для распределенных объектных хранилищ. [ нужна ссылка ]
Программные компоненты
[ редактировать ]Линукс
[ редактировать ]Linux — это Unix-подобная компьютерная операционная система, созданная по модели разработки и распространения бесплатного программного обеспечения с открытым исходным кодом . Большинство дистрибутивов Linux , представляющих собой наборы программного обеспечения, основанные на ядре Linux и часто на системе управления пакетами , предоставляют полные настройки LAMP через свои пакеты. По данным W3Techs в октябре 2013 года, 58,5% доли рынка веб-серверов принадлежит Debian и Ubuntu , тогда как RHEL , Fedora и CentOS вместе делят 37,3%. [ 7 ]
Апач
[ редактировать ]Роль веб-сервера LAMP традиционно выполнял Apache, а с тех пор в него вошли и другие веб-серверы, такие как Nginx .
Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation . Apache, выпущенный по лицензии Apache , представляет собой программное обеспечение с открытым исходным кодом . Поддерживается широкий спектр функций, многие из которых реализованы в виде скомпилированных модулей , которые расширяют основные функциональные возможности Apache. Они могут варьироваться от поддержки языка программирования на стороне сервера до аутентификации.
MySQL и альтернативы базам данных
[ редактировать ]LAMP Первоначальная роль MySQL как системы управления реляционными базами данных с тех пор попеременно выполнялась другими, такими как PostgreSQL , MariaDB (развитая сообществом версия MySQL, разработанная ее первоначальными разработчиками) и даже NoSQL базами данных , такими как MongoDB .
MySQL — многопоточная , многопользовательская SQL данных система управления базами . [ 8 ] приобретена Sun Microsystems в 2008 году, которая затем была приобретена Oracle Corporation в 2010 году. [ 9 ] С первых лет своего существования команда MySQL предоставила свой исходный код доступным на условиях GNU General Public License , а также на условиях различных соглашений о правах собственности .
PostgreSQL также является ACID -совместимой объектно-реляционной системой управления базами данных, разработанной PostgreSQL Global Development Group.
MongoDB — это база данных NoSQL , которая отказывается от традиционной структуры реляционной базы данных в пользу JSON -подобных документов с динамическими схемами (называемыми форматом BSON ), что упрощает и ускоряет интеграцию данных в приложениях определенных типов.
PHP и альтернативы
[ редактировать ]Роль PHP как языка прикладного программирования LAMP также выполняли другие языки, такие как Perl и Python.
PHP — это серверный язык сценариев, предназначенный для веб-разработки , но также используемый в качестве языка программирования общего назначения . Код PHP интерпретируется веб-сервером через модуль процессора PHP, который генерирует результирующую веб-страницу. Команды PHP могут быть встроены непосредственно в исходный документ HTML вместо вызова внешнего файла для обработки данных. Он также был усовершенствован и теперь включает возможности интерфейса командной строки и может использоваться в автономных графических приложениях . [ 10 ] PHP — это бесплатное программное обеспечение, выпущенное на условиях лицензии PHP , которая несовместима с лицензией GNU General Public License (GPL) из-за ограничений лицензии PHP, налагаемых на использование термина PHP . [ 11 ]
Perl — семейство высокоуровневых интерпретируемых динамических языков программирования общего назначения . Языки этого семейства включают Perl 5 и Raku . [ 12 ] Они предоставляют расширенные возможности обработки текста без произвольных ограничений на длину данных, присущих многим современным инструментам командной строки Unix . [ 13 ] облегчение манипулирования текстовыми файлами . Perl 5 приобрел широкую популярность в конце 1990-х годов как язык сценариев CGI для Интернета, отчасти благодаря своим возможностям синтаксического анализа . [ 14 ]
Python общего назначения высокого уровня . — широко используемый интерпретируемый язык программирования [ 15 ] Python поддерживает несколько парадигм программирования , включая объектно-ориентированную , императивную , функциональную и процедурную парадигмы. Он имеет динамическую систему типов , автоматическое управление памятью , стандартную библиотеку и строгое использование пробелов . [ 16 ] Как и другие динамические языки , Python часто используется в качестве языка сценариев , но также используется в широком диапазоне контекстов, не связанных со сценариями.
Высокая доступность и балансировка нагрузки
[ редактировать ]Особые подходы необходимы для веб-сайтов, которые обслуживают большое количество запросов или предоставляют услуги, требующие длительного времени безотказной работы . Подходы обеспечения высокой доступности для стека LAMP могут включать несколько веб-серверов и серверов баз данных в сочетании с дополнительными компонентами, которые выполняют логическую агрегацию ресурсов, предоставляемых каждым из серверов, а также распределение рабочей нагрузки между несколькими серверами. Агрегацию веб-серверов можно обеспечить путем размещения перед ними балансировщика нагрузки, например, с помощью виртуального сервера Linux (LVS). Для агрегации серверов баз данных MySQL предоставляет внутренние механизмы репликации, которые реализуют отношения «главный/подчиненный» между исходной базой данных (главной) и ее копиями (подчиненными). [ 17 ]
Такие настройки высокой доступности также могут повысить доступность экземпляров LAMP, обеспечивая различные формы резервирования , позволяя определенному количеству компонентов (отдельным серверам) испытывать простои, не прерывая работу пользователей предоставляемых услуг в целом. Такие избыточные настройки могут также обрабатывать сбои оборудования, приводящие к потере данных на отдельных серверах, таким образом, чтобы предотвратить фактическую потерю коллективно хранящихся данных. Помимо более высокой доступности, такие настройки LAMP способны обеспечить почти линейное улучшение производительности для сервисов, у которых количество операций чтения внутренней базы данных намного превышает количество операций записи/обновления. [ 17 ]
См. также
[ редактировать ]- Список пакетов Apache – MySQL – PHP
- LYME (пакет программного обеспечения) – стек программного обеспечения на базе Erlang.
- MEAN (стек программного обеспечения) — стек программного обеспечения JavaScript для создания динамических веб-сайтов и веб-приложений.
- Стек решений
- Система управления веб-контентом
- Установщик веб-платформы
Ссылки
[ редактировать ]- ^ «LAMP (Linux, Apache, MySQL, PHP)» . SearchEnterpriseLinux . Архивировано из оригинала 28 ноября 2021 года . Проверено 15 декабря 2021 г.
- ^ Кунце, Майкл (декабрь 1998 г.). «LAMP: бесплатная система веб-публикации с поддержкой баз данных» . не так ли . Архивировано из оригинала 3 февраля 1999 года . Проверено 15 июня 2024 г.
- ^ Кей, Рассел (25 сентября 2006 г.). «Как: ЛАМПА» . Компьютерный мир . Архивировано из оригинала 11 июля 2021 года . Проверено 15 декабря 2021 г.
- ^ «Стопка ЛАМП» . Центр облачного обучения IBM . ИБМ. Октябрь 2015 г. Архивировано из оригинала 15 декабря 2021 г. Проверено 15 декабря 2021 г.
- ^ «Стек LEMP (Linux, Nginx, MySQL, PHP)» . lemp.io. Архивировано из оригинала 19 ноября 2021 года . Проверено 16 декабря 2021 г.
- ^ «Избранные пользователи» . ПостгреSQL. Архивировано из оригинала 22 января 2014 года . Проверено 22 января 2014 г.
- ^ «Debian/Ubuntu расширяет доминирование на рынке веб-серверов Linux» . W³Techs . Проверено 16 декабря 2021 г.
- ^ «Основные причины для встраивания менеджеров по продуктам» . MySQL. Архивировано из оригинала 2 июля 2014 года . Проверено 27 июля 2014 г.
- ^ «Sun блокирует MySQL и смотрит на будущее веб-разработки» . Информационная неделя. Архивировано из оригинала 28 февраля 2008 года . Проверено 27 июля 2014 г.
- ^ «Введение: что может PHP?» . Руководство по PHP . Архивировано из оригинала 15 декабря 2021 года . Проверено 16 декабря 2021 г.
- ^ «Лицензии свободного программного обеспечения, несовместимые с GPL» . Различные лицензии и комментарии к ним . Фонд свободного программного обеспечения. Архивировано из оригинала 16 декабря 2021 года . Проверено 16 декабря 2021 г.
- ^ «О Перле» . perl.org. Архивировано из оригинала 22 ноября 2021 года . Проверено 16 декабря 2021 г.
«Perl» — это семейство языков, «Perl 6» — часть семейства, но это отдельный язык, имеющий собственную команду разработчиков. Его существование не оказывает существенного влияния на дальнейшее развитие «Perl 5».
- ^ Уолл, Ларри ; Том Кристиансен; Джон Орвант (июль 2000 г.). Программирование на Perl, третье издание . О'Рейли Медиа . ISBN 0-596-00027-8 .
- ^ Смит, Родерик В. (21 июня 2002 г.). Продвинутая сеть Linux . Аддисон-Уэсли Профессионал. п. 594. ИСБН 978-0-201-77423-8 .
- ^ «Тенденции в языке программирования – радар О'Рейли» . Радар.oreilly.com. 2 августа 2006 г. Архивировано из оригинала 24 сентября 2021 г. Проверено 16 декабря 2021 г.
- ^ «О Питоне» . Основа программного обеспечения Python. Архивировано из оригинала 16 декабря 2021 года . Проверено 16 декабря 2021 г.
- ^ Jump up to: а б Симич, Драган; Ристич, Сречко; Обрадович, Слободан (апрель 2007 г.). «Измерение достигнутого уровня производительности веб-приложений с распределенной реляционной базой данных» (PDF) . Электроника и энергетика . Факта Университета. п. 31–43. Архивировано (PDF) из оригинала 7 октября 2021 года . Проверено 16 декабря 2021 г.