Uygulama sunucusu vs PHP?

4 Cevap php

PHP web uygulamaları yazma fırsatı vardı ve sonra bir uygulama sunucusu hangi bağlamda (CherryPy'ın veya direği gibi örneğin Python tabanlı çözümler) olarak kim o sizin için, uygulama sunucuları PHP için daha iyi bir alternatif?

Ben sadece ilgili herhangi bir web sunucusu (özellikle paylaşılan bir bilgisayar) mevcut bulunuyor çünkü PHP lehine eğilimindedir, ama bilinçli bir seçim yapmak için başka iyi nedenler arıyorum. Teşekkür ederim.

4 Cevap

PHP için dağıtım avantajı da çok büyük bir. Ayrıca büyük bir geliştirici tabanı var ve zaten önemli uzmanlığa sahip gibi ses olacak. Eğer bir programlama dili iyi kullanmayı biliyorsanız, genel olarak, sopa ile daha güvenlidir.

Direği gibi bir Python web framework kullanmanın avantajları kodunuzu kıvrımlara olacağını, ve daha sürdürülebilir. Tabii ki bu PHP ile mümkündür, ama başarmak çok zor görünüyor. Python sadece PHP daha güzel bir dildir, böylece kararınızı etkileyebilir.

Şahsen ben bir Python uygulama sunucusu istiyorsanız, Zope denemek, bir "uygulama sunucusu" olarak dikmesi veya CherryPy da tarif olmaz. (Her ikisi de WSGI Uygulamalar hizmet yapmak, ama bu başka bir soru için bir konudur.) PHP için eşdeğer çerçeveler bol olması gibi görünüyor ve bunlar diğer yanıtlar listelenmiştir.

Ben tepkilerin bazıları doğrudan ilk soruya cevap vermedi bir his var, bu yüzden ben kendi sonrası karar verdi. Ben soru mod_php dağıtım modeli ve uygulama sunucusu dağıtım modeli arasındaki fark hakkında olduğunu anlıyorum.

Basit bir deyişle, PHP her istek üzerine verilen bir komut çalıştırır, ve (bu şekilde taklit sürece) uygulama öncesi ne oldu hiçbir bilgiye sahip. (Eğer APC gibi bir bytekod önbelleği kullanmak sürece) Ayrıca, hatta kaynak kodu her istek üzerine çözümlenen ediliyor. Bu süreç karmaşık başlatma ile ilgili bir çerçeve var, özellikle yavaş olabilir.

Buna karşılık olarak, uygulama sunucusu bir defa başlatılması gerekir, ve daha sonra işlenmek üzere bir talep bekler. Her istekleri (tahsis edilen bellek, açık tanımlayıcıları, vb), aynı zamanda ekstra performans için istekler arasında tekrar edilebilir (veritabanı bağlantıları gibi) bazı kaynaklara birikebilir sonra uygulama sunucusu kaynaklarını temizlemek gerekir.

Bu, daha sonra modeli (uygulama sunucusu) çoğu durumda daha etkili olmakla birlikte, diğer taraftan daha fazla kurulum için zor ve korumak. Bu kaynak sızıntıları önlemek için, size kullanmak kaynaklarına daha fazla dikkat etmeniz gerekiyor gibi, aynı zamanda daha zordur.

CherryPy'ın veya direği gibi aynı boşluğu doldurmak PHP bazı ürünler vardır.

(Tabii ki Python, koşmayın hariç ;)

Bir göz atın -

Şahsen ben büyük bir çerçeve olarak çalışıyor ve kutunun dışında CMS ve topluluk sitesi bir çok özellik ile birlikte geliyor Drupal tercih. Yukarıda olanlar birçok yönden oldukça farklı, ancak PHP üzerinde çalışan bir uygulama çerçevesi / AppServer istiyorsanız bunlardan herhangi size her iki dünyanın en iyi sunmalıdır.

Hangisi her biri çeşitli avantajları ve dezavantajları olmasına rağmen doğru seçim, büyük ölçüde zevk meselesi olduğunu.

Daha birçok vardır - bu ben meslektaşları ve ortaklardan hakkında iyi şeyler duydum sadece olanlardır. Bu tam bir liste değil.

Python web uygulamaları eşdeğer PHP sitesi (özellikle küçük siteler için çok) daha ilk kurulum ve geliştirme gerektiren eğilimindedir. Ayrıca PHP için daha yeniden adet (bir blog olarak yani Wordpress) olmak var eğilimindedir. Python web uygulamaları çalıştırmak için bir sunucu yapılandırma zor bir süreç olacak ve her zaman iyi belgelenmiş değildir. PHP, Apache ile çalışan almak çok kolay olma eğilimindedir.

PHP çok yaygın olarak kullanılan ve yoğun yeni başlayanlar tarafından kullanılan olarak da, bunun için çok iyi bir dokümantasyon olma eğilimindedir.

Ancak, Python çok daha eğlenceli ve çok daha rahat olduğunu. (Yerine trafik daha, geliştirme karmaşıklık açısından) iyi ölçekler.

Şahsen, ben de Python kullanarak daha iyi bir şekilde sorunları çözmek için tren eğiliminde olduğunu söyleyebilirim. Ben kesinlikle şeyler yapmanın Pythonic yolunu öğrenmiş olması için daha iyi bir geliştirici değilim.