mod_cgi, mod_fastcgi, mod_scgi, mod_wsgi, mod_python, FLUP.

4 Cevap php

Geçenlerde Python öğrendim. Ben onu sevdim. Ben sadece web geliştirme için kullanmak istedim. Bu düşünce, tüm sıkıntılara neden oldu. Ama bu sıkıntılar beğendim :)

Tek bir yolu standardize olduğu yerde PHP dünyasından gelen. Ben aynı beklenen ve python & aradı apache.

http://stackoverflow.com/questions/449055/setting-up-python-on-windows-apache diyor

Stay away from mod_python. One common misleading idea is that mod_python is like mod_php, but for python. That is not true.

Peki Python mod_php eşdeğerdir?

Bu sefer biraz açıklama gerekiyor http://stackoverflow.com/questions/219110/how-python-web-frameworks-wsgi-and-cgi-fit-together

CGI, FastCGI ve SCGI dil agnostik. Sen Perl, Python, C, bash, hatta Meclis :) CGI komut dosyaları yazabilirsiniz. Yani, mod_cgi, mod_fastcgi, mod_scgi bunlara tekabül apache modülleri vardır sanırım. Değil mi?

WSGI verimli bir sürümü specifically designed for python language sadece inshort gelişmiş optimize çeşit / olduğunu. Kullanmak için bu mod_wsgi gitmek için bir yoldur. değil mi?

Bu bırakır mod_python. O zaman nedir?

Apache -> mod_fastcgi -> FLUP (via CGI protocol) -> Django (via WSGI protocol) Flup is another way to run with wsgi for any webserver that can speak FCGI, SCGI or AJP

FLUP nedir? AJP nedir? Nasıl Django resimde geldi?

Bu sorular PHP hakkında quetions yükseltmek. Aslında nasıl çalışıyor? Ne teknoloji kullanıyor? mod_php & mod_python farklar nelerdir?

Daha sonra tekrar Perl veya Java kullanmak istiyorsanız ileride ben karışık almak zorunda kalacak? Lütfen kimse açıkça şeyleri açıklamak ve bir Complete Picture. verebilir

4 Cevap

(Her şeyi yapmaya çalışır yani) mod_python mod_php ne yapar gibi en çok. Bu mutlaka iyi bir şey değil ve ben bugün yerli mod_python arabirimleri yazma uygulamaları tavsiye etmem.

WSGI özellikle python için tasarlanmış verimli bir versiyonu inshort geliştirilmiş optimize çeşit / olduğunu

Fark WSGI Python dilin kendisi tanımlanmıştır: bu ne nesneleri belirtir ve kod alacaksınız değerleri. [S | Hızlı] CGI tel üzerinde bayt ile daha fazla endişe duyuyorlar.

WSGI standart (ya doğrudan, ya da onu destekleyen bir çerçeve kullanarak) için uygulama yazarak, uygulama-yazma ve dağıtım endişelerini uncoupling vardır.

Bu mod_wsgi kullanmak için gitmek için bir yoldur. değil mi?

O kadar sadece birinden a gitmek için yol ve kesinlikle Apache kullanıcıları için iyi bir seçimdir, ama bu. WSGI yazmak ve [S | Hızlı] gibi ortamlarda geniş bir yelpazede, dağıtabilirsiniz CGI ve mod_python.

Web bir Python uygulaması dağıtmak için standart bir yol WSGI üzerinden. Bu gün başka bir şey kullanmak için hiçbir neden yok.

mod_wsgi WSGI destekleyen Apache modülü. Diğer web sunucuları kendi WSGI modülleri için farklı adlara sahip olacaktır.

Python dünyada mod_php için kesin bir eşdeğeri yoktur.

  • FastCGI, SCGI ve AJP ayrı bir işlem (daemon) olarak web uygulamasını çalıştırın ve web sunucusu ve ona arasındaki mesajları geçmektedir.
  • mod_python istek aşamaları sırasında herhangi bir httpd süreci içine Python kod gömmek için kullanılır.
  • mod_wsgi cini ya da gömülü modunda ya Python kod çalıştırabilir.
  • CGI bir betik / program bir istek yapılan her zaman çalışan bir protokoldür.
  • FLUP başka bu arayüzler birine dönüştürmek için kullanılabilen bir adaptör kümesidir.

mod_python mod_php en yakın eşdeğerdir, ancak bu mod_python sizin ihtiyaçlarınıza uygun olacak anlamına gelmez. Her programlama dili için tüm olası seçenekleri numaralandırmak ve ihtiyacınız birini seçmek zorunda.

PHP için, mod_php'yi ve mod_cgi var, ama bu iki mod_cgi modülünde bu kadar insanlar genellikle ikinci seçmek mod_php neredeyse tüm yollarla düşüktür. (Daha fazla güvenlik, vs gerekirse bazı alternatifler suPHP'lidir gibi, vardır)

Python için, Python yorumlayıcı bir istek yapmak her zaman çalışacağı, mod_cgi var. Mod_python yerine daha hızlı ve yapılacak basit genellikle yani gömülü Python vardır, ancak büyük projeler (Django gibi) bir çerçeve kullanıyorsanız, ya da projeler için muhtemelen en çok kaynak dostu olduğundan mod_wsgi kullanmak isteyeceksiniz.

Yakut için de mod_cgi kullanma seçeneği var, ama bu şekilde çok yavaş olacaktır. mod_ruby ama sadece küçük programlar için, aynı zamanda bir seçenektir. mod_fastcgi genellikle raylar / Merb ve diğer yakut tabanlı web çerçeveleri için bir seçenek, ama onlar esource dostu mod_rails ve mod_rack tarafından superseeded edilir. Ama basit komut dosyaları için ikincisi biraz çok ağır vardır.

Mono (asp.net) için genellikle tek seçenek olan, mod_mono var.

Java için genellikle ayrı bir Tomcat / İskelesi web sunucusu çalıştırmak ve mod_proxy kullanın.

Sadece geliştirme süreci için çok uygun olmasına rağmen tabii ki ayrı bir web sunucusu ve kullanımı mod_proxy çalışan, genellikle tüm web çerçeveleri için bir seçenektir. Üretim ortamları için carefuly iyi seçenek sizin çerçevesi (Django, raylar, asp.net, vb) (çoğunlukla kaynak dostu bir) ihtiyaçları seçmek zorunda