LAMP yığını nedir?
LAMP yığını, geliştiricilerin web siteleri ve web uygulamaları oluşturmak için kullandıkları dört farklı yazılım teknolojisinden oluşan bir pakettir. LAMP; Linux işletim sistemi, Apache web sunucusu, MySQL veri tabanı sunucusu ve PHP programlama dili adlarından oluşan bir kısaltmadır. Bu teknolojilerin dördü de açık kaynaklıdır. Bu, topluluk tarafından bakımlarının yapıldığı ve herkesin kullanması için serbestçe erişilebilir olduğu anlamına gelir. Geliştiriciler, web içerikleri oluşturmak, barındırmak ve bunların bakımını yapmak için LAMP yığınlarını kullanır. Günümüzde yaygın olarak kullandığınız web sitelerinin çoğuna güç veren popüler bir çözümdür.
LAMP yığını neden önemlidir?
Web geliştiricileri, web uygulamaları oluşturmak için aşağıdaki nedenlerden dolayı bir LAMP yığını seçerler.
Maliyet
Tüm LAMP teknolojileri açık kaynaklıdır, yani herhangi bir geliştirici veya şirket bunları lisans ücreti ödemek zorunda kalmadan kullanabilir. Tescilli yığın bileşenleri satın almak yerine, işletim sistemini, web sunucusunu, veri tabanını ve betik dilini ücretsiz olarak indirebilirsiniz. Bu, web uygulamaları oluşturma maliyetini düşürür.
Verimlilik
Yeni bir web geliştirme yığını oluşturmak, farklı çerçeveler, modüller, kütüphaneler ve araçların titizlikle test edilmesini gerektirir. Buna karşın, LAMP yığını denenmiş ve test edilmiş bir web geliştirme çözümüdür. Web geliştiricileri, nasıl oluşturdukları yerine ne oluşturduklarına odaklanmak için uygulama geliştirmeye öncelik verebilir ve bu süreci hızlandırabilir.
Bakım
Dünyanın dört bir yanından yazılım uzmanları, genel erişime açık olan kaynak kodlarını değiştirerek, yorumlayarak ve gözden geçirerek LAMP yığın teknolojilerinin geliştirilmesine katkıda bulunur. Alakalı ve güvenli kalmaları için teknolojilerin bakımını ve güncellemelerini düzenli olarak yaparlar.
Destek
LAMP yığınları gibi popüler açık kaynaklı teknolojiler, büyük, küresel bir BT topluluğunun desteğine sahiptir. Bu nedenle, LAMP yığını kullanıcıları herkese açık BT forumlarında daha kolay şekilde bilgi bulabilirler. Web geliştiricileri örnek kodlara başvurabilir veya açık kaynak topluluğu tarafından oluşturulan test edilmiş eklentileri kullanabilirler.
Esneklik
LAMP yığını, web geliştiricilerine hem güvenilirlik hem de esneklik sağlar. LAMP mimarisi her katman için yazılım bileşenlerini belirtirken geliştiriciler bunları uygun gördükleri şekilde değiştirebilir. Örneğin, yığın temeli olarak Linux dışında başka bir işletim sistemi kullanabilirler.
LAMP yığını ne için kullanılır?
Arka uç veya sunucu tarafı geliştirme için bir LAMP yığını kullanılır. Bir arka uç uygulaması, son kullanıcılardan gizlenmiş bir ortamda çalışan bir yazılımdır. Arka uç uygulamaları aşağıdakilerden oluşur:
- Veri işleme yazılımı
- Veri tabanı bileşenleri
- Kod olarak iş mantığı
- Diğer uygulamalarla iletişim kurmak için API
Tarayıcınızda görüntülenen web sayfasına ön uç uygulaması denir. Sayfayla etkileşimde bulunduğunuzda (bir düğmeye tıklamak gibi), tarayıcınız gerekli bilgileri almak için arka uç uygulamasıyla iletişim kurar.
Geliştiriciler hem statik hem de dinamik web içeriği oluşturmak için bir LAMP yığını kullanır.
Statik web sayfaları
Web sunucusundan gelen statik web sayfası bilgileri tüm kullanıcılar için aynıdır. Örneğin, bir şirketin web sitesindeki adres bir statik içeriktir. Web geliştiricileri HTML ve CSS programlama dilleriyle statik web sayfaları oluşturur ve bunları web sunucusu uygulamasında dosya olarak depolar.
Dinamik web sayfaları
Dinamik web sayfaları, web sayfasını veya web uygulamasını görüntüleyen kullanıcıya bağlı olarak değişen bilgiler içerir. Örneğin, konumunuza göre değişen bir web sitesi mesajı bir dinamik içeriktir. Web sunucusu, iş mantığını işleyerek veya bir veri tabanından veri alarak dinamik web siteleri sunar.
LAMP mimarisi nedir?
Yazılım yığını, bir uygulamayı oluşturmak, yönetmek ve çalıştırmak için kullanılan katmanlı araçlar, kütüphaneler, programlama dilleri ve teknolojiler kümesidir. Yığın, uygulamayı görsel sunum, veri tabanı, ağ oluşturma ve güvenlik gibi farklı şekillerde destekleyen yazılım bileşenlerinden oluşur.
Benzer şekilde, LAMP mimarisi, çalışan bir web uygulaması oluşturmak için perde arkasında birlikte çalışan dört yazılım teknolojisinden oluşur. Bu web geliştirme teknolojilerinin bir bilgisayar sunucusunda birbirleriyle nasıl etkileşime girdiğini açıklar. LAMP mimarisi aşağıdaki katmanlardan oluşur.
Linux
Linux, farklı uygulama gereksinimlerini karşılayacak şekilde kurabileceğiniz ve yapılandırabileceğiniz açık kaynaklı bir işletim sistemidir. Linux, LAMP yığınının ilk seviyesinde yer alır ve üst katmanlardaki diğer bileşenleri destekler.
Apache
Apache, LAMP yığınının ikinci katmanını oluşturan açık kaynaklı bir web sunucusudur. Apache modülü, web sitesi dosyalarını depolar ve web sitesi bilgilerini düz metin olarak aktarmaya yönelik bir internet protokolü olan HTTP kullanarak bir tarayıcıyla bilgi alışverişinde bulunur. Örneğin, bir tarayıcı bir web sayfası istediğinde, Apache HTTP sunucusu aşağıdakileri yapar:
- İsteği alır
- İsteği işler ve gerekli sayfa dosyasını bulur
- İlgili bilgileri tarayıcıya geri gönderir
MySQL
MySQL, açık kaynaklı bir ilişkisel veri tabanı yönetim sistemidir ve LAMP yığınının üçüncü katmanıdır. LAMP modeli, ilişkisel veri tabanlarındaki bilgileri depolamak, yönetmek ve sorgulamak için MySQL kullanır. Örneğin, geliştiriciler müşteri kayıtları, satışlar ve envanterler gibi uygulama verilerini depolar. Bir kullanıcı bilgi aradığında, web sunucusu MySQL'de depolanan verileri sorgular. Sorgu, ilişkisel bir veri tabanındaki verileri SQL diliyle değiştirmeye yönelik özel talimatları ifade eder.
PHP
Açılımı PHP: Hypertext Preprocessor (Köprü Metni Önişlemcisi) olan PHP, LAMP yığınının dördüncü ve son katmanıdır. Web sitelerinin dinamik süreçleri çalıştırmasına izin veren bir betik dilidir. Dinamik süreç, yazılımda sürekli değişen bilgileri içerir. Web geliştiricileri, web sitelerinde gerçek zamanlı veya güncel bilgileri göstermek için HTML'ye PHP programlama dilini ekler. Web sunucusu, veri tabanı ve işletim sisteminin tarayıcılardan gelen istekleri uyumlu bir şekilde işlemesine izin vermek için PHP'yi kullanırlar.
PHP ve HTML karşılaştırması
Web geliştiricileri, web sayfalarının düzenini tasarlamak gibi ön uç geliştirme süreçleri için HTML'yi kullanırlar. Öte yandan, kullanıcılar bir web sayfası yüklediğinde belirli bileşenlerin davranışlarını belirlemek için de PHP'yi kullanırlar. Örneğin, web geliştiricileri HTML ile çevrimiçi bir ürün kataloğunun grafik düzenini tasarlar. Daha sonra arka uç sunucusundan en güncel ürün fiyatını almak için PHP kodunu kullanırlar.
LAMP yığını nasıl çalışır?
Web uygulamaları, web tarayıcılarından gelen isteklere yanıt vermek için bir LAMP yığını kullanır. Apache web sunucusu ve MySQL veri tabanı Linux işletim sisteminde çalışır ve PHP kullanarak iletişim kurar. Bir tarayıcıda bir web sayfasını açtığınızda, LAMP yığını aşağıdaki süreçten geçer.
İstekleri alır
Apache web sunucusu, tarayıcıdan gelen isteği alır. İstek statik bir dosya yüklemek için ise Apache sunucusu doğrudan uygun içerikle yanıt verir. İstek dinamik içerik için ise Apache sunucusu, isteği PHP bileşenine iletir. PHP bileşeni, isteği işleyebilen uygun PHP dosyasını bulur ve yükler.
İstekleri işler
PHP dosyası, dinamik içerik oluşturmaya yönelik kodlar olan PHP işlevlerini içerir. PHP bileşeni, ölçüm birimlerini dönüştürmek veya bir satış grafiği oluşturmak gibi PHP işlevlerini işler. Bazı PHP işlevleri veri tabanından bilgi gerektirebilir. Bu gibi durumlarda, PHP kodu, depolanan bilgileri veri tabanından alır ve işlevi işlemek için kullanır.
Yanıtlar döndürür
PHP, hesaplanan sonuçları HTML biçiminde web sunucusuna iletir. Aynı zamanda, MySQL veri tabanında yeni veriler de depolar. Apache HTTP sunucusu, dinamik HTML sonuçlarını kullanıcının tarayıcısına gönderir.
LAMP alternatifleri nelerdir?
LAMP alternatifleri veya LAMP varyantları, LAMP mimarisinde belirtilenlerden farklı bileşenler kullanan arka uç geliştirme teknolojileridir. Örneğin, web geliştiricileri, ön uç uygulamalarından gelen istekleri almak ve işlemek için Apache yerine başka web sunucularını kullanabilir. Bazı LAMP alternatifleri lisanslı işletim sistemleri gibi tescilli bileşenler kullanabilir.
Alternatif betik dilleri
PHP, LAMP yığınının varsayılan betik dili olsa da, geliştiriciler bunu Perl veya Python ile değiştirebilir.
Perl
Perl, 30 yıldan fazla bir süredir var olan bir programlama dilidir. Geliştiriciler, veri tabanı entegrasyonu ile iyi çalıştığı ve geliştirmeye yardımcı olan çerçevelere sahip olduğu için web geliştirme amacıyla Perl'ü kullanır. Çerçeveler, uygulama geliştirmeyi hızlandıran iyi şekilde test edilmiş bileşenleri içeren yazılım araçlarıdır.
Python
Python, web uygulamaları dâhil olmak üzere farklı yazılım türleri oluşturmaya yönelik üst düzey bir programlama dilidir. Geliştiriciler, web geliştirmede basit ve anlaşılması kolay olduğu için Python'u kullanıyor.
MEAN yığını nedir?
MEAN; MongoDB, Express.js, Angular.js ve Node.js adlarından oluşan bir kısaltmadır. LAMP'e bir alternatiftir ve JavaScript teknolojileri üzerine kuruludur. JavaScript, arka uç ve ön uç geliştirmeye yönelik bir programlama dilidir. MEAN yığını bileşenlerinin rolleri şu şekildedir:
- MongoDB, veri okumak için JavaScript'in bir türü olan JSON ile iyi çalışan bir veri tabanıdır.
- Express.js, arka uç uygulamaları oluşturmak için açık kaynaklı araçlar sağlayan bir çerçevedir.
- Node.js, JavaScript uygulamalarını çalıştıran bir platformdur.
- Angular.js, ön uç uygulamaları geliştirmeye yönelik açık kaynaklı bir çerçevedir.
LAMP yığını ve MEAN yığını karşılaştırması
MEAN ve LAMP yığınları, farklı türden web uygulamaları için ideal olan açık kaynaklı yazılım yığınlarıdır. MEAN yığını, ön uçta yoğun mantık işlemeyi içeren web uygulamaları için uygundur. Öte yandan, bir LAMP yığını, yoğun trafikle başa çıkabilen büyük ölçekli karmaşık web siteleri için idealdir. Örneğin, geliştiriciler, bir video akışı web uygulaması oluşturmak için MEAN yığını kullanırlar ancak bir e-ticaret web uygulaması için LAMP yığınını tercih ederler.
AWS, LAMP yığını geliştirmeyi nasıl destekler?
AWS'de LAMP yığını uygulamalarını geliştirmek, dağıtmak ve yönetmek için Amazon Lightsail'i kullanabilirsiniz. Lightsail ile şunları yapabilirsiniz:
- LAMP yığını uygulamalarını çok daha hızlı dağıtın.
- Projenizi 90'dan fazla AWS hizmetine entegre edin.
- Lightsail projelerini Amazon Esnek Container Hizmeti'ne (Amazon ECS) geçiş yapıp yükselterek ölçeklendirin.
Hemen ücretsiz bir AWS hesabı oluşturarak AWS'de LAMP yığınlarını kullanmaya başlayın.