{"id":125,"date":"2007-12-01T23:27:28","date_gmt":"2007-12-01T22:27:28","guid":{"rendered":"http:\/\/eriz.pcinside.pl\/weblog\/alternatywa-dla-apachea-cherokee-125.html"},"modified":"2007-12-02T15:01:28","modified_gmt":"2007-12-02T14:01:28","slug":"alternatywa-dla-apachea-cherokee","status":"publish","type":"post","link":"https:\/\/eriz.pcinside.pl\/weblog\/alternatywa-dla-apachea-cherokee-125.html","title":{"rendered":"Alternatywa dla Apache&#8217;a &#8211; Cherokee"},"content":{"rendered":"<p>Nie, nie b\u0119d\u0119 pisa\u0142 o hrabstwach, ani o plemieniu Indian (chocia\u017c Apache &#8211; Cherokee nawet etymologicznie s\u0105 ze sob\u0105 powi\u0105zane ;)).<\/p>\n<p>Mowa b\u0119dzie o alternatywnym dla Apache&#8217;a demonie http &#8211; <a href=\"http:\/\/www.cherokee-project.com\/\">Cherokee Web Server<\/a>. A trafi\u0142em na\u0144 zupe\u0142nie przez przypadek&#8230;<\/p>\n<p>Co ciekawe, te\u017c sprawnie chodzi na &#8222;biednych&#8221; maszynach (p\u00f3ki co, trzyma si\u0119 :)).<\/p>\n<p><!--more--><\/p>\n<p>Ostatnio <a href=\"\/weblog\/alternatywa-dla-apachea-nginx-php-fastcgi-w-ubuntu-113.html\">pisa\u0142em o Nginksie<\/a>. Wi\u0119c po co znowu co\u015b innego? Ano, zauwa\u017cy\u0142em jaki\u015b dziwny feler w Nginksie, kt\u00f3rego nie by\u0142em w stanie zmusi\u0107 do dzia\u0142ania z PHP 5.2.3 (nie komunikowa\u0142 si\u0119 z procesem FastCGI). Nie wiem, jak jest z 5.2.4, ale w\u00f3wczas potrzebowa\u0142em jakiegokolwiek demona, kt\u00f3ry by\u0142by du\u017co l\u017cejszy od Apache&#8217;a.<\/p>\n<p><a href=\"http:\/\/cherokee-project.com\">Cherokee<\/a> jest chyba ma\u0142o znanym demonem, kt\u00f3ry oferuje jednak naprawd\u0119 niez\u0142e mo\u017cliwo\u015bci, m. in:<\/p>\n<ul>\n<li>obs\u0142uga FastCGI z <strong>wbudowanym zarz\u0105dzaniem procesami-dzie\u0107mi<\/strong><\/li>\n<li>obs\u0142uga SSL, TLS<\/li>\n<li>posiada mo\u017cliwo\u015b\u0107 generowania log\u00f3w kompatybilnych z formatem Apache&#8217;a (przydatne np. przy korzystaniu z Webalizera)<\/li>\n<li>obs\u0142uga wirtualnych host\u00f3w<\/li>\n<\/ul>\n<p>Postawi\u0142em go na PC ubogim w RAM (128MB + MySQL) i musz\u0119 przyzna\u0107, \u017ce jestem bardzo pozytywnie zaskoczony. Niestety, nie robi\u0142em z nim pr\u00f3b przeci\u0105\u017ceniowych, ale dla por\u00f3wnania przydatne mog\u0105 by\u0107 <a href=\"http:\/\/www.cherokee-project.com\/benchmarks\">benchmarki na stronie projektu<\/a>.<\/p>\n<p>Jego konfiguracja jest IMHO du\u017co prostsza ni\u017c w przypadku nginksa. Co wa\u017cne, Cherokee <strong>sam startuje<\/strong> procesy FastCGI, co uwalnia nas od konieczno\u015bci pisania skrypt\u00f3w odpalaj\u0105cych interpretery.<\/p>\n<h3>Instalacja i konfiguracja<\/h3>\n<p>&#8230;b\u0119dzie \u0142atwa dla ka\u017cdego, kto ma poj\u0119cie, jak kompilowa\u0107 pakiety w Linuksie. Oczywi\u015bcie, mo\u017cna jeszcze pos\u0142u\u017cy\u0107 si\u0119 <a href=\"http:\/\/www.cherokee-project.com\/downloads\">binarkami<\/a>.<\/p>\n<h4>Kompilacja<\/h4>\n<p>Jak podaje <a href=\"http:\/\/www.cherokee-project.com\/doc\/Compiling_and_Installing.html\">oficjalna dokumentacja<\/a>, wystarcz\u0105 standardowe pakiety s\u0142u\u017c\u0105ce do &#8222;wytwarzania&#8221; &#8211; automake, autoconf i jaki\u015b kompilator C. \u015aci\u0105gamy <a href=\"http:\/\/www.cherokee-project.com\/cgi-bin\/cherokee-last-tarball\">najnowsze archiwum<\/a> i <em>tar -xzf cherokee-x.x.x.tar.gz<\/em> i logujemy si\u0119 jako root.<\/p>\n<p>Je\u015bli nam zale\u017cy na tym, aby jak najszybciej postawi\u0107 serwer, bez zb\u0119dnego zag\u0142\u0119biania si\u0119 w prefiksy, itp, to wystarcz\u0105 trzy magiczne komendy: <em>.\/configure &#038;&#038; make &#038;&#038; make install<\/em>. Tyle z kompilacji. ;]<\/p>\n<p>Opcje do <em>.\/configure<\/em> s\u0105 raczej typowe (poza kilkoma charakterystycznymi, o nich po wywo\u0142aniu komendy <em>.\/configure &#8211;help<\/em>.<\/p>\n<p>Po pomy\u015blnej kompilacji (no, na 95% ;]), przechodzimy do kolejnego etapu.<\/p>\n<h4>Podstawowa konfiguracja<\/h4>\n<p>W zale\u017cno\u015bci od tego, z jakim prefiksem skompilowali\u015bmy serwer, szukamy katalogu z konfiguracj\u0105. W przypadku, gdy skorzystali\u015bmy z opcji domy\u015blnych, b\u0119dzie to <em>\/etc\/cherokee<\/em>. Struktura podkatalog\u00f3w i sk\u0142adnia plik\u00f3w jest bardzo podobna do tej znanej z Apache&#8217;a, wi\u0119c fani Indian poczuj\u0105 si\u0119 jak u swoich. ;]<\/p>\n<p>W rzeczywisto\u015bci, potrzebujemy tylko pod\u0142\u0105czy\u0107 obs\u0142ug\u0119 PHP pod dzia\u0142aj\u0105cy serwer. Wszystko sprowadza si\u0119 do dopisania kilku linijek do pliku opisuj\u0105cym konkretny serwis (np. <em>katalog cherokee\/sites-enabled\/default<\/em>) b\u0105d\u017a dla wszystkich (wtedy dopisz to do <em>katalog cherokee\/cherokee.conf<\/em>):<\/p>\n<p><code lang=\"text\">Extension php, php3, php4 {<br \/>\n        Handler fcgi{<br \/>\n                Server localhost:8282{<br \/>\n                        Env PHP_FCGI_MAX_REQUESTS \"100\"<br \/>\n                        Env PHP_FCGI_CHILDREN \"5\"<br \/>\n                        Interpreter \"\/usr\/local\/bin\/php-cgi -b 8282\"<br \/>\n                }<br \/>\n        }<br \/>\n}<br \/>\n<\/code><\/p>\n<p>Przyda\u0142oby skompilowa\u0107 PHP z obs\u0142ug\u0105 FastCGI (parametr <em>&#8211;enable-fastcgi<\/em>).<\/p>\n<p>Teraz ma\u0142e om\u00f3wienie. Pierwsza linijka, otwieraj\u0105ca blok, definiuje rozszerzenia, dla kt\u00f3rych serwer ma wykorzystywa\u0107 zdefiniowany proces FastCGI. Liczba <em>8282<\/em> wskazuje, przez kt\u00f3ry port maj\u0105 komunikowa\u0107 si\u0119 z sob\u0105 PHP i Cherokee. Wpisujemy jaki\u015b nieu\u017cywany. ;]<\/p>\n<p>Zmienne <em>PHP_FCGI_*<\/em> ju\u017c opisa\u0142em przy okazji omawiania <a href=\"\/weblog\/alternatywa-dla-apachea-nginx-php-fastcgi-w-ubuntu-113.html\">instalowania Nginksa<\/a>.<\/p>\n<p>Aby demon startowa\u0142 przy bootowaniu, kopiujemy plik <em>cherokee<\/em> z katalogu <em>contrib<\/em> rozpakowanych \u017ar\u00f3de\u0142 do <em>\/etc\/init.d<\/em> i przyznajemy prawa do uruchomienia (<em>chmod aog+x cherokee<\/em>).<\/p>\n<p>Teraz pozosta\u0142o utworzy\u0107 symlinka do kt\u00f3rego\u015b poziomu uruchomieniowego (w Ubuntu: <em>update-rc.d cherokee defaults 90 2<\/em>).<\/p>\n<h3>Podsumowanie<\/h3>\n<p>Cherokee jest naprawd\u0119 ciekawym demonem, wartym uwagi ka\u017cdego admina. Tak jak Apache, posiada mo\u017cliwo\u015b\u0107 rozbudowy poprzez modu\u0142y, <a href=\"http:\/\/www.cherokee-project.com\/doc\/Redirections.html\">przepisywanie URL-i (ReWrite)<\/a>. Niestety, tak samo jak Nginx, nie posiada obs\u0142ugi plik\u00f3w <em>.htaccess<\/em>.<\/p>\n<p>Pomimo to, uwa\u017cam Cherokee za bardzo dobry demon. ;]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nie, nie b\u0119d\u0119 pisa\u0142 o hrabstwach, ani o plemieniu Indian (chocia\u017c Apache &#8211; Cherokee nawet etymologicznie s\u0105 ze sob\u0105 powi\u0105zane ;)). Mowa b\u0119dzie o alternatywnym dla Apache&#8217;a demonie http &#8211; Cherokee Web Server. A trafi\u0142em na\u0144 zupe\u0142nie przez przypadek&#8230; Co ciekawe, te\u017c sprawnie chodzi na &#8222;biednych&#8221; maszynach (p\u00f3ki co, trzyma si\u0119 :)).<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[31,37,32,134],"_links":{"self":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts\/125"}],"collection":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":0,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"wp:attachment":[{"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eriz.pcinside.pl\/weblog\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}