SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files
                            JAPACH       
                          uzivatelska dokumentace 

                        Jirka Kosina <jikos@jikos.cz>
  1. Co je JAPACH

JAPACH je velice jednoduchy www server, ktery v soucasne dobe podporuje pouze nektere casti protokolu HTTP 1.1, ktery je standardizovan RFC 2616 (http://rfc.fh-koeln.de/rfc/html/rfc2616.html). Aktualne muze poslouzit jako www server pro ucely vpodstate pouheho "servirovani" statickych www stranek a jednoduchych CGI skriptu.

2. Jak zacit

2.1 Stazeni, kompilace, instalace

Posledni verze tohoto WWW serveru je mozne stahnout na strankach http://www.jikos.cz/jikos/japach/ - ve formatu .tar.gz, pripadne RPM balicek. Instalaci z RPM balicku neni nutne popisovat ;)

Po stazeni zdrojovych kodu:

tar -xzf<jmeno_souboru>

provede rozbaleni archivu do aktualniho adresare, a trojice prikazu ./configure
make

zkompiluje program (vysledny binarni soubor se jmenuje japach, je v adresari src, po uspesne kompilaci).

Pripadne muze nasledovat prikaz
make install

ktery nainstaluje program do /usr/local/bin, do /etc/japach.conf konfiguracni soubor.

2.2 Konfigurace

2.2.1 Umisteni konfiguracniho souboru

Pro spravny beh programu je nutne mit konfiguracni soubor s nadefinovanymi alespon par nutnymi hodnotami.
Pokud uzivatel spusti program bez parametru, je hledan konfiguracni soubor "japach.conf" v aktualnim adresari. Pokud takovy soubor neni nalezen, program ohlasi chybu a nerozebehne se. V takovem pripade je treba specifikovat na prikazovem radku pri spousteni parametrem -c kde se konfiguracni soubor nachazi. Napriklad je-li soubor umisten v /etc/japach.conf, je nutne program vyvolat timto zpusobem:
$ ./japach -c /etc/japach.conf

2.2.2 Format konfiguracniho souboru

V konfiguracnim souboru jsou plozky definovany typicky ve formatu <klic> <hodnota>, kde <klic> je vnitrni konfiguracni polozka programu (k jednotlivym polozkam v kapitole 2.2.3). Komentare jsou oznaceny na zacatku radku znakem "#".

2.2.3 Konfiguracni polozky

V konfiguracnim souboru je mozne nastavovat nasledujici hodnoty:

  • port <cislo portu> specifikuje, na jakem portu ma program poslouchat a cekat na prichozi pozadavky. Standardni hodnota pro WWW servery je "80", a neni-li tato polozka uvedena, je take tato hodnota defaultne pouzita. Nezapomente, ze k tomu, aby program poslouchal na privilegovanem portu (tzn. portu, jehoz cislo < 1024) je treba spusteni s rootovskymi pravy.
  • documentroot <cesta> specifikuje, kde se nachazi dokumenty serveru, ktere budou na vyzadani posilany klientum. Provozujete-li napriklad server www.foo.cz, a chcete, aby klient po zadani adresy http://www.foo.cz ve svem browseru dostal dokument /var/www/html/index.html, je treba nastavit hodnotu polozky documentroot na /var/www/html.
  • uid <cislo>, gid <cislo> obecne neni dobry napad nechavat programy zbytecne bezet pod uzivateli s rozsahlymi privilegii, neni-li to vylozene nutne. Tyto dve hodnoty dovoluji definovat, s jakymi pravy, resp. s pravy jakeho uzivatele a jake skupiny ma server bezet. Cisla skupin a cisla uzivatelu na Vasem systemu zjistite v /etc/passwd, resp. v /etc/group
  • masterlog <cesta k souboru> plne jmeno vcetne cesty, kde bude vytvoren v pripade jeho neexistence LOG soubor, a do ktereho budou v dobe behu serveru zaznamenavany dulezite udalosti o behu a o provozu serveru.
  • maxchilds <pocet> umoznuje nastavit, kolik maximalne potomku muze najednou bezet, aby nedoslo k zahlceni systemu. Hlavni proces se snazi si po celou dobu udrzovat pocet aktualne bezicich potomku, a v pripade, ze je v jednu chvili vice pozadavku, nez je nastaveno touto direktivou, hlavni proces pocka s vytvarenim potomku do te doby, dokud nektere dalsi procesy neskonci. Doporucuji nastavit na nejakou vyssi hodnotu, zatim neni prilis otestovano na ruzne race conditions, apod.
  • type <pripona> <typ> touto direktivou se prirazuji takzvane Content-typy souborum s jednotlivymi priponami. Tyto polozky jsou dulezite pro spravnou interpretaci zasilanych dat na strane klienta - napriklad pri posilani obrazku formatu JPEG je nutne, aby klient vedel, ze ta data, ktera k nemu jdou jsou obrazek JPEG, a umel ho spravne zobrazit. Stadardizovane content-typy jsou popsane taktez v RFC 2616. Napriklad pro zajisteni spravne interpretace obrazku JPEG na strane klienta je dobre definovat

    type jpg image/jpg kde jpg znamena priponu souboru, a image/jpg je standardizovane oznaceni pro obrazek formatu JPEG.

  • cage <cesta> urcuje "klec", ve ktere se musi nachazet vsechny dokumenty, ktere smeji byt zaslany klientovi. Jde o zacatky absolutnich cest souboru na Vasem lokalnim filesystemu. Pokud se klientu nejakym zpusobem podari zazadat o soubor, ktery lezi mimo "klec" (napriklad nekolikanasobnym pouzitim sekvence /../ v URL), je vracena chyba 403 (permission denied). Je vhodne si jako klec definovat minimalne stejnou cestu, jako je v documentroot.
    • symlink <mod> urcuje zpusob jakym ma server zachazet se symlinky - pokud zjisti, ze pozadovany soubor je symbolicky link, zkontroluje hodnotu tohoto nastaveni. V polozce <mod> se muze nachazet
      • follow_symlinks - pri tomto nastaveni se "prejde" po symlinku ke skutecnemu souboru, a ten, pokud je v "kleci" (viz cage) se zpracuje.
      • do_not_follow_symlinks (nebo cokoliv jineho ;) ) - jakykoliv pokus
        • precteni symlinku ma za nasledek chybu HTTP 403 (forbidden).
    • servername <jmeno>

      urcuje jmeno serveru. V pripade, ze neni specifikovan host, je toto pouzito v ruznych hlavickach, apod. Je vhodne, aby slo o jmeno, ktere ukazuje na IP adresu, na ktere server skutecne bezi.

    • virtualhost <jmeno> <documentroot> <log> definuje virtualhosty - jmeno je jmeno serveru (aby bylo ucinne, je vhodne, aby prislusne jmeno melo existujici DNS zaznam), documentroot urcuje cestu, ve ktere se nachazi korenovy adresar prislusneho virtualhostu (je nutne nezapomenout definovat tento adresar take v polozce cage), a log je jmeno souboru, ve kterem se ma udrzovat log k tomuto virtualnimu serveru
    • userdir <jmeno_adresare> jmeno adresare, urcujici, kde se maji v domovskych adresarich uzivatelu hledat html stranky, pristupne pod adresou http://server/~jmeno_uzivatele.
    • cgidir <jmeno_adresare> specifikuje adresar, ve kterych je dovoleno spoustet CGI skripty


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.