<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Jaros&#322;aw Zabie&#322;&#322;o - BLOG: Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python...</title>
    <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>moje notatki, linki, komentarze</description>
    <item>
      <title>Lightpd &amp;amp; FastCGI vs. Apache &amp;amp; mod_php,mod_python...</title>
      <description>Serwer &lt;a href="http://httpd.apache.org/"&gt;Apache&lt;/a&gt; jest bardzo popularnym i solidnym serwerem www. Nie dziwi wi&#281;c powszechne u&#380;ywanie jego modu&#322;ow do obs&#322;ugi Perla, &lt;span class="caps"&gt;PHP&lt;/span&gt; czy Pythona. Uzywanie mod_php jest wr&#281;cz nagminne (ca&#322;y serwis &lt;a href="http://sourceforge.net"&gt;sourceforge.net&lt;/a&gt; stoi na mod_php). Podobnie tw&#243;rcy pythonowego frameworku &lt;a href="http://djangoproject.com"&gt;Django&lt;/a&gt; 
zalecaj&#261; u&#380;ywanie mod_pythona. W &lt;a href="http://www.djangoproject.com/documentation/install/"&gt;dokumentacji&lt;/a&gt; pisz&#261;, &#380;e: 
	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;je&#347;li chcesz u&#380;ywa&#263; Django na serwerze produkcyjnym, uzywaj Apache&amp;#8217;a z mod_pythonem (...) Django wymaga Apache 2.x oraz mod_python 3.x.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Zupe&#322;nie inne podej&#347;cie zalecaj&#261; tw&#243;rcy frameworka &lt;a href="http://rubyonrails.com"&gt;Ruby on Rails&lt;/a&gt;. Nie do&#347;&#263;, &#380;e zalecaj&#261; u&#380;ycie modu&#322;u &lt;a href="http://www.fastcgi.com/"&gt;FastCGI&lt;/a&gt; to na dodatek, zalecaj&#261; (o grozo:) u&#380;ywanie innego serwera www: &lt;a href="http://www.lighttpd.net/"&gt;Ligttpd&lt;/a&gt;. Kt&#243;re podej&#347;cie jest lepsze?&lt;/p&gt;


	&lt;h2&gt;Problem z uniwersalno&#347;ci&#261;&lt;/h2&gt;


	&lt;p&gt;Korzystanie z modu&#322;&#243;w Apache&amp;#8217;a wi&#261;&#380;e nas na dobre i z&#322;e z tym serwerem. korzystanie z fastcgi daje nam wi&#281;ksze pole manewru. Mo&#380;emy korzysta&#263; z Apache, Lighttpd, &lt;span class="caps"&gt;IIS&lt;/span&gt; i innych serwer&#243;w www.&lt;/p&gt;


	&lt;h2&gt;Problem stabilno&#347;ci serwera&lt;/h2&gt;


	&lt;p&gt;Jakikolwiek b&#322;&#261;d w skryptach pracuj&#261;cych  w trybie mod_php czy mod_python odbija si&#281; bardzo niebezpiecznie na stabilno&#347;ci ca&#322;ego serwera. Jeden b&#322;&#281;dnie dzia&#322;aj&#261;cy skrypt mo&#380;e zawiesi&#263; ca&#322;y serwer! Dotyczy to nie tylko Apache, ale tak&#380;e windowsowego &lt;span class="caps"&gt;IIS&lt;/span&gt; i modu&#322;&#243;w &lt;span class="caps"&gt;ISAPI&lt;/span&gt;. Co ciekawe, modu&#322; &lt;span class="caps"&gt;ISAPI&lt;/span&gt; dla j&#281;zyka &lt;span class="caps"&gt;PHP&lt;/span&gt; jest wiecznie w fazie niestabilnej i testowej. Co z tego, &#380;e jest szybszy ni&#380; klasyczny &lt;span class="caps"&gt;CGI&lt;/span&gt;, skoro jeden drobny b&#322;&#261;d w skrypcie &lt;span class="caps"&gt;PHP&lt;/span&gt; potrafi zawiesi&#263; ca&#322;y serwer i unieruchomi&#263; ca&#322;a sie&#263; intranetow&#261; na nim opart&#261;? To jeden z powod&#243;w dla kt&#243;rych &lt;span class="caps"&gt;PHP&lt;/span&gt; nie nadaje si&#281; najlepiej do pracy pod Windowsami (wiem, &#380;e istnieje Apache/win32 ale z r&#243;&#380;nych powod&#243;w, kt&#243;rych tu nie b&#281;d&#281; rozwija&#322;,  korporacyjne sieci intranetowe oparte na Windows Server wol&#261; u&#380;ywa&#263; &lt;span class="caps"&gt;IIS&lt;/span&gt;)&lt;/p&gt;


	&lt;p&gt;Procesy FastCGI s&#261; &lt;strong&gt;izolowane&lt;/strong&gt; od serwera. Jak kt&#243;ry&#347; si&#281; zawiesi, to serwerowi nic si&#281; nie stanie. Proces mo&#380;na ubi&#263;, zrestartowac. Daje to znacznie wi&#281;ksz&#261; stabilno&#347;&#263; pracy serwera.&lt;/p&gt;


	&lt;h2&gt;Problem bezpiecze&#324;stwa&lt;/h2&gt;


	&lt;p&gt;Ka&#380;dy skrypt odpalany w trybie mod_php na Apache&amp;#8217;u jest odpalany w kontek&#347;cie &lt;strong&gt;tego samego uzytkownika&lt;/strong&gt;. Tworzy to dosy&#263; powa&#380;n&#261; dziur&#281; bezpiecze&#324;stwa na serwerach hostingowych. Ka&#380;dy u&#380;ytkownik na serwerze za pomoc&#261; prostego kodu &lt;span class="caps"&gt;PHP&lt;/span&gt; mo&#380;e przegl&#261;da&#263; &lt;strong&gt;&#378;r&#243;d&#322;a&lt;/strong&gt; dowolnego pliku  innych u&#380;ytkownik&#243;w. Wszyscy maj&#261; dost&#281;p  do wszystkich! Napisa&#322;em nawet swego czasu prosty skrypt wedruj&#261;cy po ca&#322;ym sourceforge.net i przegl&#261;daj&#261;cy &#378;r&#243;d&#322;a wszystkich dost&#281;pnych tam projekt&#243;w. :) Ka&#380;dy, &#347;rednio zaawansowany programista z &#322;atwo&#347;ci&#261; napisze sobie taki kod. Nie ma znaczenia, czy to b&#281;dzie Perl (mod_perl), Python (mod_python) czy &lt;span class="caps"&gt;PHP&lt;/span&gt; (mod_php).&lt;/p&gt;


	&lt;p&gt;W FastCGI tego problemu nie ma. Ka&#380;dy u&#380;ytkownik mo&#380;e pracowa&#263; na swoich prawach w pe&#322;nej izolacji. Wystarczy ka&#380;demu przydzieli&#263; po procesie FastCGI na prawach danego u&#380;ytkownika.&lt;/p&gt;


	&lt;h2&gt;Marnowanie mo&#380;liwo&#347;ci Apache&amp;#8217;a 2.x&lt;/h2&gt;


	&lt;p&gt;To mo&#380;e nie jest najwa&#380;niejszy problem. Apache 2.x potrafi pracowa&#263; w trybie wielow&#261;tkowym (worker) lub wieloprocesowym (prefork) kt&#243;ry jest zgodny ze starym Apache 1.x . Ten pierwszy jest nowocze&#347;niejszy, szybszy i po&#380;era mniej pami&#281;ci. Problem jednak w tym, &#380;e najbardziej popularny j&#281;zyk skryptowy nie posiada poprawnie zaimplementowanej wielow&#261;tkowo&#347;ci. Je&#347;li wi&#281;c chcesz u&#380;ywa&#263; &lt;span class="caps"&gt;PHP&lt;/span&gt;, to zapomnij o trybie workera. Musisz pracowa&#263; w starym trybie prefork. Zajmuje to wi&#281;cej pami&#281;ci, ale za to nie b&#281;dzie problem&#243;w z r&#243;&#380;nymi bibliotekami &lt;span class="caps"&gt;PHP&lt;/span&gt;.&lt;/p&gt;


	&lt;h2&gt;Problem zasobo&#380;erno&#347;ci&lt;/h2&gt;


	&lt;p&gt;Gdy uruchamiamy Apache 1.x lub Apache 2.x w trybie prefork, uruchamiamy szereg podproces&#243;w. Ka&#380;dy z nich zajmuje okre&#347;lon&#261; ilo&#347;&#263; pami&#281;ci. Ka&#380;dy z zainstalowanych modu&#322;&#243;w&amp;#8230; r&#243;wnie&#380;. A to przecie&#380; nie ma sensu! W praktyce nie chcemy wykorzystywa&#263; wszystkich proces&#243;w do przetwarzania mod_pythona. Wi&#281;kszo&#347;&#263; proces&#243;w jest zaj&#281;ta podawaniem statycznej warto&#347;ci (obrazki, pliki ze stylami kaskadowymi, skryptami JavaScript itp).&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;FastCGI pozwala na ograniczenie ustalenie ilo&#347;ci swoich proces&#243;w&lt;/strong&gt; w spos&#243;b niezale&#380;ny od wszystkich proces&#243;w serwera www. Np. mo&#380;emy sobie zadecydowa&#263;, aby 100 proces&#243;w zajmowa&#322;o si&#281; warto&#347;ci&#261; statyczn&#261;, a tylko 10 warto&#347;ci&#261; dynamiczn&#261;. Takie co&#347; jest niemo&#380;liwe wypadku korzystania z mod_php czy mod_pythona. A oszcz&#281;dno&#347;ci na zu&#380;yciu pami&#281;ci b&#281;d&#261; kolosalne!&lt;/p&gt;


	&lt;p&gt;Np. mo&#380;na za&#322;ozy&#263;, &#380;e pojedy&#324;czy proces Apache podczas serwowania statycznych stron zajmie nie wi&#281;cej ni&#380; ok 5 MB pami&#281;ci. Natomiast w wypadku u&#380;ycia mod_ruby mo&#380;e wzrosn&#261;&#263; nawet do ok. 20-30MB na proces. U&#380;ycie zatem 100 proces&#243;w Apache&amp;#8217;a z tylko 10 procesami FastCGI zu&#380;yje ok. 800MB pami&#281;ci. Za&#347; u&#380;ycie mod_ruby bez problemu po&#380;re nawet i 3GB!&lt;/p&gt;


	&lt;h2&gt;Dlaczego Lighttpd a nie Apache?&lt;/h2&gt;


	&lt;p&gt;Na ko&#324;cu chcia&#322;bym jeszcze zastanowi&#263; si&#281; czy tw&#243;rcy Rails&#243;w nie maj&#261; racji i czy w og&#243;le nie warto zrezygnowa&#263; z Apache na rzecz Lighttpd? S&#261; generalnie 3 powody za i jeden przeciw.&lt;/p&gt;


	&lt;h3&gt;Za: lepiej dopracowany modu&#322; FastCGI&lt;/h3&gt;


	&lt;p&gt;Modu&#322; FastCGI do Apache&amp;#8217;a ma opini&#281; nie do ko&#324;ca stabilnego i dopracowanego. To powoduje obaw&#281; wi&#281;kszo&#347;ci u&#380;ytkownik&#243;w od u&#380;ywania go dla serwera Apache. Z kolei serwer Lighttpd od samego pocz&#261;tku k&#322;ad&#322; nacisk na dobr&#261; implementacj&#281; swego modu&#322;u FastCGI. Jest on stabilniejszy i lepiej dopracowany ni&#380; pod Apachem.&lt;/p&gt;


	&lt;h3&gt;Za: Wbudowana mo&#380;liwo&#347;&#263; rozk&#322;adania obci&#261;&#380;enia&lt;/h3&gt;


	&lt;p&gt;Lighttpd ma wbudowany mechanizm rozk&#322;adania ruchu na wiele serwer&#243;w. Je&#347;li wi&#281;c nawet kto&#347; upiera si&#281; przy Apache&amp;#8217;u, to w wypadku kiedy jeden serwer nie jest wystarczaj&#261;cy do obs&#322;ugi ruchu, mo&#380;e warto rozwa&#380;y&#263; aby postawi&#263; na froncie jeden serwer Lighttpd kt&#243;ry by rozk&#322;ada&#322; ruch pomi&#281;dzy kilka serwer&#243;w?&lt;/p&gt;


	&lt;p&gt;(Najnowszy  Apache 2.2 ma posiada&#263; podobny mechanizm. Jednak jest to jeszcze bardzo &#347;wie&#380;a wersja, kt&#243;ra (w momencie pisania tego tekstu) nie ma nawet prekompilowanej instalacji dost&#281;pnej dla Windows&#243;w oraz nie wiadomo jak jest ze stabilno&#347;ci&#261; wszystkich modu&#322;&#243;w.)&lt;/p&gt;


	&lt;h3&gt;Za: Lighttpd jest szybszy&lt;/h3&gt;


	&lt;p&gt;O ile najnowszy Apache 2.2 nie zmieni sytuacji, to wszystko wskazuje na to, ze Lighttpd &lt;a href="http://www.lighttpd.net/benchmark/"&gt;jest po prostu szybszy&lt;/a&gt;. Nie tylko zdecydowanie szybciej podaje statyczne dane ale tak&#380;e szybciej dzia&#322;a &lt;span class="caps"&gt;PHP&lt;/span&gt; pod Lighttpd ni&#380; mod_php pod Apachem. To nie s&#261; drobne r&#243;&#380;nice. To s&#261; r&#243;&#380;nice rz&#281;du 2-3 razy!&lt;/p&gt;


	&lt;h3&gt;Przeciw: Apache ma wi&#281;cej modu&#322;&#243;w&lt;/h3&gt;


	&lt;p&gt;W&#322;a&#347;ciwie jedynym powodem aby u&#380;ywa&#263; Apache zamiast Lighttpd jest to, &#380;e do Apache napisano znacznie wi&#281;cej r&#243;&#380;nych modu&#322;&#243;w. Ale szczerze m&#243;wi&#261;c, w praktyce to rzadko ma znaczenie. Wi&#281;kszo&#347;&#263; os&#243;b uzywa g&#322;&#243;wnie kilku modu&#322;&#243;w. Za&#347; Lighttpd posiada praktycznie wszystko, co potrzeba: mod_fastcgi, mod_cgi, mod_redirect, mod_access, mod_auth, mod_compress, mod_webdav, mod_ssl, mod_alias, mod_proxy, mod_rewrite, itp. itd.&lt;/p&gt;


	&lt;h2&gt;Lighttpd + FastCGI. To dzia&#322;a!&lt;/h2&gt;


	&lt;p&gt;Na szcz&#281;&#347;cie, dzi&#281;ki standardowi &lt;a href="http://www.python.org/dev/peps/pep-0333/"&gt;&lt;span class="caps"&gt;WSGI&lt;/span&gt;&lt;/a&gt;, u&#380;ytkownicy Pythona nie musz&#261; s&#322;ucha&#263; zalece&#324; developer&#243;w Django. Teraz praktycznie wszystkie frameworki Pythona pozwalaj&#261; dzi&#281;ki &lt;span class="caps"&gt;WSGI&lt;/span&gt; korzysta&#263; z dobrodziejstw FastCGI. Ja r&#243;wnie&#380; na swoim serwerze wyrzuci&#322;em Apache&amp;#8217;a i zastapi&#322;em go Lighttpd. Podaje zar&#243;wno strony statyczne jak i obs&#322;uguje ten blog, a nawet &lt;a href="http://apologetyka.com/biblia"&gt;&lt;span class="caps"&gt;PHP 5&lt;/span&gt;.1&lt;/a&gt;. Nawet &lt;a href="http://plone.org"&gt;Plone&lt;/a&gt; mi uda&#322;o mi si&#281; uruchomi&#263; z Lighttpd &lt;a href="http://creationism.org.pl"&gt;na przodzie&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 24 Apr 2006 19:40:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:9c3499f2-8be7-48b5-bf23-432e30cabb37</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python</link>
      <category>PHP</category>
      <category>Python</category>
      <category>Django</category>
      <category>apache</category>
      <category>lighttpd</category>
      <category>fastcgi</category>
      <category>mod_python</category>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by cinkowskiw</title>
      <description>&lt;p&gt;Zapowiada si&#281;, aby lighttpd kiedykolwiek obs&#322;ugiwa&#322; .htaccess? Je&#380;eli tak, to kiedy i czy pliki b&#281;d&#261; podobne do tych z Apache?&lt;/p&gt;</description>
      <pubDate>Sun, 25 Feb 2007 20:08:13 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:f2aa8b0e-cae4-49d1-9413-7583133b3fc5</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-560</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by Jaros&#322;aw Zabie&#322;&#322;o</title>
      <description>&lt;p&gt;Lepszy jest &lt;a href="http://nginx.net" rel="nofollow"&gt;nginx&lt;/a&gt;. Z Lighttpd mia&#322;em sporo problem&#243;w pod du&#380;ym obci&#261;&#380;eniem.&lt;/p&gt;</description>
      <pubDate>Wed, 22 Nov 2006 23:11:41 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:73d8a178-51a9-483d-aa8a-fb03214a38af</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-310</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by eRiZ</title>
      <description>&lt;p&gt;Przesiad&#322;bym sie na LightTPD, ale na razie powstrzymuje mnie przed tym brak czegokolwiek na poz&#243;r .htaccess bez restartowania serwera&amp;#8230;&lt;/p&gt;</description>
      <pubDate>Wed, 22 Nov 2006 22:30:44 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:cdfb1ebd-35d6-40a5-8f7a-e3b98a178b31</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-309</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by to w&#322;asnie ja</title>
      <description>&lt;p&gt;napisa&#322;e&#347; &#380;e dzi&#281;ki fastcgi mo&#380;na uruchomi&#263; php z uprawnieniami usera nie serwera www. prawda, jednak fastcgi polega na tym &#380;e procesy php pozostaj&#261; otwarte nawet gdy nie s&#261; u&#380;ywane, wi&#281;c jesli uruchomisz minimaln&#261; ilo&#347;c 2 child&#243;w dla 100 user&#243;w otrzymasz u&#380;ycie pami&#281;ci si&#281;gaj&#261;ce 2GB nawet je&#347;li php nie jest u&#380;ywane przez nikogo!&lt;/p&gt;</description>
      <pubDate>Mon, 13 Nov 2006 14:16:11 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:9017df16-70c2-45bf-9bc5-1f606079cf89</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-284</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by cml</title>
      <description>&lt;p&gt;&lt;a href="http://www.php.net/manual/en/faq.installation.php#faq" rel="nofollow"&gt;http://www.php.net/manual/en/faq.installation.php#faq&lt;/a&gt;.installation.apache2&lt;/p&gt;


	&lt;p&gt;tutaj napisali ze &amp;#8220;third party modules&amp;#8221; moga zle dzialac z mpm-worker&lt;/p&gt;


	&lt;p&gt;nic nie napisali ze ICH moduly nie obsluguja tego..&lt;/p&gt;</description>
      <pubDate>Fri, 27 Oct 2006 08:18:31 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:53eaa5ef-bca0-438b-a151-860eec8652bd</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-261</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by Jaros&#322;aw Zabie&#322;&#322;o</title>
      <description>&lt;p&gt;Po pierwsze w&#261;tki (threads) to nie to samo co procesy (forks) Apache&amp;#8217;a. Po drugie, wszystko masz wyt&#322;umaczone na stronach PHP. Np. w manualu do PHP &lt;a href="http://www.php.net/manual/en/install.unix.apache2.php" rel="nofollow"&gt;ostrzegaj&#261;&lt;/a&gt; aby nie u&#380;ywa&#263; go z Apachem 2 w trybie wielow&#261;tkowym: &amp;#8220;&lt;strong&gt;We do not recommend using a threaded MPM in production with Apache2. Use the prefork MPM instead, or use Apache1&lt;/strong&gt;.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;A to, &#380;e nic ci si&#281; nie sypn&#281;&#322;o wynika&#263; mo&#380;e z (1) fartu, (2) faktu, &#380;e &lt;strong&gt;PHP nie posiada mechanizmu globalnego wy&#322;apania wyj&#261;tk&#243;w&lt;/strong&gt; i zwracania ich mailem do usera, wi&#281;c wiele b&#322;&#281;d&#243;w po prostu nie da si&#281; &#322;atwo zauwa&#380;y&#263;. (Nawet PHP5 ma wi&#281;kszo&#347;&#263; bibliotek kt&#243;re sypi&#261; warningiem czy errorem bez wyzwalania wyj&#261;tku, kt&#243;ry mo&#380;na by przechwyci&#263; i wykorzysta&#263;) St&#261;d tak wiele aplikacji pehapowych pe&#322;nych b&#322;&#281;d&#243;w o kt&#243;rych nic nie wiedz&#261; ich tw&#243;rcy.&lt;/p&gt;</description>
      <pubDate>Wed, 06 Sep 2006 18:47:33 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:55a673ab-4c14-4283-b907-f82b02ebf978</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-192</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by Rafi</title>
      <description>&lt;p&gt;Zastanawia mnie tylko jedno stwierdzenie z tego tekstu:&lt;/p&gt;


	&lt;p&gt;&amp;#8220;Problem jednak w tym, &#380;e najbardziej popularny j&#281;zyk skryptowy nie posiada poprawnie zaimplementowanej wielow&#261;tkowo&#347;ci. Je&#347;li wi&#281;c chcesz u&#380;ywa&#263; PHP, to zapomnij o trybie workera.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;U&#380;ywam trybu workera na wszystkich 9 serwerach jakie posiadam ;) i na &#380;adnym z nich nie wyst&#261;pi&#322;y &#380;adne problemy z tym trybem i PHP oraz innymi modu&#322;ami. U&#380;ywaj&#261;c mod_php ka&#380;dy skrypt jest indywidualnie kompilowany i wykonywany przez procesy/w&#261;tki apache&amp;#8217;a, wi&#281;c nie widz&#281; tutaj za bardzo przyczyn do problem&#243;w&amp;#8230; Ch&#281;tnie przeczyta&#322;bym jakie&#347; g&#322;&#281;bsze wyja&#347;nienie :)&lt;/p&gt;</description>
      <pubDate>Thu, 15 Jun 2006 06:26:19 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:c1e90af2-56f3-4257-b1f6-e98b79269733</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-146</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by Jaros&#322;aw Zabie&#322;&#322;o</title>
      <description>&lt;p&gt;Te przyk&#322;adowe wyliczenia wzi&#261;&#322;em z ksi&#261;zki &lt;a href="http://www.pragmaticprogrammer.com/titles/rails/" rel="nofollow"&gt;Agile&amp;#8230;&lt;/a&gt;. Przed chwil&#261; sprawdzi&#322;em (poleceniem top), &#380;e na moim Debianie 3.1 ka&#380;dy proces fastcgi dla Rubiego zajmuje 23MB. (Inna sprawa &#380;e pojedy&#324;czy proces dla PHP 5.1.2 zajmuje mi ok 6MB). W ka&#380;dym razie istota sprawy polega na tym, &#380;e Lighttpd nie musi na ka&#380;dym z fork&#243;w mie&#263; podpi&#281;ty interpreter (tu Rubiego) i to znacznie oszcz&#281;dza pami&#281;&#263;.&lt;/p&gt;


	&lt;p&gt;Co do podpinania Pythona do FastCGI to najlepiej to zrobi&#263; poprzez WSGI. Prawie wszystkie frameworki udost&#281;pniaj&#261; handler do WSGI (u&#380;ywanie Pythona do webu bez &#380;adnego frameworka to raczej ma&#322;o dobry pomys&#322;, burdel si&#281; tylko zrobi tak jak w php). Biblioteka &lt;a href="http://www.saddi.com/software/flup/" rel="nofollow"&gt;flup&lt;/a&gt; pozwala uruchomi&#263; Pythona na wiele sposob&#243;w (w wypadku fastcgi mo&#380;na sobie nawet wybra&#263; czy serwer b&#281;dzie forkowy, czy wielow&#261;tkowy). Pylons/Myghty, Django czy TurboGears/CherryPy maj&#261; gotowe handlery fastcgi.&lt;/p&gt;</description>
      <pubDate>Wed, 26 Apr 2006 22:41:37 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:d1e3dcf5-3c96-493a-a4f4-8f4208128951</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-85</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by Pawe&#322; Rutkowski</title>
      <description>&lt;p&gt;Z tym &#380;e ka&#380;dy z proces&#243;w apache zajmuje 20-30MB to troche przesadzi&#322;e&#347;. Fakt &#380;e top czy ps poka&#380;&#261; takie warto&#347;ci, jednak w przypadku modelu prefork nie s&#261; one do ko&#324;ca prawdziwe. Nie wiem jak Linux ale we FreeBSD fork dzia&#322;a na zasadzie mechanizmu copy-on-write przezco nie alokuje za ka&#380;dym razem ca&#322;ej przestrzeni adresowej procesu tylko strony kt&#243;re zosta&#322;y poddane modyfikacji (a tych w przypadku za&#322;adowanych modu&#322;&#243;w raczej nie bedzie ich du&#380;o).&lt;/p&gt;</description>
      <pubDate>Wed, 26 Apr 2006 11:55:45 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:a2f29312-4493-4557-b6f0-58682244fb10</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-84</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by FREQUENTER</title>
      <description>&lt;p&gt;Ja r&#243;wnie&#380; by&#322;bym ch&#281;tny zobaczy&#263; taki TUTORIAL:
&lt;b&gt;&amp;#8220;LIGHTTPD z PYTHONem i FastCGI&amp;#8221;&lt;/b&gt; na przodzie :)&lt;br&gt;Pozdrawiam&lt;/p&gt;</description>
      <pubDate>Wed, 26 Apr 2006 06:22:25 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:55fb2a71-df62-4bb9-84ff-1e46b9087ec2</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-83</link>
    </item>
    <item>
      <title>"Lightpd &amp; FastCGI vs. Apache &amp; mod_php,mod_python..." by Micha&#322; Kwiatkowski</title>
      <description>&lt;p&gt;A podzieli&#322;by&#347; si&#281; kawa&#322;kami plik&#243;w konfiguracyjnych? Takie kr&#243;tkie HOWTO jak postawi&#263; Pythona na Lighttpd z FastCGI z informacjami gdzie sk&#261;d &#347;ci&#261;gn&#261;&#263; i gdzie co wpisa&#263; to by&#322;oby co&#347;. :)&lt;/p&gt;</description>
      <pubDate>Mon, 24 Apr 2006 20:13:04 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:ccbebdd7-127a-439f-a0d4-d3b60ee77cf1</guid>
      <link>http://blog.zabiello.com/articles/2006/04/24/lightpd-fastcgi-vs-apache-mod_php-mod_python#comment-81</link>
    </item>
  </channel>
</rss>
