“Bu sitenin amacı nedir”, “Neler yazıyor olacak bu sitede” sorularına ben deneyimlerimi paylaştıkça cevap buluyor olacaksınız. Öncelikle bu siteyi hangi bileşenlerle kurduğumu ve hangi bileşeni neden kullandığımı açıklayarak başlayacağım.
Öncelikle sistemin LEMP yapısında olduğunu söyleyeceğim. LAMP daha önce duyduğunuz bir yapı olabilir LEMP’in LAMP’e göre farkı Apache yerine Nginx (Encineks diye okunuyor) kullanılmasıdır.
LEMP kelimesindeki birinci harf kullanılan işletim sistemini belirtir. Değeri L(Linux) yada W(Windows) olabilir. İkinci harf ise kullanılan web sunucusudur. A(Apache), E(Nginx), L(Lighthttpd) kullanılabilecek web sunucularından bir kaçıdır. Üçüncü harf ise kullanılan veritabanı sistemidir. M(MySql), P(PostgreSQL) bu sistemlerde kullanılan bir kaç veritabanıdır. Son harf ise uygulamanın geliştirildiği platformdur. P değeri Python, Php ve Perl için kullanılır.
Örnek bir kaç sistem şu şekilde ifade edilebilir:
LAMP: Linux, Apache, MySql, Php
WAMP: Windows, Apache, MySql, Perl
LEMP: Linux, Nginx, MySql, Php
LLPP: Linux, LightHttpd, PostgreSql, Perl
WEPP: Windows, Nginx, PostgreSql, Python
Yukarıda sadece 5 farklı sistem örneği verdim, aslında daha farklı kombinasyonlarda oluşturulabilir.
LEMP’in ne anlama geldiğini anladıktan sonra, neden LEMP kullandığımızın detaylarına girelim.
Sistem olarak Linux kullandım. Neden Windows değil Linux üzerine sanırım internette binlerce belki de daha fazla makale bulabilirsiniz, ben her zaman doğru proje için doğru araçları seçme düşüncesindeyim. Linux kullanmamın sebebi çok daha az donanımsal ihtiyaçla çok daha fazla kullanıcıya hizmet verebilmesiydi. Windows sunucu kullanmak için de sebepler olacağına inanıyorum ama üzerinde blog yazılımı(wordpress) çalıştıracak bir sunucu için Linux ideal.
Sanırım neden Apache kullanmadığımı, Nginx’in ne olduğunu merak eden olacaktır. Apache’nin internette en çok kullanılan web sunucusu olduğunu kabul ediyorum. İstatistik vermek gerekirse internette en çok kullanılan web sunucuları şu şekilde:
1. Apache (%47)
2. Microsoft (%21)
3. qq (%12)
4. Nginx (%7)
Nginx’in 4. olmasını başarılı görmelisiniz(Kaynak: Netcraft), çünkü Apache ve Microsoft’un web sunucuları on yılı aşkın süredir piyasadalar. qq ise Çin’deki milyonlarca web sitesinin kullandığı web sunucudur. Nginx bir Rus programcı(Igor Sysoev) tarafından geliştirilmiş önce Rusya’da daha sonra tüm dünyada kullanılmaya başlanılan geçmişi 4-5 sene olan ve halen 0.8 sürümünde olan çok yeni bir web sunucudur. Nginx’in çok kısa bir sürede bir çok web sitesi tarafından kullanıldığını görüyorüz. Bu hızlı yayılımının nedeni Nginx’in statik içerik(imaj, video, vs..) sunmada rakiplerine göre fark atması, ayrıca reverse proxy özelliği ile apache ya da microsoft web sunucularının önünde de Nginx kullanılabilmesi ve fastcgi sunucular ile çok hızlı çalışabilme. Apache’ye göre çok az bellek kullanan Nginx, VPS ya da benzeri hosting çözümleri kullanan sitelerdeki kaynak limitasyonlarına uyabilmek için ideal.
Sitenin konfigürasyonunda Nginx statik içeriği sunarken dinamik içerik(wordpress yani php servisi) için fastcgi ile php fastcgi prosesi ile iletişime geçer.
Veritabanı olarak özel bir veritabanı çözümüne gitmedim, wordpress MySql ile uyumlu çalıştığı için MySql’i üzerine çok düşünmeden kullanma kararı aldım. Önümüzdeki dönemlerde farklı yazılım çözümleri için MongoDB, Hbase gibi No-SQL çözümlerden bahsediyor olacağım, ancak WordPress için RDBMS modelde çalışan bir veritabanına ihtiyacım vardı, dolayısı ile MySql kolay ve performanslı bir çözüm oldu bu site için.
Blog yazılımı olarak wordpress kullandığım için php kullanmış oldum ve sitenin yapısı LEMP olmuş oldu böylece.
Sonraki yazılarımda LEMP’in teknik olarak kurulumunun detaylarını anlatıyor olacağım.