Apache için PHP Handler’ları

139

Merhaba değerli ziyaretçimiz;

En çok merak edilen konulardan birisi de php işleyicileridir. Genelde az anlaşılan ama çok önemli olan bir konudur. Tabi ki her şeyin tam olarak nasıl çalıştığını bilmek zorunda değilsiniz ancak sunucu işlemlerini ciddiye alıyorsanız ya da bu sektörde çalışıyorsanız öğrenmeniz gerekmektedir. Öğreneceğiniz her yeni bir şey ile sağladığınız hizmeti daha kararlı kullandırabileceğinizden dolayı hizmeti daha ucuza verebilir hale gelebilir ve dolayısıyla daha çok para kazanabilirsiniz. Bu yüzden sizi yeni bir şeyler öğrenmek için bir kaç dakikanızı ayırmaya davet ediyorum.

PHP İşleyicileri Nedir ?

Php ile hazırlanmış bir web sayfasına bir ziyaretçi erişmek istediğinde, PHP kodunun web servisinizdeki bir işleyici tarafından yorumlanıp ziyaretçiye çıktısı gönderilir. İşleyici hangi kütüphanelerin nasıl çalışacağını ve yükleneceğini ayarlamaktadır.

PHP’yi yorumlamak için bir çok işleyici vardır (DSO, CGI, suPHP, FastCGI).

Her işleyici farklı dosyaları ve uygulamaları ile kütüphaneyi oluşturur bu yüzden buradaki her değişiklik apache performansını doğrudan etkiler. Doğru işleyicinin seçilmesi PHP versiyonunuz kadar önemlidir. Bir işleyici her zaman diğerinden iyidir gibi bir durum yoktur. Kullanım amacınıza ve uygulamanıza göre işleyicinizi seçmekte fayda vardır. Farklı php versiyonları için farklı işleyiciler tanımlayabilirsiniz. Mesela PHP4 için DSO seçerken PHP5 için CGI seçebilirsiniz.

İşleyiciler Nasıl Değiştirilir ?

cPanel üzerinden işleyici ayarlarını değiştirmek sadece bir kaç saniye alacak kadar kolaydır.

WHM giriş yapın ve gidin: Main >> Service Configuration >> Configure PHP and SuExec

Siz sadece, açılan menüden PHP işleyicisi seçiminizi yapın. Daha sonra “Save New Configuration” butonuna basın.

Not: açılan menüden istediğiniz seçimi göremiyorsanız, sunucu üzerinde daha önceden derlenmiş olması gerekebilir. Bunu “Easy Apache” kısmından apachenizi keyfinize göre derledikten sonra seçebilirsiniz. Örneğin FASTCGI defaultta gelmez.

PHP İşleyicileri Listesi

DSO (mod_php)

DSO, mod_php olarak da bilinir. Bu eski bir yapılandırma ancak genelde hızlı bir işleyicidir. PHP bir Apache modülü olarak çalışır. Bu PHP betiklerini ‘nobody’ adlı kullanıcı olarak çalışacağı anlamına gelmektedir.

DSO’nun iki dezavantajı var. Birincisi, az önce söylediğimiz ‘nobody’ durumundan dolayı PHP tarafından oluşturulan yüklenen dosyaların sahipliğini nobody üstlenmiş oluyor.

İkinci problemde bu sebepten kaynaklanan güvenlik sorunu. Her sitenin kullanıcısı nobody olacağından dolayı a sitesinde yaramaz bir kod çalıştırılarak b sitesindeki bir dosya değiştirilebilir/okunabilir/edilebilir. DSO hız bakımından tartışılmaz ancak eğer sunucuda tek bir siteniz ya da sadece size ait siteler var ise kullanmanızı tavsiye ederiz.

Hack girişimlerinden korunmak için her zaman yazılımlarınızı güncel tutmanızda fayda var. Yeni sürümlerin yayınlanıp yayınlanmadığını takip edin.

DSO düşük CPU kullanımı nedeniyle genellikle diğerlerine göre yüksek erişim hızları sunar. Ayrıca çoğu sunucularda varsayılan ayardır.

CGI
Bir Apache modülünün aksine, CGI işleyici, PHP’yi bir CGI modülü olarak çalıştıracaktır. CGI PHP sahipliğini yine ‘nobody’ kullanıcısı olarak çalışır. Ancak, suEXEC ile istek yapan kullanıcı gösterilebilir.

CGI yöntemi DSO da bir problem olurs alternatif olması açısındandır. Bu yöntem suEXEC etkin olsun ya da olmasın, ne hızlı ne de güvenlidir.

suPHP

suPHP de PHP’yi bir Apache modülü yerine bir CGI modülü olarak çalışır. PHP nobody yerine hesap sahinin kullanıcı adında çalışır.

* WordPress gibi hazır sistemlerin sağlıklı çalışması için suPHP veya FastCGI tavsiye edilir.

suPHP de dosya ve dizin sahiplik haklarınız gerçekten işe yarar hale gelmiş oluyor. Herkes kendi kullanıcısına sahip olduğu için verdiğiniz chmoda göre a sitesinin b sitenin dosyalarına erişme yetkisi kalmamış oluyor.

Bunun dezavantajı, suPHP genellikle çok daha yüksek bir CPU kullanarak çalışır. Buna ek olarak, suPHP Opcode Önbellekleme YAPAMAZ (XCache veya APC veya Eaccelerator). Sunucunuzda CPU kullanımı artarsa DSO veya FastCGI’e geçmeyi düşünebilirsiniz.

FastCGI
FastCGI (mod_fcgid olarakda bilinir) CGI için yüksek performanslı bir alternatiftir. PHP betikleri suPHP’nin güvenlik / sahiplik avantajlarına sahiptir ve nobody olarak değilde gerçek kullanıcınız altında çalışır. FastCGI ile CPU performansından üzerinde önemli ölçüde tasarruf edersiniz neredeyse DSO yakın hızlarda çalışır. Ayrıca, sayfa yüklemenme hızına yardımcı olaran eAccelerator veya APC gibi bir opcode cacheler ile kullanılabilir.

Dezavantajı FastCGI’ın yüksek bir bellek kullanımı vardır. Bir istek yapıldığı zaman suPHP gibi oturumu arka planda açık tutar çünkü. Bu nedenle bir opcode önbelleğe alma yazılımı ile çalışması mümkün olur.

suPHP’nin Güvenlik/Sahiplik gibi faydalarından FastCGI kullanarak da daha hızlı bir şekilde yararlanmayı düşünebilirsiniz.

Karşılaştırma Grafiği

 

 

DSO CGI SUPHP FASTCGI
Düşük CPU kullanımı
Düşük Bellek tüketimi
 PHP’leri nobody yerine Site sahibi olarak çalıştırır

sadece w / SuEXEC
İyi bir güvenlik
Opcode Caching (Eaccelerator vb.)  ✔

 

İyi çalışmalar…


Article Tags: · · · ·

Leave a Comment

Paylaş