Bellek kullanımı açısından CGI vs thttpd modül olarak PHP

1 Cevap php

Ben gömülü bir ortamda php kullanmayı planlıyorum. Mevcut web sunucusu thttpd edilir. Ben şimdi iki seçenek düşünüyorum: Bir cgi olarak veya SAPI modülü olarak çalıştırmak ister. Ben cgi güvenlik açısından avantaja sahip olduğunu biliyorum. Biz cgi olarak php kullanmak Ama eğer, php bir örneği, her istek için belleğe yüklü olmalıdır.

Ben THTTPD'ye bir SAPI modülü olarak derleme denedim ve ben thttpd bellek kullanımı, özellikle rss, istek artar sayısı olarak büyük büyümek olmadığını gözlemledik.

Herkes nasıl thttpd yükler php açıklayabilir misiniz? Sadece bir kez yüklenir ve belleğe yerleşik sürece thttpd çalışan olarak kalır? Eğer öyleyse, biz cgi alternatif olarak bu düşünebilirsiniz.

Aynı anda birden fazla http isteği varsa bu multi-threading, yani yapmaz? ya da bir defada tek isteği işler?

THTTPD'ye bir modül olarak php iyi bir dokümantasyon tartışırken davranış var mı?

1 Cevap

Ben THTTPD'ye ile hiçbir deneyimi var, ama burada bazı noktalar şunlardır:

  • PHP motoru parçacığı güvenli olduğunu, ancak bazı uzantılar yani genellikle insanlar uzakta bir çok dişli bir ortamda ve oldukça bir süreç ile gitmek kullanarak utangaç değil - bir-istek yöntemi
  • evet, genellikle (Apache MOD_ * şeyler gibi) web sunucusu modülleri ikamet kalarak çalışır, ancak PHP için büyük speedbump o (eklemek / gerektiren kullanırsanız hatta birden fazla kaynak dosyaları) her istek için kaynak dosyasını ayrıştırmak için ihtiyacı olduğunu. Sen APC, hangi dosyaların çözümlenen sürümünü önbelleğe gibi bir şey kullanarak bu aşağı kesebilir
  • Eğer bakmak isteyebilirsiniz FastCGI adında bir protokol de var - bu temelde modülü ve CGI çözümü arasında bir crossover - bu süreçlerin bir çift kadar döner, her bir işlem bu durumda CGI sorunun (PHP tek bir örneğini barındıran ) ve istekleri işlemek için bunları kullanır. (Birden çok isteklerini, birbiri ardına işleyebilir yani) Örneklerini geri dönüştürülmektedir.