PHP: FastCGI'ın mod_php üzerindeki avantajları nelerdir?


30

Geçenlerde bana PHP ile FastCGI kullanmam önerildi. Şimdi FastCGI sayfasına gittim ve okudum ama avantajların ne olduğunu gerçekten anlamıyorum.

Yanıtlar:


37

Mod_php kullanarak her Apache çalışanı, içine yüklenen tüm PHP tercümanına sahiptir. Apache gelen her istek için bir işçi işlemine ihtiyaç duyduğundan, her biri kendi PHP tercümanı yüklü, büyük miktarda bellek tüketen yüzlerce Apache işçisini hızla kullanabilirsiniz.

(Unutmayın, bu tam olarak doğru değil, Apache'nin worker_mpmtek dişli bir Apache çalışanı ile birçok istekte bulunmanıza izin veriyor. Ancak, 2009'da bile, PHP uzantılarıyla ilgili şüpheli iş parçacığı sorunlarından dolayı PHP'yi dağıtmanın önerilen yolu bu değildir.)

PHP'yi fast_cgi modunda kullanmak ( lighttpd paketinden spawn-fcgi gibi bir şey kullanmak ) aşağıdaki avantajlara sahiptir

  • PHP çalışanlarının sayısını gelen bağlantıların sayısından ayrı olarak ayarlayın
  • PHP çalışanlarını farklı bir sunucuya koymanıza veya web katmanınızı değiştirmeden birçok sunucuya ölçeklendirmenize izin verir
  • nginx veya lighttpd gibi farklı bir web sunucusu seçme esnekliği sağlar
  • PHP uygulamanızı web sunucunuzdaki farklı bir güvenlik etki alanında çalıştırmanıza izin verin

5

FastCGI, php bitlerinin, mod_php'den farklı olarak apache bitleriyle aynı işlemde çalışmadığı anlamına gelir. Sunucuyu yeniden başlatmak veya kaçak uygulamalarla uğraşmak söz konusu olduğunda, bu ayrımın bazı avantajları olabilir - mod_php durumunda, bu "kaçak" olan apache işlemi olduğu anlamına gelir, ancak fastcgi'de bu sadece apache'nin konuşmakta olduğu bir işlemdir, yani tüm sunucunun kaldırılması gerekmez.


4

Henüz belirtilmeyen bir başka avantaj, mod_fcgid(ki bu Apache'de FastCGI'i kullanmak için daha yeni bir uygulama) ve suexec ile farklı vhost'ların farklı Linux kullanıcılarını yürütmek için kullandığı kurulumları gerçekleştirebilmenizdir; .

Mod_php ile tüm vhosts, Apache'nin kullanıcısı olan aynı kullanıcıyı paylaşır. Bu güvenlik sorunlarına yol açabilir.


Bu özel Apache httpd kurulumunda kullanılan MPM'ye bağlıdır. Örneğin, MPM-itk ( mpm-itk.sesse.net ) ile mod_php kullanmak ve komut dosyalarının (veya daha iyisi: httpd süreçleri) başka bir kullanıcı bağlamında çalıştırılması mümkündür.
joschi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.