Apache 2.
Leksykon kieszonkowy
Autor: Andrew Ford
T³umaczenie: Grzegorz Werner
ISBN: 978-83-246-2179-8
Tytu³ orygina³u:
For Apache Programmers & Administrators
Format: 115
×170, stron: 224
Podrêczne Ÿród³o informacji na temat Apache!
• Jak wykorzystaæ mechanizm mod_rewrite?
• Jak kontrolowaæ dostêp do zasobów?
• Jak stosowaæ bezpieczny protokó³ SSL?
Apache jest jednym z najpopularniejszych serwerów HTTP. Jego zalety to niezawodnoœæ,
wydajnoœæ i elastycznoœæ. Mo¿na go uruchomiæ praktycznie w dowolnym systemie.
Istotny jest równie¿ fakt, ¿e Apache to rozwi¹zanie ca³kowicie bezp³atne! Pierwsza
oficjalna wersja tego serwera ukaza³a siê w 1995 roku. Oznaczono j¹ numerem 0.6.2.
Po blisko piêtnastu latach rozwi¹zanie to zyska³o ogromn¹ rzeszê u¿ytkowników.
Spo³ecznoœæ zwi¹zana z tym narzêdziem jest niezwykle chêtna do pomocy, co
niew¹tpliwie stanowi jeszcze jeden niezmiernie wa¿ny atut, przemawiaj¹cy na korzyœæ
Apache.
Niniejszy leksykon jest œwietn¹ pozycj¹ dla tych osób, które mia³y ju¿ stycznoœæ
z serwerem Apache lub chc¹ szybko opanowaæ konkretne zagadnienia zwi¹zane z jego
konfiguracj¹. Dziêki tej ksi¹¿ce poznasz wszystkie dyrektywy, które mog¹ byæ przydatne
w codziennej pracy. Dowiesz siê, jak skonfigurowaæ œrodowisko serwera, oraz poznasz
zasady odwzorowywania adresów URL. Ponadto nauczysz siê zapewniaæ odpowiedni¹
kontrolê dostêpu do poszczególnych zasobów i korzystaæ z takich mechanizmów, jak
filtry, metadane lub procedury obs³ugi. Wiele cennych informacji, zawartych w tej
porêcznej ksi¹¿ce, sprawi, ¿e codzienna praca z serwerem Apache bêdzie dla Ciebie
przyjemnoœci¹!
• Ogólne zagadnienia zwi¹zane z prac¹ i konfiguracj¹ Apache
• Konfiguracja wirtualnych hostów (VirtualHost)
• Zarz¹dzanie procesami
• Odwzorowanie adresów URL
• Przekszta³canie adresów z wykorzystaniem mod_rewrite
• Kontrola dostêpu
• Uwierzytelnianie z u¿yciem mechanizmów HTTP Basic, HTTP Digest
• Zastosowanie metadanych dokumentów
• Manipulowanie nag³ówkami HTTP
• Wykorzystanie skryptów CGI
• Zastosowanie WebDAV
• U¿ywanie filtrów
• Buforowanie treœci
• Konfiguracja i wykorzystanie bezpiecznego protoko³u SSL
• Logowanie zdarzeñ
Skonfiguruj Apache zgodnie ze swoimi potrzebami!
3
Spis treci
Przedmowa
...................................................................................7
1. Wprowadzenie
........................................................................... 10
Przegld architektoniczny
10
Jak uzyska Apache’a?
13
Uruchamianie i zatrzymywanie Apache’a
14
Pliki konfiguracyjne
17
2.
rodowisko
serwera
...................................................................28
Gówny serwer i hosty wirtualne
28
Konfiguracja sieci
32
Zarzdzanie procesami
37
Ogólne dyrektywy konfiguracyjne
42
Szkielet DBD
50
Szkielet LDAP
53
3.
Odwzorowywanie
adresów
URL
..................................................58
Wstpna konfiguracja rodowiska
58
Podstawowa translacja adresów URL
61
Aliasy i przekierowania
62
dania katalogów
65
Przeksztacanie adresów URL
z wykorzystaniem moduu mod_rewrite
66
Dokumenty z negocjacj treci
72
4
_ Spis
treci
Katalogi uytkowników
73
Poprawianie bdnie wpisanych adresów URL
74
Mapy obrazkowe
75
Masowy hosting wirtualny
78
4.
Kontrola
dostpu ....................................................................... 80
Kontrola dostpu niezwizana z kontami uytkowników
80
Uwierzytelnianie 82
Dostawcy usug uwierzytelniania
86
Autoryzacja 91
Uwierzytelnianie i autoryzacja LDAP
95
5. Metadane dokumentu .............................................................. 100
Standardowe atrybuty dokumentu
100
Automatyczne okrelanie typu
105
Wygasanie dokumentów
106
Manipulowanie nagówkami HTTP
107
Metapliki CERN
110
ledzenie uytkowników
111
Zmienne rodowiskowe
112
6.
Procedury obsugi ..................................................................... 114
Konfiguracja procedur obsugi
115
Pliki statyczne
116
Automatycznie generowane indeksy katalogów
116
Skrypty CGI
122
API rozszerze serwera internetowego
124
WebDAV 126
Strony statusu generowane przez serwer
127
Dostosowane komunikaty o bdach
128
Spis
treci
_
5
7.
Filtry
.......................................................................................... 130
Proste konfiguracje filtrów
130
Dynamiczna konfiguracja filtrów
132
Filtry zewntrzne
135
Dyrektywy moduu mod_deflate
137
Server-Side Includes (SSI)
139
Zastpowanie danych w treci odpowiedzi
143
8. Buforowanie
.............................................................................144
Proste buforowanie zorientowane na pliki
144
Buforowanie inteligentne
145
Buforowanie danych w pamici
148
Buforowanie danych na dysku
150
9.
Poredniczenie
.......................................................................... 152
Podstawowa konfiguracja poredniczenia 152
acuchy poredniczenia
157
Zwyky serwer poredniczcy
159
Odwrotny serwer poredniczcy
160
Równowaenie obcienia
165
10. Obsuga
SSL/TLS ...................................................................... 166
Opcje zabezpieczonego serwera
166
Certyfikaty 169
Buforowanie sesji
172
Kontrola dostpu oparta na SSL
174
Dyrektywy zwizane z poredniczeniem
178
11. Rejestrowanie
informacji
......................................................... 182
Rejestrowanie bdów
182
Rejestrowanie da
184
Rejestrowanie skryptów
187
Rejestrowanie ruchu SSL
188
Rejestrowanie ledcze
189
6
_ Spis
treci
A
Programy
i
moduy ................................................................... 190
Narzdzia pomocnicze
190
Moduy 191
B
Zmienne
rodowiskowe CGI .................................................... 195
Standardowe zmienne CGI
195
Dodatkowe zmienne SSL
197
C Formaty czasu strftime() .......................................................... 201
D Kody stanu HTTP .......................................................................203
E
Pola
nagówka HTTP .................................................................205
Skorowidz
.................................................................................209
10
_ Apache 2. Leksykon kieszonkowy
Rozdzia 1. Wprowadzenie
W tym rozdziale krótko opisano architektur Apache’a, pobieranie
oprogramowania, uruchamianie i zatrzymywanie serwera oraz
podstawy pliku konfiguracyjnego.
Przegld architektoniczny
Apache zwykle dziaa jako usuga systemowa, tak zwany demon,
z procesem lub wtkiem macierzystym, który nadzoruje procesy
lub wtki potomne przetwarzajce dania klientów. Pominwszy
pewne rdzenne mechanizmy, wikszo funkcji jest realizowana
przez moduy, które mog by statycznie poczone z serwerem
albo wczytywane dynamicznie podczas rozruchu.
Systemy operacyjne róni si pod wzgldem implementacji funkcji
takich jak czno sieciowa i wieloprzetwarzanie. W wersji 2.0
Apache’a wprowadzono moduy MPM (MultiProcessing Module),
które obsuguj czno sieciow i szeregowanie w sposób do-
stosowany do konkretnych systemów operacyjnych i wzorców
uycia. S one wymienione w tabeli 1.1. Moduy MPM uywaj
natywnych mechanizmów systemu operacyjnego i zapewniaj
szeregowanie z wykorzystaniem procesów, wtków albo ich kom-
binacji. Apache w danym momencie uywa tylko jednego moduu
MPM, który musi by statycznie skompilowany z serwerem.
Moduy MPM, inne moduy oraz rdze serwera WWW wykorzy-
stuj rodowisko uruchomieniowe Apache Portable Runtime (APR),
które zapewnia spójny, niezaleny od platformy interfejs do ba-
zowego systemu operacyjnego. APR zawiera wywoania API za-
pewniajce dostp do baz danych SQL i serwerów LDAP; s one
uywane w moduach mod_dbd i mod_ldap, które udostpniaj
standardowe mechanizmy wykorzystywane przez inne moduy.
Rozdzia 1. Wprowadzenie
_
11
Tabela 1.1. Moduy MPM
Modu
Opis
beos
Wielowtkowy modu MPM dla systemu operacyjnego BeOS.
event
Eksperymentalny wariant moduu MPM worker.
mpm_netware
Wtkowy modu MPM dla systemu Novell Netware.
mpm_winnt
Dwuprocesowy, wielowtkowy modu MPM dla systemu
Windows.
mpmt_os2
Hybrydowy wieloprocesowy, wielowtkowy modu MPM dla
systemu O/S2.
prefork
Tradycyjny bezwtkowy modu MPM ze wstpnym
rozwidlaniem procesu.
worker
Hybrydowy wieloprocesowy, wielowtkowy modu MPM.
Przegld operacyjny
Podczas rozruchu Apache przechodzi faz inicjalizacyjn, zanim
wejdzie w stan operacyjny. Podczas tej fazy Apache odczytuje
i weryfikuje pliki konfiguracyjne, otwiera poczenia sieciowe
i pliki dziennika, pozyskuje zasoby systemowe i tworzy pul
procesów potomnych lub wtków, które bd obsugiwa dania.
Apache jest zwykle uruchamiany z przywilejami uytkownika
root
, ale zrzeka si ich przed wejciem w stan operacyjny.
Po wejciu w stan operacyjny procesy potomne lub wtki Apache’a
zaczynaj obsugiwa przychodzce dania.
dania s przetwa-
rzanie w kilku etapach, a na kadym z nich dostpne s punkty
wejcia, dziki którym moduy mog wzi udzia w przetwa-
rzaniu. Dla kadego punktu wejcia Apache kolejno wywouje
zarejestrowane funkcje, dopóki jedna z nich nie zasygnalizuje, e
przetwarzanie dobiego koca albo e wystpi bd.
Moduy rejestruj procedury obsugi dla faz, w których musz
wpyn na przetwarzanie dania. Ogólnie rzecz biorc, modu
rejestruje procedury obsugi tylko dla jednej lub dwóch faz.
12
_ Apache 2. Leksykon kieszonkowy
Kolejno faz jest nastpujca:
Analiza skadniowa dania
Adres URL dania jest odwzorowywany na przestrze nazw
systemu plików.
Kontrola bezpieczestwa
Kontrola dostpu, uwierzytelnianie i autoryzacja.
Przygotowanie dania
Adres URL dania i odwzorowana cieka do pliku s do-
pasowywane do konfiguracji, aby ustali odpowiedni pro-
cedur obsugi treci oraz filtry i ustawi inne metadane.
Generowanie treci
Wykonanie wybranej procedury obsugi z ewentualnymi
filtrami.
Rejestrowanie dania
Zapisywanie dania w dzienniku.
Obraz ten komplikuje nieco to, e moduy mog wykonywa kolej-
ne dania, aby zwróci dokument inny od pierwotnie danego
albo sprawdzi , jaka byaby odpowied, gdyby zadano innego
zasobu.
Biece wersje Apache’a
Kiedy powstawaa ta ksika (latem 2008 roku), w powszechnym
uytku byy trzy podstawowe wersje Apache’a: 1.3, 2.0 i 2.2.
Apache 1.3 zosta wydany w czerwcu 1998 roku i przez wiele
lat by najpopularniejszym serwerem WWW. W 2000 roku roz-
poczto prace nad now architektur Apache’a; pierwsze wy-
danie produkcyjne nowej wersji, Apache 2.0, zostao udostp-
nione w kwietniu 2002 roku. Jednoczenie wprowadzono nowy
Rozdzia 1. Wprowadzenie
_ 13
sposób numerowania wersji: wersje poboczne oznaczone nume-
rami nieparzystymi, takie jak 2.1 lub 2.3, to wersje rozwojowe;
wersje poboczne oznaczone numerami parzystymi, takie jak 2.0
lub 2.4, to wersje stabilne. Pierwsze wydanie wersji 2.2 pojawio
si w 2005 roku, a najnowsze udostpniono w lipcu 2008 roku.
W witrynie WWW Apache’a znajduje si dokumentacja zmian
wprowadzonych w poszczególnych wersjach oraz notatki dotycz-
ce aktualizacji.
Jak uzyska Apache’a?
Serwer Apache jest dostpny w wersjach dla wikszoci wspó-
czesnych platform komputerowych — wikszo dystrybucji
Linuksa i BSD oferuje go jako standardowy pakiet, jest on równie
doczony do systemu Mac OS X. Wersj dla systemu Microsoft
Windows, a take pakiety ródowe i inne pakiety binarne, mona
pobra z witryny Apache’a i serwerów lustrzanych. Warto zapo-
zna si ze specyfik uywanej dystrybucji, poniewa twórcy pa-
kietów zmieniaj pewne szczegóy, aby dostosowa si do kon-
wencji obowizujcych na docelowej platformie.
Mona równie do atwo skompilowa Apache’a z kodu ró-
dowego, co ma t zalet, e zapewnia pen kontrol nad bu-
dow serwera, statycznie doczanymi moduami itd. Dystrybucja
ródowa zawiera szczegóowe instrukcje dotyczce procesu
kompilacji.
Dystrybucja ródowa domylnie instaluje serwer w podkatalogach
katalogu /usr/local/apache2, które s wymienione w tabeli 1.2. Twór-
cy wikszoci innych dystrybucji zmieniaj ten ukad.
Dystrybucje Apache’a zawieraj kilka moduów i programów na-
rzdziowych; s one wymienione w dodatku A.
14
_ Apache 2. Leksykon kieszonkowy
Tabela 1.2. Ukad standardowych katalogów Apache’a
Katalog
Zawarto
bin
Pliki programów (pliki programów administracyjnych s czsto
umieszczane w katalogu sbin).
build
Pliki uywane przez program narzdziowy aspx.
cgi-bin
Skrypty CGI.
conf
Pliki konfiguracyjne (czsto przechowywane w hierarchii katalogów /etc).
error
Komunikaty o bdach HTTP w wielu jzykach.
htdocs
Dokumenty HTML.
icons
Pliki ikon.
include
Pliki nagówkowe C wymagane do kompilacji zewntrznych moduów.
logs
Pliki dziennika i pliki stanu, na przykad plik PID; pliki stanu s czsto
przechowywane w katalogu run.
man
Strony podrcznika systemowego (czsto przechowywane w systemowych
katalogach man).
manual
Lokalna kopia podrcznika Apache’a.
modules
Doczane moduy.
Uruchamianie i zatrzymywanie Apache’a
Wikszo dystrybucyjnych pakietów Apache’a konfiguruje serwer
tak, aby by uruchamiany podczas startu systemu i zatrzymywany
podczas jego zamykania.
W systemach uniksowych Apache zwykle dziaa jako demon. Do
Apache’a doczony jest skrypt powoki, apachectl, który automaty-
zuje proces uruchamiania i zatrzymywania demona. Skrypt ten jest
zwykle wywoywany przez systemowy skrypt rozruchowy. Apa-
che reaguje na nastpujce sygnay wysane do procesu macie-
rzystego (którego identyfikator jest zapisany w pliku PID):
TERM
Zatrzymuje serwer, nakazujc procesowi macierzystemu usu-
nicie wszystkich procesów potomnych i zakoczenie dziaania.
Rozdzia 1. Wprowadzenie
_ 15
HUP
Ponownie uruchamia serwer, nakazujc procesowi macierzy-
stemu usunicie wszystkich procesów potomnych, ponowne
odczytanie plików konfiguracyjnych i uruchomienie nowych
procesów potomnych. Podczas restartu statystyki serwera s
zerowane.
USR1
Inicjuje agodny restart. Procesy potomne kocz dziaanie
po przetworzeniu biecego dania albo natychmiast, jeli
obecnie nie obsuguj adnego dania. Proces macierzysty
ponownie odczytuje pliki konfiguracyjne i zaczyna urucha-
mia nowe procesy potomne, aby utrzyma odpowiedni
liczb procesów serwera. Podczas agodnego restartu staty-
styki serwera nie s zerowane.
WINCH
Inicjuje agodne zatrzymanie. Procesy potomne kocz dzia-
anie po przetworzeniu biecego dania albo natychmiast,
jeli nie obsuguj adnego innego dania. Proces macierzysty
usuwa plik PID i przestaje nasuchiwa da we wszystkich
portach, ale kontynuuje monitorowanie, a pozostae procesy
potomne zakocz dziaanie albo upynie limit czasu.
Jeli Apache w systemie Windows zosta zainstalowany jako usuga,
mona uruchamia i zatrzymywa go za pomoc polece
NET
START
i
NET STOP
albo programu Apache Service Monitor.
Opcje wiersza polecenia
W przypadku rcznego uruchamiania Apache’a program serwera
przyjmuje nastpujce opcje wiersza polecenia:
-C dyrektywa
Przetwarza dyrektyw przed odczytaniem plików konfigu-
racyjnych.
16
_ Apache 2. Leksykon kieszonkowy
-c dyrektywa
Przetwarza dyrektyw po odczytaniu plików konfiguracyj-
nych.
-d katalog
Ustawia pocztkow warto dyrektywy
ServerRoot
.
-D parametr
Definiuje parametr, którego mona uywa w sekcjach
<IfDefine>
. Niektóre opcje rozruchowe przywouje si przez
ustawianie parametrów (
DEBUG
,
FOREGROUND
,
NO_DETACH
,
ONE_PROCESS
).
-E nazwa_pliku
Okrela plik dziennika bdów na czas rozruchu serwera.
-e poziom
Okrela poziom rejestrowania zdarze na czas rozruchu
serwera.
-f plik
Okrela gówny plik konfiguracyjny (domylnie conf/httpd.conf).
-h
Wywietla krótkie podsumowanie dostpnych opcji wiersza
polecenia.
-k polecenie
Wykonuje jedno z nastpujcych polece:
start
,
restart
,
graceful
,
stop
lub
graceful-stop
. Ponadto, tylko w syste-
mie Windows:
install
,
uninstall
.
-L
Wywietla list dostpnych dyrektyw konfiguracyjnych (udo-
stpnianych przez wkompilowane moduy) i koczy dziaa-
nie programu.
-l
Wywietla list wkompilowanych moduów i koczy dziaa-
nie programu.
Rozdzia 1. Wprowadzenie
_
17
-M
Wywietla list wkompilowanych oraz wspódzielonych
moduów i koczy dziaanie programu (odpowiednik
-D
DUMP_MODULES
).
-n nazwa
Tylko w Windows: nazwa usugi Apache’a.
-S
Pokazuje ustawienia wirtualnego hosta (odpowiednik
-D
DUMP_VHOSTS
).
-t
Testuje skadni plików konfiguracyjnych, sprawdza, czy
istniej gówne katalogi dokumentów, i koczy dziaanie
programu.
-v
Wywietla numer wersji oraz dat kompilacji i koczy dzia-
anie programu.
-V
Pokazuje ustawienia kompilacji i koczy dziaanie programu.
-w
Tylko w Windows: pozostawia otwarte okno konsoli po uru-
chomieniu Apache’a.
-X
Uruchamia serwer w jednoprocesowym trybie diagnostycz-
nym (odpowiednik
-D DEBUG
).
Pliki konfiguracyjne
Kady aspekt dziaania Apache’a jest kontrolowany przez dyrek-
tywy zawarte w plikach konfiguracyjnych. Kiedy Apache urucha-
mia si, najpierw odczytuje gówny plik konfiguracyjny z lokalizacji
18
_ Apache 2. Leksykon kieszonkowy
domylnej albo z lokalizacji okrelonej przez opcj
-f
wiersza
polecenia. Dodatkowe pliki konfiguracyjne mog zosta doczone
za pomoc dyrektywy
Include
.
Pliki konfiguracyjne to zwyke pliki tekstowe, które zawieraj
dyrektywy, puste wiersze i komentarze. Pocztkowe znaki odstpu
w wierszu s ignorowane, podobnie jak puste wiersze. Wiersze
zaczynajce si od znaku hash (
#
) s uwaane za komentarze.
Format dyrektyw konfiguracyjnych
Dyrektywy konfiguracyjne Apache’a s opisywane w standardo-
wym formacie pokazanym poniej.
DirectorySlash
SVDH (Indexes)
mod_dir (
B
)
ON
DirectorySlash { ON | OFF }
Zgodno
: 2.0.51 i nowsze wersje
Jeli jest ustawiona na
ON
, dania katalogu, które nie s zakoczone
znakiem ukonika, zostan przekierowane pod ten sam adres URL
z doczonym ukonikiem, aby automatyczne indeksy katalogów
i wzgldne adresy URL dziaay poprawnie.
Górny wiersz zawiera po lewej stronie nazw dyrektywy, a po
prawej list kontekstów, w których mona uywa dyrektywy.
Konteksty oznaczono skrótami opisanymi w tabeli 1.3. Jeli dy-
rektywa moe by uywana w pliku konfiguracyjnym katalogu
i jest kontrolowana przez kategori dyrektywy
AllowOverride
, to
sowo kluczowe kategorii jest wymienione w nawiasie po skrótach
kontekstu.
Rozdzia 1. Wprowadzenie
_ 19
Tabela 1.3. Skróty kontekstu
Kontekst
Opis
S
Dyrektywy mona uywa w kontekcie globalnym, tzn. w pliku
konfiguracyjnym serwera poza sekcjami wirtualnego hosta albo
kontenera systemu plików.
V
Dyrektywy mona uywa w sekcjach wirtualnego hosta.
D
Dyrektywy mona uywa w sekcjach kontenera systemu plików
(
<Directory>, <Files>,
<Location>
i warianty
*Match
).
H
Dyrektywy mona uywa w plikach konfiguracyjnych dotyczcych
poszczególnych katalogów (domylnie o nazwie .htaccess).
*
Wskazuje, e dyrektywy mona uywa wicej ni raz w danym
kontekcie.
Drugi wiersz podaje nazw moduu Apache’a, który implementuje
dyrektyw wymienion po lewej stronie (lista moduów doczo-
nych do dystrybucji Apache’a znajduje si w dodatku A). Status
moduu znajduje si w nawiasie i jest oznaczony skrótami z tabeli
1.4. Modu moe by oznaczony jako „MPM” (w takim przypadku
zostan odnotowane moduy MPM implementujce dyrektyw)
albo jako „rdzenny”, co oznacza, e dyrektywa jest implementowa-
na przez rdzenny modu Apache’a. Domylna warto dyrektywy
jest podana po prawej stronie.
Tabela 1.4. Kody statusu moduów
Status
Opis
B
Modu podstawowy — doczony do dystrybucji Apache’a i
domylnie wkompilowany.
E
Modu rozszerzenia — doczony do dystrybucji Apache’a, ale domylnie
niewkompilowany.
X
Modu eksperymentalny — doczony do dystrybucji Apache’a,
ale domylnie niewkompilowany.
20
_ Apache 2. Leksykon kieszonkowy
Nastpny wiersz okrela skadni dyrektywy, po czym nastpuj
informacje o zgodnoci (jeli maj zastosowanie). Wielko liter
w dyrektywach nie jest rozróniana, podobnie jak w wikszoci
argumentów, które nie odnosz si do obiektów wraliwych na
wielko liter, takich jak nazwy plików.
Podstawowe dyrektywy w pliku konfiguracyjnym
Te dyrektywy okrelaj pooenie plików konfiguracyjnych, nazwy
dodatkowych plików wczytywanych podczas rozruchu serwera,
nazwy plików konfiguracyjnych, dotyczcych poszczególnych ka-
talogów, oraz dyrektywy, które mona stosowa w tych plikach.
Dyrektywy konfiguracyjne Apache’a s opisywane w standardo-
wym formacie pokazanym poniej.
ServerRoot
S
rdzenny
zalenie od ustawie kompilacyjnych
ServerRoot
katalog
Gówny katalog serwera. Moe zosta zmieniony za pomoc opcji
-d
wiersza polecenia. cieki wzgldne w innych dyrektywach,
takich jak
Include
i
LockFile
, s interpretowane jako odnoszce
si do tego katalogu. Pakiety binarne czsto maj inne ustawienia
domylne ni w standardowym ukadzie katalogów Apache’a.
Include
SVD*
rdzenny
Include { cieka_do_pliku | katalog }
Zgodno
: dopasowywanie symboli wieloznacznych dostpne
w wersji 2.0.41 i nowszych
Odczytuje i przetwarza zawarto okrelonego pliku konfiguracyj-
nego, który jest logicznie wstawiany w miejscu dyrektywy. Nazwa
Rozdzia 1. Wprowadzenie
_ 21
pliku moe zawiera symbole wieloznaczne w stylu powoki;
w takim przypadku zostan doczone wszystkie pasujce pliki
w kolejnoci leksykograficznej. W razie podania katalogu zostan
doczone wszystkie pliki znajdujce si w tym katalogu i wszyst-
kich jego podkatalogach, co nie jest zalecane, poniewa moe
doprowadzi do wczytania niepodanych plików.
AccessFileName
SV*
rdzenny
.htaccess
AccessFileName nazwa_pliku ...
Okrela nazw pliku stosowanego do konfigurowania poszczegól-
nych katalogów. Cho nazwa dyrektywy oraz jej warto domylna
sugeruj co innego, w pliku tym mona stosowa nie tylko dyrek-
tywy kontroli dostpu. Kategorie dozwolonych dyrektyw s okre-
lone przez dyrektyw
AllowOverride
.
AllowOverride
D
rdzenny
All
AllowOverride kategoria ...
Dyrektywa
AllowOverride
jest dozwolona tylko w sekcjach
<Directory>
, które nie uywaj wyraenia regularnego. Okrela
ona, czy z katalogów nalecych do danej sekcji bd odczytywane
pliki konfiguracyjne, a jeli tak, to które kategorie dyrektyw
wymienione w tabeli 1.5 bd dozwolone w tych plikach. Jeli
plik konfiguracyjny katalogu bdzie zawiera niedozwolone dy-
rektywy, zostanie wygenerowany wewntrzny bd serwera.
Dyrektywa
AllowOverride
zastpuje ustawienia zdefiniowane
dla katalogów wyszego poziomu. Sowa kluczowe
All
i
None
s interpretowane tak samo jak inne, co pozwala na pewne dziwne,
ale poprawne kombinacje.
22
_ Apache 2. Leksykon kieszonkowy
Tabela 1.5. Kategorie dyrektyw w plikach konfiguracyjnych dotyczcych
poszczególnych katalogów
Kategoria
Opis
None
Pliki konfiguracyjne dotyczce poszczególnych katalogów w ogóle
nie s odczytywane.
All
W plikach konfiguracyjnych dotyczcych poszczególnych katalogów
mona uywa wszystkich dyrektyw.
AuthConfig
Dyrektywy zwizane z uwierzytelnianiem i autoryzacj.
FileInfo
Dyrektywy kontrolujce atrybuty dokumentów.
Indexes
Dyrektywy zwizane z indeksowaniem katalogów.
Limit
Dyrektywy kontroli dostpu.
Options
Opcje katalogów.
Sekcje warunkowe
Sekcje warunkowe zawieraj zbiory dyrektyw, które Apache po-
winien zignorowa podczas analizy skadniowej pliku konfigura-
cyjnego, jeli nie jest speniony warunek okrelony w dyrektywie
rozpoczynajcej sekcj. Sekcje warunkowe mona zagnieda .
<IfDefine>
SVDH*
rdzenny
<IfDefine [!]parametr >
...
</IfDefine>
Dyrektywy zawarte w sekcji s odczytywane tylko wtedy, gdy
okrelony parametr jest zdefiniowany za pomoc opcji
-d
wiersza
polecenia — albo kiedy nie jest zdefiniowany, jeli poprzedzono
go znakiem wykrzyknika (
!
).
Rozdzia 1. Wprowadzenie
_ 23
<IfModule>
SVDH*
rdzenny
<IfModule [!]modu >
...
</IfModule>
Dyrektywy zawarte w sekcji s odczytywane tylko wtedy, gdy
okrelony modu jest aktywny — albo kiedy nie jest aktywny, jeli
poprzedzono go znakiem wykrzyknika (
!
). Moduy mona okre-
la za pomoc identyfikatora lub nazwy, cznie z kocow liter
.c, która jest wywietlana przez opcj
-1
wiersza polecenia. Moli-
wo uycia identyfikatorów moduów wprowadzono w wersji
2.0. Dyrektywy tej mona uy do odrónienia wersji 1.3 od
nowszych wersji, poniewa w serwerach 2.0 modu rdzenny
nosi nazw core.c, a w serwerach 1.3 nosi nazw http_core.c.
<IfVersion>
SVDH*
mod_version (
E
)
<IfVersion [[!]operator] wersja_gówna[.wersja_poboczna
´
[.poprawka]] >
...
</IfVersion>
Zgodno
: 2.0.56 i nowsze wersje
Dyrektywy zawarte w sekcji s odczytywane tylko wtedy, gdy
wersja Apache’a spenia okrelone kryteria. Jeli numery poprawki
i wersji pobocznej zostan pominite, bd potraktowane tak, jakby
byy ustawione na zero. Operatorem porównania moe by jeden
z nastpujcych symboli:
=
,
<
,
<=
,
>
lub
>=
(
==
to synonim
=
).
Obsugiwane s równie wyraenia regularne; mona uy ope-
ratora
~
i okreli wersj za pomoc acucha albo uy operatora
=
i okreli wersj za pomoc
/wyraenia_regularnego/
.
Wszystkie operatory mog by poprzedzone znakiem wykrzyknika
(
!
), który odwraca ich znaczenie.
24
_ Apache 2. Leksykon kieszonkowy
Sekcje kontenerowe
Sekcje kontenerowe pozwalaj ograniczy zasig dyrektyw do ka-
talogu, nazwy pliku, adresu URL albo metody dania. Dyrektywy
<Directory>
,
<DirectoryMatch>
,
<Files>
oraz
<FilesMatch>
rozpoczynaj kontenery systemu plików, a dyrektywy
<Location>
i
<LocationMatch>
rozpoczynaj kontenery przestrzeni WWW.
Dyrektywy
<Limit>
i
<LimitExcept>
rozpoczynaj sekcje kontene-
rowe ograniczone do okrelonej metody dania.
Dyrektywy kontenerowe systemu plików i przestrzeni WWW
inne ni
*Match
przyjmuj argument w postaci wieloznacznego
wzorca w stylu powoki. Maj one alternatywn posta , w której
pierwszy argument jest tyld (
~
), a drugi jest interpretowany jako
wyraenie regularne. Posta ta jest równowana odpowiedniej
dyrektywie
*Match
, która powinna by preferowana, poniewa
tyld mona atwo przeoczy .
Wzorce wieloznaczne w stylu powoki mog zawiera metaznaki
i wyraenia w nawiasach kwadratowych:
?
dopasowuje pojedynczy
znak,
*
dopasowuje dowoln liczb znaków, a [
wyraenie
] dopa-
sowuje dowolny ze znaków albo zakresów znaków okrelonych
w nawiasie.
Podczas przetwarzania dania dyrektywy zawarte w sekcjach
systemu plików i przestrzeni WWW s stosowane w nastpuj-
cej sekwencji:
1.
Sekcje
<Directory>
bez wyrae regularnych oraz pliki kon-
figuracyjne dotyczce poszczególnych katalogów, od najkrót-
szej do najduszej cieki do pliku. Pliki konfiguracyjne
dotyczce poszczególnych katalogów maj pierwszestwo
przed sekcjami
<Directory>
.
2.
Sekcje
<DirectoryMatch>
.
3.
Sekcje
<Files>
i
<FilesMatch>
.
4.
Sekcje
<Location>
i
<LocationMatch>
.
Rozdzia 1. Wprowadzenie
_ 25
Dyrektywy w sekcjach
<Directory>
i
<DirectoryMatch>
oraz pliki
konfiguracyjne katalogów obowizuj równie w podkatalogach,
chyba e zostan póniej przesonite.
Sekcje kontenerowe dotyczce wirtualnych hostów s stosowane
po sekcjach dotyczcych gównego serwera.
<Directory>
SV*
rdzenny
<Directory wzorzec >
...
</Directory>
Kontener na dyrektywy, które dotycz tylko katalogów pasujcych
do okrelonego wzorca (i ich podkatalogów).
<DirectoryMatch>
SV*
rdzenny
<DirectoryMatch wyraenie_regularne >
...
</DirectoryMatch>
Dyrektywy zawarte w tej sekcji dotycz tylko katalogów (i ich
podkatalogów), które pasuj do okrelonego wyraenia regularnego.
<Files>
SVDH*
rdzenny
<Files wzorzec >
...
</Files>
Dyrektywy zawarte w tej sekcji dotycz tylko plików, które pasuj
do okrelonego wzorca.
26
_ Apache 2. Leksykon kieszonkowy
<FilesMatch>
SVDH*
rdzenny
<FilesMatch wyraenie_regularne >
...
</FilesMatch>
Dyrektywy zawarte w tej sekcji dotycz tylko plików, które pasuj
do okrelonego wyraenia regularnego.
<Location>
SV*
rdzenny
<Location wzorzec >
...
</Location>
Dyrektywy zawarte w tej sekcji dotycz tylko adresów URL, które
pasuj do okrelonego wzorca.
<LocationMatch>
SV*
rdzenny
<LocationMatch wyraenie_regularne
>
...
</LocationMatch>
Dyrektywy zawarte w tej sekcji dotycz tylko adresów URL, które
pasuj do okrelonego wyraenia regularnego.
<Limit>
SVDH*
rdzenny
<Limit metoda ... >
...
</Limit>
Dyrektywy zawarte w tej sekcji dotycz tylko pasujcych metod.
Rozdzia 1. Wprowadzenie
_ 27
<LimitExcept>
SVDH*
rdzenny
<LimitExcept metoda ... >
...
</LimitExcept>
Dyrektywy zawarte w tej sekcji dotycz tylko niepasujcych metod.