IDZ DO
IDZ DO
PRZYKŁADOWY ROZDZIAŁ
PRZYKŁADOWY ROZDZIAŁ
Apache. Przewodnik
SPIS TRE CI
SPIS TRE CI
encyklopedyczny.
KATALOG KSIĄŻEK
KATALOG KSIĄŻEK
Wydanie III
KATALOG ONLINE Autorzy: Ben Laurie, Peter Laurie
KATALOG ONLINE
Tłumaczenie: Tomasz Sadowski
ISBN: 83-7361-124-X
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
Format: B5, stron: 704
Przykłady na ftp: 1249 kB
TWÓJ KOSZYK
TWÓJ KOSZYK
Udostępniany nieodpłatnie serwer WWW Apache obsługuje dzi ponad połowę wszystkich
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA witryn w internecie i systematycznie zwiększa swój udział w rynku.
Książka Apache. Przewodnik encyklopedyczny. Wydanie III autorstwa dwóch kluczowych
członków Zespołu Apache, opisuje sposób pobrania, instalacji i zabezpieczania tego
serwera oraz omawia popularne rozszerzenia, umożliwiające konstruowanie na jego
CENNIK I INFORMACJE
CENNIK I INFORMACJE
podstawie aplikacji WWW.
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE Serwer Apache osiągnął rangę kompletnego systemu i skutecznie konkuruje z wszystkimi
O NOWO CIACH
O NOWO CIACH
pozostałymi serwerami HTTP niezależnie od tego, czy będziemy porównywać je pod kątem
oferowanych możliwo ci, efektywno ci, czy też szybko ć działania. Apache jest przy tym
ZAMÓW CENNIK
ZAMÓW CENNIK
dostępny dla wielu platform systemowych, w tym dla różnego rodzaju systemów Unix
i systemów z rodziny Windows.
Prezentowana Czytelnikom trzecia już edycja książki opisuje najpopularniejsze wersje 1.3
CZYTELNIA
CZYTELNIA
i 2.0 serwera Apache dla systemów Windows i Unix kładąc szczególny nacisk na:
" pobranie i kompilację oprogramowania serwera,
FRAGMENTY KSIĄŻEK ONLINE
FRAGMENTY KSIĄŻEK ONLINE
" konfigurację i uruchamianie serwera w systemach Windows i Unix (obejmując też
zagadnienia związane ze strukturami katalogów serwera i serwerami wirtualnymi),
" omówienie interfejsu programowego serwera (w wersjach 1.3 i 2.0),
" szczegółowy opis zagadnień związanych z zabezpieczeniem serwera Apache
i wdrożeniem go w rozbudowanych witrynach,
" prezentacje pełnej listy dyrektyw konfiguracyjnych,
" informacje na temat instalacji i testowania skryptów języka Perl uruchamianych
w trybie CGI oraz instalacji i korzystania z rozszerzeń, takich jak mod_perl, PHP,
JServ, Tomcat i Cocoon.
Dzięki książce Apache. Przewodnik encyklopedyczny administratorzy witryn WWW
nie mający dotychczas do czynienia z serwerem Apache mogą zapoznawać się z jego
Wydawnictwo Helion
działaniem stopniowo, analizując i wdrażając przykładowe witryny prezentujące kolejne
ul. Chopina 6
etapy konfiguracji serwera. Do wiadczeni administratorzy i programi ci (niezależnie od tego,
44-100 Gliwice
czy ich rodowiskiem roboczym jest system Windows, czy Unix) docenią natomiast te
tel. (32)230-98-63
fragmenty książki, które składają się na kompletną i zwięzłą dokumentację całego serwera.
e-mail: helion@helion.pl
Spis treści
Przedmwa............................................................................................................9
Rozdział 1. Wprwadzenie...............................................................................19
Co robi serwer WWW? ........................................................................................................... 19
Jak działa Apache? .................................................................................................................. 23
Apache i sieci........................................................................................................................... 24
Jak działa klient?...................................................................................................................... 30
Co dzieje sią po stronie serwera? ............................................................................................ 32
Planowanie instalacji serwera Apache .................................................................................... 33
Windows? ................................................................................................................................ 36
Która wersja Apache?.............................................................................................................. 36
Instalowanie serwera Apache .................................................................................................. 37
Kompilacja serwera Apache 1.3.x w systemie Unix............................................................... 42
Nowe funkcje Apache 2........................................................................................................... 53
Instalacja Apache 2.0 w systemie Unix................................................................................... 56
Apache w systemach Windows ............................................................................................... 57
Rozdział 2. Knfiguracja serwera pache dsłna pierwsza ..............63
Co to właściwie jest witryna WWW?...................................................................................... 63
Pierwsza witryna site.toddle ............................................................................................... 66
Uruchomienie serwera w Uniksie............................................................................................ 67
Uruchomienie serwera w Windows......................................................................................... 81
Dyrektywy ............................................................................................................................... 85
Obiekty współużytkowane....................................................................................................... 87
4 Spis treści
Rozdział 3. Wielkie twarcie ...........................................................................91
Wiącej i lepiej, czyli site.simple.............................................................................................. 91
Zaczynamy na poważnie.......................................................................................................... 95
Dyrektywy blokowe................................................................................................................. 98
Pozostałe dyrektywy.............................................................................................................. 102
Nagłówki odpowiedzi HTTP................................................................................................. 112
Restart serwera....................................................................................................................... 117
Pliki .htaccess ........................................................................................................................ 118
Metapliki w standardzie CERN............................................................................................. 118
Określanie terminu ważności dokumentu.............................................................................. 119
Rozdział 4. Serwery wirtualne.......................................................................123
Implementacja dwóch witryn ................................................................................................ 123
Implementacja serwerów wirtualnych................................................................................... 123
Dwie kopie serwera Apache .................................................................................................. 128
Serwery wirtualne konfigurowane dynamicznie ................................................................... 132
Rozdział 5. Uwierzytelnianie.........................................................................137
Protokół uwierzytelniania...................................................................................................... 137
Dyrektywy sterujące uwierzytelnianiem ............................................................................... 139
Hasła w systemie Unix .......................................................................................................... 144
Hasła w systemie Windows................................................................................................... 146
Hasła w sieci WWW.............................................................................................................. 146
Punkt widzenia klienta........................................................................................................... 146
Skrypty CGI........................................................................................................................... 147
Co by tu jeszcze& ................................................................................................................. 147
Dyrektywy order, allow i deny .............................................................................................. 147
Pliki DBM w Uniksie ............................................................................................................ 151
Uwierzytelnianie oparte na skrótach wiadomości..................................................................... 155
Dostąp anonimowy ................................................................................................................ 159
Kilka ćwiczeń ........................................................................................................................ 162
Automatyczne przekazywanie danych o użytkowniku ......................................................... 163
Jak korzystać z plików .htaccess?.......................................................................................... 164
Priorytety dyrektyw lokalnych .............................................................................................. 166
Spis treści 5
Rozdział 6. Łpis i negcjacja zawartści dkumentów...........................169
Typy MIME ........................................................................................................................... 169
Uzgadnianie zawartości ......................................................................................................... 177
Uzgadnianie jązyka................................................................................................................ 179
Mapy typów ........................................................................................................................... 183
Przeglądarki a protokół HTTP/1.1......................................................................................... 185
Mechanizm filtrów................................................................................................................. 186
Rozdział 7. Indekswanie katalgów ..........................................................191
Lepszy indeks ale jak? ...................................................................................................... 191
Rozszerzenia indeksów tworzonych przez użytkownika ...................................................... 202
Mapy graficzne ...................................................................................................................... 205
Dyrektywy związane z mapami graficznymi ........................................................................ 210
Rozdział 8. Przeadreswywanie....................................................................213
Dyrektywa Alias .................................................................................................................... 214
Translacja adresów URL ....................................................................................................... 222
Korygowanie adresów ........................................................................................................... 230
Rozdział 9. pache jak serwer pśredniczący..........................................233
Bezpieczeństwo ..................................................................................................................... 233
Dyrektywy sterujące serwerem pośredniczącym .................................................................. 234
Czyżby błąd? ......................................................................................................................... 239
Wydajność serwera................................................................................................................ 239
Nasza konfiguracja ................................................................................................................ 242
Rozdział 10. C jest grane? ............................................................................249
Rejestrowanie za pośrednictwem skryptu i bazy danych ...................................................... 249
Dzienniki serwera Apache..................................................................................................... 250
Rejestrowanie konfiguracji.................................................................................................... 260
Status serwera ........................................................................................................................ 263
Rozdział 11. Bezpieczeństw infrmacji......................................................267
Użytkownicy wewnątrzni i zewnątrzni ................................................................................. 269
Podpisy cyfrowe i pieniądz elektroniczny............................................................................. 271
Certyfikaty cyfrowe ............................................................................................................... 276
Zapory sieciowe..................................................................................................................... 278
6 Spis treści
Zagadnienia prawne............................................................................................................... 282
Secure Sockets Layer (SSL) .................................................................................................. 283
Podstawowe mechanizmy bezpieczeństwa w serwerze Apache ........................................... 283
Dyrektywy sterujące SSL ...................................................................................................... 301
Zestawy szyfrów.................................................................................................................... 321
Bezpieczeństwo w praktyce................................................................................................... 328
Przyszłość zabezpieczeń........................................................................................................ 333
Rozdział 12. Duża witryna WWW ...............................................................335
Konfiguracja komputera ........................................................................................................ 335
Bezpieczeństwo serwera........................................................................................................ 335
Zarządzanie dużą witryną ...................................................................................................... 340
Oprogramowanie dodatkowe................................................................................................. 343
Skalowalność ......................................................................................................................... 350
Równoważenie obciążenia..................................................................................................... 352
Rozdział 13. Piszemy aplikacje .....................................................................367
Witryny WWW jako aplikacje .............................................................................................. 367
Definiowanie logiki aplikacji ................................................................................................ 372
Jązyki XML i XSLT w aplikacjach WWW........................................................................... 377
Rozdział 14. Plecenia wstawiane SSI ........................................................379
Informacja o rozmiarze pliku................................................................................................. 382
Informacja o czasie modyfikacji pliku .................................................................................. 383
Wstawianie treści plików....................................................................................................... 384
Wykonywanie skryptów CGI ................................................................................................ 384
Zmienne w poleceniach SSI .................................................................................................. 385
Filtry SSI w Apache 2.0......................................................................................................... 385
Rozdział 15. PHP..............................................................................................389
Instalacja jązyka PHP ............................................................................................................ 390
Site.php .................................................................................................................................. 391
Rozdział 16. Skrypty CGI i język Perl.........................................................397
Świat CGI .............................................................................................................................. 397
Udostąpnienie skryptu serwerowi Apache ............................................................................ 399
Ustawianie wartości zmiennych środowiskowych................................................................ 417
Spis treści 7
Ciasteczka .............................................................................................................................. 418
Dyrektywy serwera Apache związane z obsługą skryptów .................................................. 430
suEXEC w Uniksie ................................................................................................................ 433
Procedury obsługi .................................................................................................................. 440
Akcje...................................................................................................................................... 442
Przeglądarki ........................................................................................................................... 444
Rozdział 17. Mduł md_perl ........................................................................447
Moduł mod_perl jak to działa?......................................................................................... 449
Dokumentacja modułu mod_perl .......................................................................................... 450
Instalacja modułu mod_perl wariant prostszy.................................................................... 450
Dostosowanie skryptów do wymagań modułu mod_perl ..................................................... 454
Zmienne globalne .................................................................................................................. 454
Dyrektywa strict..................................................................................................................... 457
Odświeżanie pamiąci serwera................................................................................................ 457
Otwieranie i zamykanie plików............................................................................................. 458
Konfiguracja serwera dla modułu mod_perl ......................................................................... 458
Rozdział 18. Kntenery apletów: JServ i Tmcat ......................................463
Moduł mod_jserv................................................................................................................... 464
Tomcat ................................................................................................................................... 476
Tomcat i Apache.................................................................................................................... 482
Rozdział 19. XML i serwlet Ccn.............................................................487
Jązyk XML ............................................................................................................................ 487
Jązyk XML a Perl .................................................................................................................. 491
Cocoon................................................................................................................................... 492
Cocoon 1.8 i JServ................................................................................................................. 492
Cocoon 2.0.3 i Tomcat........................................................................................................... 496
Testowanie serwletu Cocoon................................................................................................. 497
Rozdział 20. Interfejs prgramwy serwera pache .................................501
Dokumentacja ........................................................................................................................ 502
Biblioteka APR...................................................................................................................... 502
Pule ........................................................................................................................................ 502
Globalna struktura konfiguracyjna ........................................................................................ 504
Lokalna struktura konfiguracyjna.......................................................................................... 507
8 Spis treści
Opis żądania........................................................................................................................... 510
Dostąp do danych konfiguracyjnych i opisu żądania ............................................................ 514
Zaczepy, zaczepy opcjonalne i funkcje opcjonalne .................................................................. 514
Filtry, kubełki i zespoły ......................................................................................................... 524
Moduły................................................................................................................................... 536
Rozdział 21. Piszemy własny mduł serwera pache..............................539
Wprowadzenie ....................................................................................................................... 540
Kody stanu ............................................................................................................................. 541
Struktura module ................................................................................................................... 543
Przykład od A do Z................................................................................................................ 583
Wskazówki ogólne................................................................................................................. 602
Przystosowywanie kodu do wersji 2.0 .................................................................................. 602
Dodatek Interfejs PI 1.x..........................................................................607
Pule ........................................................................................................................................ 607
Globalna struktura konfiguracyjna ........................................................................................ 609
Lokalna struktura konfiguracyjna.......................................................................................... 610
Opis żądania........................................................................................................................... 610
Dostąp do danych konfiguracyjnych i opisu żądania ............................................................ 613
Funkcje API ........................................................................................................................... 613
Skrwidz..........................................................................................................669
Wielkie twarcie
Mając już dzialający w oparciu o podstawową konfigurację serwer, można pokusić się
o glębszą analizę jego możliwości, z większą liczbą szczególów. Na szczęście różnice
pomiędzy wersjami serwera Apache dla systemów uniksowych i systemów Windows
kończą się po przebrnięciu przez początkową konfigurację; pózniej można się już skupić
na tworzeniu dzialającej strony WWW.
Więcej i lepiej, czyli site.simple
W chwili obecnej możemy już przystąpić do konstruowania przykladowych witryn
WWW, których zawartość można znalezć również na zalączonej do książki plycie CD.
Aby zachować jakiś związek z realnym światem, oprzemy nasze eksperymenty na przy-
kladzie fikcyjnej firmy Butterthlies, nc., a dokladniej jej polskiej filii Butterthlies Pol-
ska, sp. z o.o. Nasza firma zajmuje się sprzedażą artystycznych pocztówek i ma zamiar
zaistnieć w nternecie. W związku z powyższym musimy przydzielić jej jakieś adresy P;
jako że wszystko to dzieje się na niby i ogranicza się do eksperymentu, adresy te będą
zawieraly się w obrębie naszej sieci lokalnej. Dzięki temu komputery biorące udzial
w doświadczeniu nie będą musialy lączyć się z nternetem. Techniczna strona przydzie-
lenia adresów sprowadza się do zmodyfikowania zawartości plików \windows\hosts (na
komputerze windowsowym pelniącym rolę klienta) i /etc/hosts (na maszynie unikso-
wej będącej serwerem), tak aby zawieraly następujące wpisy:
127.0.0.1 localhost
192.168.123.2 www.butterthlies.com.pl
192.168.123.2 sales.butterthlies.com.pl
192.168.123.3 sales-IP.butterthlies.com.pl
192.168.124.1 www.gdzies-tam.com
92 Rzdział 3. Wielkie twarcie
Pierwszy wpis (localhost) jest obowiązkowym elementem pliku i nie należy go usuwać;
nie powinieneś również kierować do niego żadnych żądań HTTP, gdyż wyniki mogą
być dziwne.
W kwestii pozostalych wpisów najlepiej skonsultuj się z administratorem swojej sieci lo-
kalnej.
Witryna site.simple jest lekko zmodyfikowanym wariantem site.toddle. Skrypt go powi-
nien dzialać bez problemów. Przypomnijmy sobie procedury uruchamiania i zatrzymy-
wania serwera (w różnych systemach operacyjnych):
W Uniksie:
test -d logs || mkdir logs
httpd -d 'pwd' -f 'pwd'/conf/httpd.conf
Zatrzymanie polega na wykonaniu polecenia kill z odpowiednim identyfikatorem.
W Windows:
Otwórz okno DOS i w wierszu poleceń wpisz:
> cd "\program files\apache group\apache"
> apache -k start
Apache/1.3.26 (Win32) running ...
Aby zatrzymać serwer, otwórz drugie okno DOS i wpisz:
> apache -k stop
> cd logs
i ewentualnie:
> edit error.log
Procedury te będą obowiązywać dla wszystkich witryn demonstrowanych w ramach
przykladów do książki, dlatego nie będziemy już przytaczać procedur sterujących uru-
chamianiem serwera.
Również inne różnice w opisywanych dalej konfiguracjach serwera Apache dla Uniksa
i Windows powinny być minimalne. O ile nie będzie to wyraznie zaznaczone, należy
zakladać, że wszystkie opisy stosują się w tej samej formie do obu wersji.
Nie od rzeczy byloby rejestrować w jakimś pliku poczynania naszego serwera. Podczas
pracy nad pierwszym wydaniem książki mieliśmy ulatwione zadanie, gdyż używana
przez nas wersja Apache automatycznie tworzyla w katalogu & /site.simple/logs plik
dziennika o nazwie access_log. Z sobie tylko wiadomych przyczyn projektanci serwera
Apache postanowili jednak zerwać z przeszlością i kolejne wersje wymagają już jawnego
określenia polożenia dziennika w pliku konfiguracji serwera. Sluży do tego dyrektywa
TransferLog.
Więcej i lepiej, czyli site.simple 93
W swojej obecnej postaci plik httpd.conf powinien wyglądać następująco:
User webuser
Group webgroup
ServerName localhost
DocumentRoot /usr/www/APACHE3/site.simple/htdocs
TransferLog logs/access_log
Katalog & /site.simple/htdocs zawiera, jak poprzednio, tylko jeden plik o nazwie 1.txt:
Witamy w witrynie site.simple!
W chwili obecnej możesz już uruchomić serwer poleceniem go, przesiąść się do kom-
putera-klienta i za pomocą przeglądarki WWW zajrzeć pod adres http://www.butterthlies.
com.pl. Powinieneś ujrzeć coś takiego:
Index of /
* Parent Directory
* 1.txt
Kliknięcie lącza do pliku 1.txt wyświetli zawarty w tym ostatnim komunikat.
Wszystko ladnie, ale jedna rzecz jest tu cokolwiek zagadkowa: ten sam wynik uzysku-
jemy, lącząc się z adresem http://sales.butterthlies.com.pl. Jakim cudem w ogóle uzyskujemy
jakąś odpowiedz, skoro ani jeden, ani drugi adres (ani też odpowiadające im numery P)
nie zostal wpisany do pliku konfiguracji zawartego w katalogu site.simple?
Odpowiedz jest prosta. Konfigurując komputer pelniący rolę serwera, nakazaliśmy jego
interfejsowi sieciowemu reagować na komunikaty skierowane pod adresy:
192.168.123.2
192.168.123.3
Serwer Apache przez domniemanie prowadzi nasluch na wszystkich adresach zdefi-
niowanych dla danego systemu, a dla wybranych również udziela odpowiedzi. Jeśli
w systemie zdefiniowano serwery wirtualne (w naszym przypadku nie zdefiniowano),
Apache przegląda ich listę w poszukiwaniu adresu P, który odpowiada adresowi, pod
którym odebrano nadeslane żądanie obslugi. Ustaliwszy, o który serwer wirtualny cho-
dzi, Apache używa odpowiadającego mu bloku w pliku konfiguracyjnym, a jeśli blok
taki nie istnieje glównego bloku konfiguracji serwera. Do zagadnienia tego wrócimy
w dalszej części rozdzialu, omawiając dyrektywy BindAddress, Listen i
alHost>, dające administratorowi skuteczną kontrolę nad serwerami wirtualnymi.
Należy zauważyć, że prezentowany tu sposób pracy, polegający na częstej zmianie wy-
korzystywanych konfiguracji, jest w stanie skutecznie zdezorientować przeglądarkę, co
stwierdziliśmy zarówno w przypadku programu Netscape, jak i nternet Explorera.
W przypadku przeglądarki Netscape przekonanie się o poprawnym dzialaniu serwera
wymagalo na ogól odświeżania przeglądanych plików przez klikanie przycisku Reload
przy wciśniętym klawiszu Ctrl. W skrajnych przypadkach konieczne bylo wylączenie
buforowania stron w pamięci podręcznej poprzez wydanie poleceń Edit-Preferences-
Advanced-Cache, wyzerowanie rozmiarów bufora dyskowego (Disk Cache) i pamięciowego
(Memory Cache) i wymuszenie każdorazowego badania aktualności dokumentu (zazna-
94 Rzdział 3. Wielkie twarcie
czenie przycisku opcji Every Time). W przypadku nternet Explorera konieczne okazalo
się ustawienie opcji sterującej częstotliwością porównywania zawartości bufora z treścią
odpowiedzi na Przy każdej wizycie na tej stronie (w oknie ustawień Tymczasowych plików
internetowych) w ramach okna Opcje internetowe. Jeśli nie wykonasz tych zabiegów, mu-
sisz liczyć się z możliwością wyświetlenia przez przeglądarkę mieszanki kilku ostatnio
odebranych z serwera stron. Dzieje się tak oczywiście dlatego, iż w naszych doświad-
czeniach bez przerwy żonglujemy różnymi wersjami witryn, katalogów i plików, czego
trzezwo myślący administrator ani użytkownik na ogól nie robi. Jeśli jakiś plik zostanie
zastąpiony starszą wersją, przeglądarka dochodzi do skądinąd slusznego wniosku, że
zawartość pamięci podręcznej jest bardziej aktualna i oczywiście ją wyświetla.
Wróćmy jednak do rzeczy. Zakończ pracę programu Apache, naciskając na klawiaturze
serwera klawisze Ctrl+C (lub inną kombinację slużącą do przerywania dzialania pro-
gramu) i obejrzyj zawartość pliku & /logs/access_log. Powinien on zawierać coś w rodzaju
192.168.123.1 - - [] "GET / HTTP/1.0" 200 256
Liczba 200 jest kodem odpowiedzi zwracanym przez serwer (ang. HTTP response code)
i oznacza, że operacja się udala, zaś 256 liczbą przeslanych podczas transakcji bajtów.
Plik & /error_log powinien być pusty, ponieważ cala operacja przebiegla bez blędów.
Warto oczywiście zaglądać tam od czasu do czasu, chociaż skojarzenie daty i czasu wpisu
z blędem, który wystąpil jakiś czas temu, bywa klopotliwe i nieraz trzeba w tym celu
mocno wysilić pamięć.
Życie niestety bywa mniej przyjemne i czasami coś się psuje. Dla przykladu, klient może
zażądać od serwera nieistniejącego dokumentu. Sytuację taką można obslużyć za pomo-
cą dyrektywy ErrorDocument.
ErrorDocument
Dyrektywa ErrorDocument pozwala na określenie czynności podejmowanej w sytu-
acji, kiedy klient odwoluje się do nieistniejącego dokumentu.
ErrorDocument kod-błędu nazwa-dokumentu
Zastosowanie: konfiguracja główna, serwery wirtualne, katalogi, pliki .htaccess
W przypadku wystąpienia blędu, Apache może zrobić jedną z czterech rzeczy:
1. Przekazać klientowi elementarny komunikat o blędzie, o sztywnej, niezmiennej treści.
2. Przekazać klientowi komunikat zdefiniowany przez administratora.
3. Przeadresować żądanie klienta do lokalnego adresu URL przeznaczonego do obslugi
blędu.
4. Przeadresować żądanie klienta do zewnętrznego adresu URL.
Domyślnie realizowana jest czynność pierwsza, natomiast trzy pozostale opcje mogą być
wymuszone za pomocą dyrektywy ErrorDocument, której argumentami są kod odpo-
wiedzi serwera i komunikat o blędzie lub adres URL. Komunikat różni się od adresu
Zaczynamy na pważnie 95
tym, iż jest poprzedzony znakiem cudzyslowu ("), który nie jest oczywiście przesylany
do klienta. W niektórych przypadkach Apache dolącza do komunikatu dodatkowe in-
formacje i objaśnienia.
Używane w dyrektywie ErrorDocument adresy URL mogą być adresami lokalnymi
(rozpoczynają się wówczas znakiem ukośnika / ) lub pelnymi adresami zawierają-
cymi nazwę węzla. A oto kilka przykladów:
ErrorDocument 500 http://gdzies.tam.com/cgi-bin/test
ErrorDocument 404 /cgi-bin/zlyadres.pl
ErrorDocument 401 /rejestracja.html
ErrorDocument 403 "Nieczynne z powodu urlopu"
Zwróćmy uwagę, że użycie w dyrektywie ErrorDocument pelnego adresu URL (roz-
poczynającego się od prefiksu metody, np. http ) powoduje przeslanie do klienta pole-
cenia przeadresowania nawet wtedy, gdy dokument identyfikowany adresem znajduje
się na tym samym serwerze. Fakt ten ma kilka konsekwencji, z których najważniejszą
jest niemożność odwolania się do nielokalnego dokumentu w przypadku obslugi blędu
numer 401 (co wynika z zasady dzialania podstawowego schematu uwierzytelniania
(Basic) w protokole HTTP).
Zaczynamy na pważnie
Plik konfiguracji serwera httpd.conf znajdujący się w katalogu & /site.first ma postać:
User webuser
Group webgroup
ServerName localhost
DocumentRoot /usr/www/site.first/htdocs
TransferLog logs/access_log
W pierwszej edycji książki omawialiśmy w tym podrozdziale również dyrektywy Ac-
cessConfig i ResourceConfig. Użycie w nich jako argumentu urządzenia pustego
(/dev/null w Uniksie, NUL w Windows) pozwalalo na zablokowanie odwolań do plików
srm.conf i access.conf, co bylo niezbędne w przypadku nieobecności tych ostatnich. Po-
nieważ nowsze wersje Apache po prostu nie przejmują się brakiem wspomnianych pli-
ków, użycie obu dyrektyw jest obecnie zbędne. W przypadku ich użycia wskazywane
przez nie pliki zostaną wlączone do pliku konfiguracyjnego serwera. Od wersji 1.3.14
dyrektywy te mogą wskazywać nie pliki, a katalogi wtedy do pliku konfiguracyjnego
serwera wlączona zostanie zawartość wszystkich plików przechowywanych w tych ka-
talogach.
W Apache 2.0 dyrektywy AccessConfig i ResourceConfig zostaly zniesione, więc
ich umieszczenie w pliku spowoduje zgloszenie przez serwer komunikatu o blędzie kon-
figuracji. Zamiast nich można zastosować dyrektywy Include: Include conf/srm.
conf i Include conf/access.conf (w podanej kolejności) na końcu glównego pliku
konfiguracyjnego.
96 Rzdział 3. Wielkie twarcie
Ponadto Apache 2.0, dość konsekwentnie, wymaga zdefiniowania dyrektywy Listen.
Jej brak spowoduje przerwanie dzialania serwera i wyświetlenie komunikatu o blędzie
następującej treści:
... no listening sockets available, shutting down.
W systemach z rodziny Windows Apache ignoruje dyrektywy User i Group, w związku
z czym mogą one zostać usunięte z pliku konfiguracyjnego.
Zadaniem serwera Apache jest dostarczanie klientom dokumentów w języku HTML,
a jak do tej pory nie mial on specjalnie czego dostarczać. Spróbujmy zatem utworzyć
prostą stronę WWW zawierającą ofertę firmy Butterthlies Polska i informacje o sposobie
zakupu towaru.
Nieco teorii na temat projektowania WWW można znalezć np. w systemie pomocy
przeglądarki Netscape pod haslem Creating Net Sites . Po odbyciu elementarnego kursu
języka HTML możemy już wyprodukować surową wersję wirtualnej broszurki:
Katalog firmy Butterthlies
Witamy w firmie Butterthlies Polska
Nasza oferta na lato
Wszystkie kartki można zamawiać w paczkach po 20 sztuk, po 8 złotych za
paczkę.
Przy zamówieniach powyżej 100 sztuk udzielamy 10% rabatu.
Ceny nie zawierają podatku VAT.
Wzór 2315
Aaweczka dla zakochanych
Wzór 2316
Chiński Kurnik
Wzór 2317
Świątynia Dumania
Wzór 2318
Wanna Surrealistyczna
Zaczynamy na pważnie 97
Projekt pocztówek: Harriet@alart.demon.co.uk
Butterthlies Polska sp. z o.o. * 99-000 Helionowo