eRIZ’s weblog

PHP, webdesign, Linux, Windows i inne, bo nie samym chlebem człowiek żyje
Serdecznie zapraszam do udziału w ANKIECIE

Alternatywa dla Apache’a - Cherokee

Nie, nie będę pisał o hrabstwach, ani o plemieniu Indian (chociaż Apache - Cherokee nawet etymologicznie są ze sobą powiązane ;)).

Mowa będzie o alternatywnym dla Apache’a demonie http - Cherokee Web Server. A trafiłem nań zupełnie przez przypadek…

Co ciekawe, też sprawnie chodzi na “biednych” maszynach (póki co, trzyma się :)).

Ostatnio pisałem o Nginksie. Więc po co znowu coś innego? Ano, zauważyłem jakiś dziwny feler w Nginksie, którego nie byłem w stanie zmusić do działania z PHP 5.2.3 (nie komunikował się z procesem FastCGI). Nie wiem, jak jest z 5.2.4, ale wówczas potrzebowałem jakiegokolwiek demona, który byłby dużo lżejszy od Apache’a.

Cherokee jest chyba mało znanym demonem, który oferuje jednak naprawdę niezłe możliwości, m. in:

  • obsługa FastCGI z wbudowanym zarządzaniem procesami-dziećmi
  • obsługa SSL, TLS
  • posiada możliwość generowania logów kompatybilnych z formatem Apache’a (przydatne np. przy korzystaniu z Webalizera)
  • obsługa wirtualnych hostów

Postawiłem go na PC ubogim w RAM (128MB + MySQL) i muszę przyznać, że jestem bardzo pozytywnie zaskoczony. Niestety, nie robiłem z nim prób przeciążeniowych, ale dla porównania przydatne mogą być benchmarki na stronie projektu.

Jego konfiguracja jest IMHO dużo prostsza niż w przypadku nginksa. Co ważne, Cherokee sam startuje procesy FastCGI, co uwalnia nas od konieczności pisania skryptów odpalających interpretery.

Instalacja i konfiguracja

…będzie łatwa dla każdego, kto ma pojęcie, jak kompilować pakiety w Linuksie. Oczywiście, można jeszcze posłużyć się binarkami.

Kompilacja

Jak podaje oficjalna dokumentacja, wystarczą standardowe pakiety służące do “wytwarzania” - automake, autoconf i jakiś kompilator C. Ściągamy najnowsze archiwum i tar -xzf cherokee-x.x.x.tar.gz i logujemy się jako root.

Jeśli nam zależy na tym, aby jak najszybciej postawić serwer, bez zbędnego zagłębiania się w prefiksy, itp, to wystarczą trzy magiczne komendy: ./configure && make && make install. Tyle z kompilacji. ;]

Opcje do ./configure są raczej typowe (poza kilkoma charakterystycznymi, o nich po wywołaniu komendy ./configure –help.

Po pomyślnej kompilacji (no, na 95% ;]), przechodzimy do kolejnego etapu.

Podstawowa konfiguracja

W zależności od tego, z jakim prefiksem skompilowaliśmy serwer, szukamy katalogu z konfiguracją. W przypadku, gdy skorzystaliśmy z opcji domyślnych, będzie to /etc/cherokee. Struktura podkatalogów i składnia plików jest bardzo podobna do tej znanej z Apache’a, więc fani Indian poczują się jak u swoich. ;]

W rzeczywistości, potrzebujemy tylko podłączyć obsługę PHP pod działający serwer. Wszystko sprowadza się do dopisania kilku linijek do pliku opisującym konkretny serwis (np. katalog cherokee/sites-enabled/default) bądź dla wszystkich (wtedy dopisz to do katalog cherokee/cherokee.conf):

  1. Extension php, php3, php4 {
  2.         Handler fcgi{
  3.                 Server localhost:8282{
  4.                         Env PHP_FCGI_MAX_REQUESTS "100"
  5.                         Env PHP_FCGI_CHILDREN "5"
  6.                         Interpreter "/usr/local/bin/php-cgi -b 8282"
  7.                 }
  8.         }
  9. }

Przydałoby skompilować PHP z obsługą FastCGI (parametr –enable-fastcgi).

Teraz małe omówienie. Pierwsza linijka, otwierająca blok, definiuje rozszerzenia, dla których serwer ma wykorzystywać zdefiniowany proces FastCGI. Liczba 8282 wskazuje, przez który port mają komunikować się z sobą PHP i Cherokee. Wpisujemy jakiś nieużywany. ;]

Zmienne PHP_FCGI_* już opisałem przy okazji omawiania instalowania Nginksa.

Aby demon startował przy bootowaniu, kopiujemy plik cherokee z katalogu contrib rozpakowanych źródeł do /etc/init.d i przyznajemy prawa do uruchomienia (chmod aog+x cherokee).

Teraz pozostało utworzyć symlinka do któregoś poziomu uruchomieniowego (w Ubuntu: update-rc.d cherokee defaults 90 2).

Podsumowanie

Cherokee jest naprawdę ciekawym demonem, wartym uwagi każdego admina. Tak jak Apache, posiada możliwość rozbudowy poprzez moduły, przepisywanie URL-i (ReWrite). Niestety, tak samo jak Nginx, nie posiada obsługi plików .htaccess.

Pomimo to, uważam Cherokee za bardzo dobry demon. ;]

3 komentarzy

dopisz swój :: trackback :: RSS z komentarzami

RSS z komentarzami :: trackback

Skomentuj

Możesz używać znaczników XHTML. Dozwolone są następujące tagi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Wszystkie komentarze przechodzą przez moderację oraz filtry antyspamowe. Nie zostanie opublikowany komentarz, jeśli:

  • Jego treść obraża kogokolwiek.
  • W treści znajdują się wulgaryzmy i słownictwo ogólnie uznane za nieprzyzwoite.
  • Mam wątpliwości co do autora wpisu (Wszelkie anonimy są kasowane - niezależnie od zawartości - wpisz prawdziwy e-mail. Jeśli usunąłem, Twoim zdaniem, komentarz niesłusznie - daj znać). Zdarza się, iż sprawdzam kim jest komentujący.
  • Zawiera jakąkolwiek formę reklamy.

Szufladka