'apache' Kategori'sine ait arşiv.


Php5 (PHP-FPM) + MySQL destekli Nginx Kurulumu

nginxAmazon AWS üzerinde bir ec2 micro instance’ım var. Bu sunucu sadece 615 MB memory’e sahip olduğu için üzerinde koşan uygulamalara ram’i damlalıkla vermek icap ediyor. Böyle durumlarda oldukça lightweight olmasından ötürü Nginx kullanmak mantıklı bir seçim olabilir. Nginx özellikle static content serve etmek konusunda oldukça başarılı ve reverse proxy olarak da yaygın olarak kullanılıyor. Ayrıca, php konusunda da php-fpm üzerinden epey iyi iş çıkarıyor.

Sonuç olarak kaynaksızlıktan kırılan zavallı bir sunucunuz varsa nginx kullanmayı deneyebilirsiniz. Aşağıda centos 6.4 üzerinde php ve mysql destekli bir nginx kurulumunun nasıl yapılabileceğini bulabilirsiniz.

Yazinin devami icin tiklayin.


htaccess combiner ile Apache Performance Tunning

Apache üzerinde performansa direk etkisi olan en önemli konulardan birisi de “AllowOverride” direktifi ile devreye alınan htaccess kullanımıdır. Directory ya da vhost bazlı yapılandırma işlerinde oldukça kolaylık sağlayan bir özellik olmasına rağmen, bilindiği gibi AllowOverride direktifi None dışındaki bir değere set edildiğinde, apache kök dizini ve tüm alt dizinlerde .htaccess dosyası arayıp genel yapılandırmayı override edecek herhangi bir yapılandırma direktifi olup olmadığını kontrol eder. Özellikle çok sayıda alt dizinden oluşan bir klasör yapısı olan durumlarda performansa doğrudan etkisi olur.

Yukarıda bahsettiğim bu nedenden ötürü apache ile ilgili performans tavsiyelerinde mümkünse htaccess kullanımından tamamen kaçınılması, bunun yerine .htaccess içerisinde tanımlanması gereken direktifleri doğrudan ana yapılandırma dosyasında Directory blokları içerisinde belirtilmesi  önerilmektedir. Elbette ana yapılandırma dosyalarına erişemeyen vhost sahipleri için AllowOverride direktifini kullanmanız elzem olabilir ancak böyle bir ihtiyaç yoksa bu direktifi None yapabilir ve  apache’nin bahsi geçen .htaccess arama işi ile uğraşmasının önüne geçebilirsiniz.

 Yazının başlığında bahsettiğim htacess combiner da sunucunuzda halihazırda htaccess dosyaları olması durumunda (örnek olarak birden çok wordpress, drupal vs. gibi cms yayınlanıyorsa), tüm htaccess içeriklerini okuyarak hepsini kombine eden ve ana yapılandırma dosyanıza (httpd.conf vs.) ekleyebileceğiniz hale getiren bir shell script. https://gist.github.com/colinmollenhour/459311 adresinde yayınlanan bu scripti web sunucunuzun en üst dizininde çalıştırdığınızda aynı dizinde .htaccess-combined isimli bir dosya oluşturarak sunucudaki tüm .htaccess dosyalarının içeriğini doğru syntax ile bu dosyaya yazıyor. Bahsi geçen bu içeriği ana yapılandırma dosyanıza ekleyip, AllowOverride direktifini de None yaparsanız (apache restart sonrası) sunucu üzerinden yük almış oluyorsunuz.


htaccess ile Mobil Ziyaretçilerin Mobil Sürüme Yönlendirilmesi

 mod_rewrite ile mobil siteye yönlendirmeAkıllı telefonların ve tabletlerin yaygınlaşması ile internetin mobil kullanımı büyük oranda arttı. İleride desktop ve laptopları tamamen bırakır mıyız bilmem ama mobil kullanımın giderek daha da artacağı aşikar gibi görünüyor.

Durum böyle olunca da artık hemen hemen her web sitesinin bir de mobil sürümü bulunuyor ve mobil cihazlardan gelen site görüntüleme istekleri user agent bilgisinden tespit edilerek otomatik olarak mobil sürüme yönlendiriliyor.

Bu yönlendirme işlemini yapmak için kullanılabilecek yöntemlerden pratik birisi de apache’nin mod_rewrite özelliği’ni kullanmak ve .htaccess içinde yönlendirme kuralları tanımlamaktır.

Yazının devamında çeşitli koşullara göre nasıl yönlendirme yapılabileceği ile ilgili detaylara değineceğim, ilginizi çekerse göz atmak isteyebilirsiniz.

Yazinin devami icin tiklayin.


mod_rewrite – .htaccess ile Bakım Sayfasına Yönlendirme

Bir web sitesini ya da uygulamasında bakımla ilgili bir çalışma yapılması gerektiğinde ziyaretçileri durumu bildirir bir bakım sayfasına yönlendirmek icap ediyor. Bu gibi bir işlem için izlenebilecek bir çok yöntem var. Bunlardan bence en pratik ve kullanışlı olanı ise apache’nin mod_rewrite modülünü kullanarak koşula bağlı yönlendirme yapmaktır.

Zira, bakım sayfanıza belli IP’lerden gelen istekleri ya da bakıma alınacak web uygulamasına (örneğin bir reklam sunucusuna) sürekli olarak erişmesi gereken sitelerden gelen istekleri yönlendirmeden muaf tutmanız gerekebilir. Ayrıca bakım işleminin bir iki saatten uzun süreceği durumlarda, isteklere yönlendirmenin geçici olduğunu bildiren 302 status kodunu döndürmek de isteyebilirsiniz.

İşte bu gibi ihtiyaçlar için mod_rewrite kullanmak iyi bir yoldur.

Eğer ilginizi çekiyorsa yazının devamında yönlendirme işlemlerinin nasıl yapılabileceği ile ilgili açıklama ve örnekler bulabilirsiniz.

Yazinin devami icin tiklayin.


WordPress wp-trackback.php DoS Zafiyeti

wordpress-logo-150x150 17 Ekimde, WordPress’in 2.8.5 öncesi tüm sürümlerini etkileyen bir güvenlik zafiyeti bildirildi. Buna göre, wp-trackback.php scriptinde kullanılan mb_convert_encoding fonksiyonuna gönderilen crafted” istekler CPU’yu sömürerek sunucunun kısa sürede yanıt verememesine neden oluyor.

Bir kaç gün önce çıkarılan 2.8.5 (security hardening) sürümü haricindeki tüm wp versiyonları açıktan etkileniyorlar ve bu açığı kullanan bir exploit zafiyeti keşfeden kişinin sitesinde yayınlamakta. Ben, exploit’i kullanarak bir iki test yaptığım -sanal makina üzerinde öntanımlı ayarlarla çalışan- bir apache sunucunun yanıt veremez hale gelmesi yaklaşık 5 dakika sürdü.  Zafiyet, wordpress’in host edildiği sunucudaki diğer siteleri de haliyle down edeceğinden dolayı eski sürüm wordpress kullancılarının sistemlerini upgrade etmelerini tavsiye ederim.

Daha fazla bilgi için bkz:
http://rooibo.wordpress.com/2009/10/17/agujero-de-seguridad-en-wordpress/
http://www.securitytracker.com/alerts/2009/Oct/1023072.html
http://secunia.com/advisories/37088/


OpenX 2.8 Ad Server Kurulumu

OpenX, oldukça gelişmiş ve güzel bir reklam yötenim sistemidir. OpenX kullanarak sitenizde yayınladığınız reklamları kolayca yönetebilir ve reklam verenlerinize gelişmiş, istatistigi raportlama yapabilirsiniz. Php tabalı olan OpenX database olarak MySql kullanıyor ve oldukça performanslı çalışıyor. openx_logo

Ben, OpenX kullanarak, bir mysql bir apache olmak üzere,  Xeon 3Ghz işlemci ve 2GB ram’e sahip iki FreeBSD sunucu üzerinde aylık ortalama 100 milyon reklam gösterimi yapabiliyorum.  Sonuç olarak siz de reklam yönetimi için bir çözüm arıyorsanız, aradığınız OpenX olabilir.

Bu yazıda, OpenX’in nasıl kurulduğu ve genel geçer yönetim işleri anlatılmaktadır. (Kurulum FreeBSD 7.1 üzerinde yapılacaktır.)

OpenX aslında bir kaç kez ismi değişmiş ve bir çok revizyondan geçmiş bir yazılım. Zaman içinde phpAdsNew, Openads isimleri ile de tanınan bu güzel yazılımın son hali OpenX ve son sürümü 2.8.

İşte nasıl kurulduğu;

Yazinin devami icin tiklayin.


Apache Mod_Status Yapilandirmasi

apachelogo Apache sunucunuzun performans değerlerini gözlemlemek için komut satırında kullanılabilecek bir çok native araç bulunuyor olsa da bazen sunucunun performans değerlerini, sunucuya login olmadan incelemek isteyebilirsiniz. Böyle bir iş için kullanılabilecek en güzel yöntem, apache ile birlikte default olarak gelen mod_status modülünden yararlanmak ve sunucu istatistiklarini bir web sayfası üzerinden görüntülemektir. Her nekadar mod_status apache ile birlikte öntanımlı olarak geliyor olsa da bu özelliği devreye almak için httpd.conf yapılandırma dosyasına küçük bir ekleme yapmak gerekiyor.

Bu dökümanda, mod_status’ün nasıl devreye alınacağı anlatılmaktadır.

Mod_Status ile apache sunucunuzla ilgili performansa yönelik aşağıdaki bilgileri  gerçek zamanlı olarak edinebilirsiniz.

Yazinin devami icin tiklayin.


eAccelerator Kurulumu

eaccelerator Php uygulamalarını hızlandırmanın yollarından birisi de şüphesiz ki sürekli kullanılan php scriptlerini önbelleğe almak ve bu scriptlerin herseferinde yeniden derlenmesi işini ortadan kaldırmaktır.

Böylece, php kodlarının tekrar tekrar derlenmesi için gerekecek olan işlemci gücünden tasarruf edip uygulamanızı hızlandırabilirsiniz. Ben, bu iş için kullanılabilecek bir kaç yazlımdan biri olan eAccelerator’ün oldukça faydasını gördüm; eğer siz de böyle bir arayış içerisindeyseniz eAccelerator’ü tavsiye edebilirim.

eAccelerator de yukarıda bahsettiğim gibi compile edilmiş php scriptleri önbelleğe alıp kodu direk olaran buradan çalıştırarak işlemleri hızlandıran güzel ve kurulumu da oldukça kolay bir yazılım.

Aşağıdaki adımları izleyerek eAcceletor’u kaynak koddan kurabilirsiniz.

Yazinin devami icin tiklayin.