LAMP (yazılım paketi) - LAMP (software bundle)

LAMP'ın yapı taşlarına ve genel sistem ortamına üst düzey bir genel bakış, burada isteğe bağlı olarak kullanılanlarla birlikte görüntülenir web önbellekleri.

LAMBA (Linux, Biracı MySQL, PHP /Perl /Python) çok yaygın bir örnektir. internet servisi yığın, bir kısaltma orijinal dördünün isimlerinden açık kaynak bileşenler: Linux işletim sistemi, Apache HTTP Sunucusu, MySQL ilişkisel veritabanı yönetim sistemi (RDBMS) ve PHP Programlama dili. LAMP bileşenleri büyük ölçüde değiştirilebilir ve orijinal seçimle sınırlı değildir. LAMP, bir çözüm yığını olarak bina için uygundur dinamik web siteleri ve Web uygulamaları.[1]

Oluşturulmasından bu yana, LAMP modeli diğer bileşenlere uyarlanmıştır, ancak tipik olarak aşağıdakilerden oluşur: ücretsiz ve açık kaynaklı yazılım. Örneğin, eşdeğer bir kurulum Microsoft Windows işletim sistemleri ailesi olarak bilinir WAMP ve eşdeğer bir kurulum Mac os işletim sistemi olarak bilinir MAMP.

Genel Bakış

Başlangıçta "Linux, Apache, MySQL ve PHP" ifadesinden popüler olan "LAMP" kısaltması artık genel bir yazılım yığını modelini ifade etmektedir. Bir LAMP yığınının modülerliği değişebilir, ancak bu özel yazılım kombinasyonu popüler hale geldi çünkü çok çeşitli web sitesi çerçevelerini barındırmak için yeterli. Joomla, WordPress ve Drupal. LAMP yığınının bileşenleri, yazılım havuzları çoğunun Linux dağıtımları.[2]

LAMP paketi, aşağıdakiler gibi diğer birçok ücretsiz ve açık kaynaklı yazılım paketiyle birleştirilebilir:

Başka bir örnek olarak, Wikipedia ve diğeri Wikimedia Vakfı projeler onların için kullanır temel altyapı aşağıdaki gibi eklemeler içeren özelleştirilmiş bir LAMP yığınıdır Linux Sanal Sunucusu (LVS) için yük dengeleme ve Ceph ve Swift dağıtılmış nesne depoları için.[kaynak belirtilmeli ]

Varyantlar

Arketip LAMP'nin artan kullanımı ile varyasyonlar ve retronyms işletim sistemi, web sunucusu, veritabanı ve yazılım dilinin diğer kombinasyonları için ortaya çıktı. Örneğin, eşdeğer bir kurulum Microsoft Windows işletim sistemi ailesi olarak bilinir WAMP. Alternatif bir koşu IIS Apaçi'nin yerine denir PISIRIK. Diğer işletim sistemlerini içeren varyantlar şunları içerir: MAMP (Mac os işletim sistemi ), SAMP (Solaris ), FAMP (FreeBSD ), iAMP (iSeries ) ve XAMPP (çapraz platform).

Web sunucusu veya veritabanı yönetim sistemi de değişiklik gösterir. LEMP, Apache'nin daha hafif web sunucusuyla değiştirildiği bir sürümdür. Nginx.[3] MySQL'in değiştirildiği bir sürüm PostgreSQL LAPP olarak adlandırılır veya bazen orijinal kısaltma olan LAMP (Linux / Apache / Middleware (Perl, PHP, Python, Ruby) / PostgreSQL) ile anılır.[4]

Yazılım bileşenleri

LAMP'ın belirleyici bileşenlerine üst düzey bir genel bakış (Firefox sadece bir tarayıcı örneği olarak hizmet eder).

Linux

Linux bir Unix benzeri bilgisayar işletim sistemi modeli altında toplanmış ücretsiz ve açık kaynaklı yazılım geliştirme ve dağıtım. Çoğu Linux dağıtımları, temel alan yazılım koleksiyonları olarak Linux çekirdeği ve genellikle bir paket yönetim sistemi, aracılığıyla eksiksiz LAMP kurulumları sağlayın paketleri. Ekim 2013'te W3Techs'e göre, web sunucusu pazar payının% 58,5'i arasında paylaşılıyor Debian ve Ubuntu, süre RHEL, Fedora ve CentOS birlikte% 37,3 paylaştı.[5]

Apaçi

LAMP web sunucusunun rolü geleneksel olarak Apache tarafından sağlanmıştır ve o zamandan beri diğer web sunucularını içerir. Nginx.

Apache HTTP Sunucusu en popüler oldu Web sunucusu halka açık internette. Haziran 2013'te Netcraft, Apache'nin tüm aktif etkinliklerin% 54,2'sine hizmet ettiğini tahmin etti. web siteleri ve tüm etki alanlarında en iyi sunucuların% 53,3'ü.[6] Haziran 2014'te Apache'nin tüm aktif web sitelerinin% 52,27'sine hizmet vereceği ve onu% 14,36 ile Nginx izlediği tahmin edildi.[7]

Apache, açık bir geliştirici topluluğu tarafından geliştirilip sürdürülmektedir. Apache Yazılım Vakfı. Altında yayınlandı Apache Lisansı Apache açık kaynaklı yazılım. Çok çeşitli özellikler desteklenir ve birçoğu şu şekilde uygulanır: derlenmiş modüller Apache'nin temel işlevlerini genişleten. Bunlar, sunucu tarafı programlama dili desteğinden kimlik doğrulama şemalarına kadar değişebilir.

MySQL ve alternatifler

MySQL'in LAMP'ler olarak orijinal rolü ilişkisel veritabanı yönetim sistemi (RDBMS), o zamandan beri, MariaDB veya PostgreSQL gibi diğer RDBMS'ler ve hatta MongoDB gibi NoSQL veritabanları tarafından alternatif olarak sağlanmıştır.

MySQL bir çok iş parçacıklı, çok kullanıcılı, SQL veritabanı Yönetim sistemi (DBMS),[8] Edinilen Sun Microsystems 2008'de daha sonra satın alındı Oracle Corporation 2010 yılında.[9] MySQL ekibi ilk yıllarından beri kaynak kodu şartlarına göre mevcuttur GNU Genel Kamu Lisansı yanı sıra çeşitli tescilli anlaşmalar.

MariaDB topluluk tarafından geliştirilmiş bir çatal MySQL, orijinal geliştiricileri tarafından yönetiliyor.

PostgreSQL aynı zamanda bir ASİT -Uysal nesne ilişkisel veritabanı yönetim sistemi PostgreSQL Global Development Group tarafından geliştirilmiştir.

MongoDB web ölçekli bir açık kaynaktır NoSQL geleneksel tablo tabanlı veri tabanı ilişkisel veritabanı lehine yapı JSON dinamik şemalara sahip benzeri belgeler (biçimi çağırma BSON ), belirli uygulama türlerinde verilerin entegrasyonunu daha kolay ve daha hızlı hale getirir.

PHP ve alternatifler

LAMP'ın uygulama programlama dili olarak PHP'nin rolü, aşağıdaki gibi diğer diller tarafından da gerçekleştirilmiştir: Perl ve Python.

PHP bir sunucu tarafı komut dosyası için tasarlanmış dil web Geliştirme ama aynı zamanda bir genel amaçlı programlama dili. PHP kodu yorumlanmış sonuçta ortaya çıkan web sayfasını oluşturan bir PHP işlemci modülü aracılığıyla bir web sunucusu tarafından. PHP komutları isteğe bağlı olarak doğrudan bir HTML verileri işlemek için harici bir dosya çağırmak yerine kaynak belge. Ayrıca, bir komut satırı arayüzü yeteneği ve bağımsız olarak kullanılabilir grafik uygulamaları.[10] PHP ücretsiz yazılım şartları altında yayınlandı PHP Lisansı ile uyumsuz olan GNU Genel Kamu Lisansı (GPL) PHP Lisansının terimin kullanımına koyduğu kısıtlamalar nedeniyle PHP.[11]

Perl bir aile yüksek seviye, genel amaçlı, yorumlanmış, dinamik programlama dilleri. Bu ailedeki diller arasında Perl 5 ve Raku.[12] Birçok çağdaş uygulamanın keyfi veri uzunluğu sınırları olmadan gelişmiş metin işleme olanakları sağlarlar. Unix komut satırı araçları,[13] manipülasyonunu kolaylaştırmak metin dosyaları. Perl 5, 1990'ların sonlarında bir CGI komut dosyası oluşturma Web için dil, kısmen ayrıştırma yetenekleri.[14]

Python yaygın olarak kullanılan genel amaçlı, yüksek düzeyli, yorumlanmış, Programlama dili.[15] Python birden çok programlama paradigmaları, dahil olmak üzere nesne odaklı, zorunlu, işlevsel ve prosedürel paradigmalar. Bir dinamik tip sistem, otomatik hafıza yönetimi, bir standart kitaplık ve sıkı kullanımı Beyaz boşluk.[16] Diğerleri gibi dinamik diller, Python genellikle bir komut dosyası dili, ancak çok çeşitli komut dosyası olmayan bağlamlarda da kullanılır.

Yüksek kullanılabilirlik ve yük dengeleme

Çok sayıda talebe hizmet veren veya yüksek talep gören hizmetler sunan web siteleri için özel çözümler gereklidir. çalışma süresi. Yüksek kullanılabilirlik LAMP yığını için yaklaşımlar, iş yükünün birden çok sunucuya dağıtımının yanı sıra, her bir sunucu tarafından sağlanan kaynakların mantıksal olarak toplanmasını gerçekleştiren ek bileşenlerle birleştirilmiş birden çok web ve veritabanı sunucusunu içerebilir. Web sunucularının bir araya getirilmesi, bir yük dengeleyici onların önünde, örneğin kullanarak Linux Sanal Sunucusu (LVS). Veritabanı sunucularının toplanması için MySQL, dahili çoğaltma orijinal veritabanı (ana) ve kopyaları (bağımlı birimler) arasında bir ana / bağımlı ilişki uygulayan mekanizmalar.[17]

Bu tür yüksek kullanılabilirlikli kurulumlar, kullanılabilirlik LAMP örneklerinin çeşitli biçimlerini sağlayarak fazlalık, belirli sayıda bileşenin (ayrı sunucular) deneyimlenmesini mümkün kılar kesinti bir bütün olarak sunulan hizmetlerin kullanıcılarını kesintiye uğratmadan. Bu tür yedekli kurulumlar aynı zamanda donanım arızalarını da ele alabilir. veri kaybı toplu olarak depolanan verilerin gerçekten kaybolmasını önleyecek şekilde ayrı sunucularda. Daha yüksek kullanılabilirliğin yanı sıra, bu tür LAMP kurulumları, dahili veritabanı okuma işlemlerinin sayısına, yazma / güncelleme işlemlerinin sayısından çok daha fazla sahip olan hizmetler için performansta neredeyse doğrusal iyileştirmeler sağlayabilir.[17]

Ayrıca bakınız

Referanslar

  1. ^ "LAMP (Linux, Apache, MySQL, PHP)". SearchEnterpriseLinux. Alındı 28 Ağustos 2014.
  2. ^ "Wikimedia sunucuları - Meta". meta.wikimedia.org. Alındı 17 Şubat 2018.
  3. ^ "LEMP Yığını (Linux, Nginx, MySQL, PHP)". lemp.io. Alındı 15 Ekim 2014.
  4. ^ "Öne Çıkan Kullanıcılar". PostgreSQL. Arşivlenen orijinal 22 Ocak 2014. Alındı 22 Ocak 2014.
  5. ^ "Debian / Ubuntu, Linux web sunucusu pazarındaki hakimiyetini genişletiyor". W³Tech'ler. 21 Ekim 2013.
  6. ^ "Haziran 2013 Web Sunucusu Anketi". Netcraft. Alındı 27 Haziran 2014.
  7. ^ "Haziran 2014 Web Sunucusu Anketi". Netcraft. Alındı 27 Haziran 2014.
  8. ^ "Ürün Yöneticilerinin Yerleştirmeleri İçin En Önemli Nedenler". MySQL. Arşivlenen orijinal 2 Temmuz 2014. Alındı 27 Temmuz 2014.
  9. ^ "Sun MySQL'i Kilitliyor, Geleceğin Web Geliştirmesine Bakıyor". InformationWeek. Arşivlenen orijinal 28 Şubat 2008. Alındı 27 Temmuz 2014.
  10. ^ "Giriş: PHP ne yapabilir?". PHP Kılavuzu. Alındı 5 Mart 2009.
  11. ^ "GPL-Uyumsuz, Ücretsiz Yazılım Lisansları". Bunlarla İlgili Çeşitli Lisanslar ve Yorumlar. Özgür Yazılım Vakfı. Alındı 11 Mart 2012.
  12. ^ "Perl Hakkında". perl.org. Alındı 20 Nisan 2013. "Perl" bir dil ailesidir, "Perl 6" ailenin bir parçasıdır, ancak kendi geliştirme ekibine sahip ayrı bir dildir. Varlığının "Perl 5" in sürekli gelişimi üzerinde önemli bir etkisi yoktur.
  13. ^ Duvar, Larry, Tom Christiansen ve Jon Orwant (Temmuz 2000). Programlama Perl, Üçüncü Baskı. O'Reilly Media. ISBN  0-596-00027-8.CS1 bakimi: birden çok ad: yazarlar listesi (bağlantı)
  14. ^ Smith, Roderick W. (21 Haziran 2002). Gelişmiş Linux Ağ İletişimi. Addison-Wesley Profesyonel. s. 594. ISBN  978-0-201-77423-8.
  15. ^ "Programlama Dili Trendleri - O'Reilly Radar". Radar.oreilly.com. 2 Ağustos 2006. Alındı 17 Temmuz 2013.
  16. ^ "Python Hakkında". Python Yazılım Vakfı. Alındı 24 Nisan 2012.
  17. ^ a b Simic, Dragan; Ristic, Srecko; Obradovic, Slobodan (Nisan 2007). "WEB Uygulamalarının Elde Edilen Performans Seviyelerinin Dağıtık İlişkisel Veritabanı ile Ölçülmesi" (PDF). Elektronik ve Enerji Bilimi. Facta Universitatis. s. 31–43. Alındı 30 Ocak 2014.

Dış bağlantılar