LAMPA (pakiet oprogramowania) - LAMP (software bundle)

Ogólny przegląd elementów składowych LAMP i ogólnego środowiska systemowego

Lampa ( L inux, Pache, M ySQL, P KM / P Erl / P ython) to skrót oznaczający jeden z najczęstszych stosy rozwiązanie dla wielu sieci najpopularniejszych zastosowań . Jednak LAMP odnosi się teraz do ogólnego modelu stosu oprogramowania, a jego komponenty są w dużej mierze wymienne.

Każda litera w akronimie oznacza jeden z czterech elementów konstrukcyjnych typu open source :

Komponenty stosu LAMP są obecne w repozytoriach oprogramowania większości dystrybucji Linuksa .

Historia

Akronim LAMP został wymyślony przez Michaela Kunze w grudniowym numerze Computertechnik , niemieckiego magazynu komputerowego, gdy wykazał, że pakiet wolnego oprogramowania o otwartym kodzie źródłowym „może być realną alternatywą dla drogich pakietów komercyjnych”. Od tego czasu O'Reilly Media i MySQL połączyły siły, aby spopularyzować akronim i ewangelizować jego użycie. Termin i koncepcja stały się popularne, ponieważ był to jeden z pierwszych stosów oprogramowania typu open source dla sieci, z wystarczającymi możliwościami do hostowania różnych frameworków internetowych, takich jak Joomla , WordPress i Drupal .

Warianty

Model LAMP został dostosowany do innych komponentów, choć zazwyczaj składa się z darmowego oprogramowania o otwartym kodzie źródłowym . Na przykład równoważna instalacja w rodzinie systemów operacyjnych Microsoft Windows nosi nazwę WAMP, a równoważna instalacja w systemie macOS nosi nazwę MAMP .

Wraz z rosnącym wykorzystaniem archetypowej LAMP pojawiły się wariacje i retronimy dla innych kombinacji systemu operacyjnego, serwera WWW, bazy danych i języka oprogramowania. Na przykład równoważna instalacja w rodzinie systemów operacyjnych Microsoft Windows jest znana jako WAMP . Alternatywne uruchamianie IIS zamiast Apache nosi nazwę WIMP . Warianty obejmujące inne systemy operacyjne obejmują MAMP ( macOS ), SAMP ( Solaris ), FAMP ( FreeBSD ), iAMP ( IBM i ) oraz XAMPP (wieloplatformowy).

Różni się również serwer sieciowy lub system zarządzania bazą danych. LEMP to wersja, w której Apache został zastąpiony lżejszym serwerem WWW Nginx . Wersja, w której MySQL został zastąpiony przez PostgreSQL, nazywa się LAPP lub czasami zachowując oryginalny akronim LAMP (Linux / Apache / Middleware (Perl, PHP, Python, Ruby) / PostgreSQL).

Pakiet LAMP można łączyć z wieloma innymi darmowymi i otwartymi pakietami oprogramowania, w tym:

Innym przykładem jest oprogramowanie, którego Wikipedia i inne projekty Wikimedia Foundation używają w swojej podstawowej infrastrukturze, to dostosowany stos LAMP z dodatkami, takimi jak Linux Virtual Server (LVS) do równoważenia obciążenia oraz Ceph i Swift do rozproszonych obiektów pamięci masowej .

Komponenty oprogramowania

Ogólny przegląd elementów determinujących LAMP ( Firefox służy tylko jako przykład przeglądarki ).

Linux

Linux jest Uniksopodobny komputerze system operacyjny montowane pod modelu wolne i otwarte oprogramowanie rozwoju i dystrybucji. Większość dystrybucji Linuksa , jako kolekcje oprogramowania opartego na jądrze Linuksa i często wokół systemu zarządzania pakietami , dostarcza kompletne konfiguracje LAMP poprzez swoje pakiety . Według W3Techs w październiku 2013 r. 58,5% udziału w rynku serwerów WWW przypada na Debiana i Ubuntu , podczas gdy RHEL , Fedora i CentOS mają łącznie 37,3%.

Apache

Rola serwera internetowego LAMP jest tradycyjnie dostarczana przez Apache i od tego czasu obejmuje inne serwery internetowe, takie jak Nginx .

Apache HTTP Server jest najbardziej popularny serwer WWW w Internecie publicznym. W czerwcu 2013 r. Netcraft oszacował, że Apache obsługiwał 54,2% wszystkich aktywnych witryn i 53,3% najlepszych serwerów we wszystkich domenach. Szacuje się, że w czerwcu 2014 r. Apache obsługiwał 52,27% wszystkich aktywnych witryn, a następnie Nginx z 14,36%.

Apache jest rozwijany i utrzymywany przez otwartą społeczność programistów pod auspicjami Apache Software Foundation . Wydany na licencji Apache , Apache jest oprogramowaniem typu open source . Obsługiwana jest szeroka gama funkcji, a wiele z nich jest zaimplementowanych jako skompilowane moduły, które rozszerzają podstawową funkcjonalność Apache. Mogą one obejmować obsługę języka programowania po stronie serwera po uwierzytelnianie.

MySQL i alternatywy dla baz danych

Pierwotna rola MySQL jako systemu zarządzania relacyjnymi bazami danych LAMP była od tego czasu udostępniana naprzemiennie przez inne, takie jak PostgreSQL , MariaDB ( opracowany przez społeczność fork MySQL opracowany przez pierwotnych programistów), a nawet bazy danych NoSQL, takie jak MongoDB .

MySQL jest to wielowątkowe , wielu użytkowników , SQL system zarządzania bazami danych , nabyte przez firmę Sun Microsystems w 2008 roku, które zostało następnie przejętych przez Oracle Corporation w roku 2010. Od wczesnych lat zespół MySQL dokonał jego kod źródłowy dostępny pod warunkami Powszechna Licencja Publiczna GNU , a także na podstawie różnych umów własnościowych .

PostgreSQL to również zgodny z ACID system zarządzania obiektowo-relacyjnymi bazami danych opracowany przez PostgreSQL Global Development Group.

MongoDB to internetowa baza danych NoSQL, która unika tradycyjnej struktury relacyjnej bazy danych na rzecz dokumentów podobnych do JSON z dynamicznymi schematami (nazywającymi format BSON ), dzięki czemu integracja danych w niektórych typach aplikacji jest łatwiejsza i szybsza.

PHP i alternatywy

Rolę PHP jako języka programowania aplikacji LAMP pełniły również inne języki, takie jak Perl i Python .

PHP to język skryptowy po stronie serwera przeznaczony do tworzenia stron internetowych, ale również używany jako język programowania ogólnego przeznaczenia . Kod PHP jest interpretowany przez serwer WWW za pośrednictwem modułu procesora PHP, który generuje wynikową stronę WWW. Polecenia PHP można opcjonalnie osadzać bezpośrednio w dokumencie źródłowym HTML, zamiast wywoływania zewnętrznego pliku do przetwarzania danych. Ewoluował również, aby zawierać interfejs wiersza poleceń i może być używany w samodzielnych aplikacjach graficznych . PHP jest wolnym oprogramowaniem wydanym na warunkach licencji PHP , które jest niezgodne z Powszechną Licencją Publiczną GNU (GPL) ze względu na ograniczenia, jakie licencja PHP nakłada na używanie terminu PHP .

Perl to rodzina wysokopoziomowych , interpretowanych, dynamicznych języków programowania ogólnego przeznaczenia . Języki z tej rodziny to Perl 5 i Raku . Zapewniają zaawansowane funkcje przetwarzania tekstu bez arbitralnych ograniczeń długości danych wielu współczesnych narzędzi wiersza poleceń systemu Unix , ułatwiając manipulowanie plikami tekstowymi . Perl 5 zyskał powszechną popularność pod koniec lat dziewięćdziesiątych jako język skryptowy CGI dla sieci, częściowo ze względu na jego możliwości parsowania .

Python jest powszechnie używanym, interpretowanym językiem programowania ogólnego przeznaczenia, wysokiego poziomu . Python obsługuje wiele paradygmatów programowania , w tym paradygmaty zorientowane obiektowo , imperatywne , funkcjonalne i proceduralne . Posiada dynamiczny system typów , automatyczne zarządzanie pamięcią , standardową bibliotekę i ścisłe użycie białych znaków . Podobnie jak inne języki dynamiczne , Python jest często używany jako język skryptowy , ale jest również używany w wielu kontekstach nieskryptowych.

Wysoka dostępność i równoważenie obciążenia

W przypadku witryn obsługujących dużą liczbę żądań lub świadczących usługi wymagające długiego czasu pracy bez przestojów wymagane są specjalne rozwiązania . Podejścia wysokiej dostępności dla stosu LAMP mogą obejmować wiele serwerów internetowych i baz danych, w połączeniu z dodatkowymi komponentami, które wykonują logiczną agregację zasobów dostarczanych przez każdy z serwerów, a także dystrybucję obciążenia na wiele serwerów. Agregacja serwerów WWW może być zapewniona poprzez umieszczenie przed nimi load balancera , na przykład za pomocą Linux Virtual Server (LVS). Do agregacji serwerów baz danych MySQL zapewnia wewnętrzne mechanizmy replikacji , które implementują relację master/slave między oryginalną bazą danych (master) a jej kopiami (slave).

Takie konfiguracje o wysokiej dostępności mogą również poprawić dostępność instancji LAMP, zapewniając różne formy nadmiarowości , umożliwiając przestoje określonej liczby komponentów (oddzielnych serwerów) bez przerywania użytkownikom usług świadczonych jako całości. Takie nadmiarowe konfiguracje mogą również radzić sobie z awariami sprzętu powodującymi utratę danych na poszczególnych serwerach w sposób, który zapobiega rzeczywistej utracie danych przechowywanych zbiorczo. Oprócz wyższej dostępności, takie konfiguracje LAMP są w stanie zapewnić niemal liniową poprawę wydajności usług, których liczba operacji odczytu wewnętrznej bazy danych jest znacznie większa niż liczba operacji zapisu/aktualizacji.

Zobacz też

Bibliografia

Zewnętrzne linki