Przedmowa ...................................................................................7 1. Wprowadzenie ........................................................................... 10 Przegląd architektoniczny Jak uzyskać Apache’a? Uruchamianie i zatrzymywanie Apache’a Pliki konfiguracyjne
10 13 14 17
2. Środowisko serwera ...................................................................28 Główny serwer i hosty wirtualne Konfiguracja sieci Zarządzanie procesami Ogólne dyrektywy konfiguracyjne Szkielet DBD Szkielet LDAP
28 32 37 42 50 53
3. Odwzorowywanie adresów URL ..................................................58 Wstępna konfiguracja środowiska Podstawowa translacja adresów URL Aliasy i przekierowania Żądania katalogów Przekształcanie adresów URL z wykorzystaniem modułu mod_rewrite Dokumenty z negocjacją treści
4. Kontrola dostępu ....................................................................... 80 Kontrola dostępu niezwiązana z kontami użytkowników Uwierzytelnianie Dostawcy usług uwierzytelniania Autoryzacja Uwierzytelnianie i autoryzacja LDAP
6. Procedury obsługi ..................................................................... 114 Konfiguracja procedur obsługi Pliki statyczne Automatycznie generowane indeksy katalogów Skrypty CGI API rozszerzeń serwera internetowego WebDAV Strony statusu generowane przez serwer Dostosowane komunikaty o błędach
4 Ebookpoint.pl
|
Sp s treśc
115 116 116 122 124 126 127 128
7. Filtry .......................................................................................... 130 Proste konfiguracje filtrów Dynamiczna konfiguracja filtrów Filtry zewnętrzne Dyrektywy modułu mod_deflate Server-Side Includes (SSI) Zastępowanie danych w treści odpowiedzi
130 132 135 137 139 143
8. Buforowanie .............................................................................144 Proste buforowanie zorientowane na pliki Buforowanie inteligentne Buforowanie danych w pamięci Buforowanie danych na dysku
10. Obsługa SSL/TLS ...................................................................... 166 Opcje zabezpieczonego serwera Certyfikaty Buforowanie sesji Kontrola dostępu oparta na SSL Dyrektywy związane z pośredniczeniem
166 169 172 174 178
11. Rejestrowanie informacji ......................................................... 182 Rejestrowanie błędów Rejestrowanie żądań Rejestrowanie skryptów Rejestrowanie ruchu SSL Rejestrowanie śledcze
182 184 187 188 189 Sp s treśc
|
5
A Programy i moduły ................................................................... 190 Narzędzia pomocnicze Moduły
190 191
B Zmienne środowiskowe CGI .................................................... 195 Standardowe zmienne CGI Dodatkowe zmienne SSL
195 197
C Formaty czasu strftime() .......................................................... 201 D Kody stanu HTTP .......................................................................203 E Pola nagłówka HTTP .................................................................205 Skorowidz .................................................................................209
6
|
Sp s treśc
Apache 2 Leksykon kieszonkowy
Przedmowa Apache to zaawansowany serwer WWW o modularnej architekturze, która zapewnia mu dużą wydajność i przenośność. Dzięki niezwykłej elastyczności jeden serwer może obsługiwać wiele witryn, zwanych wirtualnymi hostami, oraz działać jako pośrednik. Apache zawiera standardowe moduły do buforowania stron i obsługi połączeń SSL/TLS, różne mechanizmy uwierzytelniania i autoryzacji oraz system filtrowania. Istnieje wiele modułów dodatkowych, które rozszerzają zestaw funkcji Apache’a, na przykład o systemy szablonów, osadzone interpretery języków skryptowych oraz interfejsy HTTP do systemów kontroli wersji, takich jak Subversion. W niniejszym leksykonie podsumowano opcje wiersza polecenia Apache’a oraz dyrektywy konfiguracyjne standardowych modułów. Opisano wersję 2.2.9 Apache’a, ale większość informacji dotyczy wszystkich wersji Apache’a 2. Aby uzyskać bardziej kompletne informacje, wykraczające poza ramy krótkiego przewodnika, należy zajrzeć do witryny z dokumentacją Apache’a (http://httpd.apache. org/docs/).
7
Konwencje W książce zastosowano następujące konwencje: stała szerokość liter
Oznacza dosłowny tekst. stała szerokość liter, kursywa
Oznacza parametry przeznaczone do zastąpienia rzeczywistymi wartościami. { A | B }
Oznacza alternatywę. [tekst]
Oznacza opcjonalny tekst. ...
Wskazuje, że poprzedni element może zostać powtórzony.
Przykładowy kod Niniejsza książka ma pomóc programistom w wykonywaniu ich zadań. Ogólnie rzecz biorąc, wolno używać opisanego tu kodu we własnych programach i dokumentacji. Nie trzeba prosić nas o zezwolenie, chyba że w grę wchodzi reprodukcja znacznej części kodu. Na przykład napisanie programu, który zawiera kilka fragmentów kodu z tej książki, nie wymaga zezwolenia. Sprzedawanie albo dystrybucja dysku CD-ROM z przykładami zaczerpniętymi z książek wydawnictwa O’Reilly wymaga zezwolenia. Odpowiedź na czyjeś pytanie przez odwołanie się do tej książki i przytoczenie przykładowego kodu nie wymaga zezwolenia. Dołączenie znacznej ilości przykładowego kodu z niniejszej książki do dokumentacji produktu wymaga zezwolenia.
8
|
Apache 2. Leksykon k eszonkowy
Podziękowania Chciałbym podziękować wszystkim recenzentom, zwłaszcza Chrisowi Pepperowi i mojej żonie Catherine Mason, za znakomitą robotę; kolegom z MessageLabs za wsparcie; personelowi O’Reilly — w szczególności redaktorowi Simonowi St. Laurentowi oraz Abby Fox za urzeczywistnienie moich pomysłów dotyczących składu książki; wreszcie wszystkim programistom Apache’a, uczestnikom projektu Apache HTTPD oraz niezliczonym osobom, które przyczyniły się do tego, że Apache stał się tym, czym jest, i nadal się rozwija.
Przedmowa
|
9
HUP
USR1
Ponownie uruchamia serwer, nakazując procesowi macierzystemu usunięcie wszystkich procesów potomnych, ponowne odczytanie plików konfiguracyjnych i uruchomienie nowych procesów potomnych. Podczas restartu statystyki serwera są zerowane. Inicjuje łagodny restart. Procesy potomne kończą działanie po przetworzeniu bieżącego żądania albo natychmiast, jeśli obecnie nie obsługują żadnego żądania. Proces macierzysty ponownie odczytuje pliki konfiguracyjne i zaczyna uruchamiać nowe procesy potomne, aby utrzymać odpowiednią liczbę procesów serwera. Podczas łagodnego restartu statystyki serwera nie są zerowane.
WINCH
Inicjuje łagodne zatrzymanie. Procesy potomne kończą działanie po przetworzeniu bieżącego żądania albo natychmiast, jeśli nie obsługują żadnego innego żądania. Proces macierzysty usuwa plik PID i przestaje nasłuchiwać żądań we wszystkich portach, ale kontynuuje monitorowanie, aż pozostałe procesy potomne zakończą działanie albo upłynie limit czasu.
Jeśli Apache w systemie Windows został zainstalowany jako usługa, można uruchamiać i zatrzymywać go za pomocą poleceń NET START i NET STOP albo programu Apache Service Monitor.
Opcje wiersza polecenia W przypadku ręcznego uruchamiania Apache’a program serwera przyjmuje następujące opcje wiersza polecenia: -C dyrektywa
Przetwarza dyrektywę przed odczytaniem plików konfiguracyjnych.
Rozdz ał 1. Wprowadzen e
|
15
-c dyrektywa
Przetwarza dyrektywę po odczytaniu plików konfiguracyjnych. -d katalog
Ustawia początkową wartość dyrektywy ServerRoot. -D parametr
Definiuje parametr, którego można używać w sekcjach . Niektóre opcje rozruchowe przywołuje się przez ustawianie parametrów (DEBUG, FOREGROUND, NO_DETACH, ONE_PROCESS). -E nazwa_pliku
Określa plik dziennika błędów na czas rozruchu serwera. -e poziom
Określa poziom rejestrowania zdarzeń na czas rozruchu serwera. -f plik
Określa główny plik konfiguracyjny (domyślnie conf/httpd.conf). -h
Wykonuje jedno z następujących poleceń: start, restart, graceful, stop lub graceful-stop. Ponadto, tylko w systemie Windows: install, uninstall. -L
Wyświetla listę dostępnych dyrektyw konfiguracyjnych (udostępnianych przez wkompilowane moduły) i kończy działanie programu.
-l
Wyświetla listę wkompilowanych modułów i kończy działanie programu.
16
|
Apache 2. Leksykon k eszonkowy
-M
Wyświetla listę wkompilowanych oraz współdzielonych modułów i kończy działanie programu (odpowiednik -D DUMP_MODULES).
-n nazwa
Tylko w Windows: nazwa usługi Apache’a. -S
Pokazuje ustawienia wirtualnego hosta (odpowiednik -D DUMP_VHOSTS).
-t
Testuje składnię plików konfiguracyjnych, sprawdza, czy istnieją główne katalogi dokumentów, i kończy działanie programu. -v
Wyświetla numer wersji oraz datę kompilacji i kończy działanie programu.
-V
Pokazuje ustawienia kompilacji i kończy działanie programu. -w
Tylko w Windows: pozostawia otwarte okno konsoli po uruchomieniu Apache’a.
-X
Uruchamia serwer w jednoprocesowym trybie diagnostycznym (odpowiednik -D DEBUG).
Pliki konfiguracyjne Każdy aspekt działania Apache’a jest kontrolowany przez dyrektywy zawarte w plikach konfiguracyjnych. Kiedy Apache uruchamia się, najpierw odczytuje główny plik konfiguracyjny z lokalizacji
Rozdz ał 1. Wprowadzen e
|
17
domyślnej albo z lokalizacji określonej przez opcję -f wiersza polecenia. Dodatkowe pliki konfiguracyjne mogą zostać dołączone za pomocą dyrektywy Include. Pliki konfiguracyjne to zwykłe pliki tekstowe, które zawierają dyrektywy, puste wiersze i komentarze. Początkowe znaki odstępu w wierszu są ignorowane, podobnie jak puste wiersze. Wiersze zaczynające się od znaku hash (#) są uważane za komentarze.
Format dyrektyw konfiguracyjnych Dyrektywy konfiguracyjne Apache’a są opisywane w standardowym formacie pokazanym poniżej.
DirectorySlash mod_dir (B)
SVDH (Indexes) ON
DirectorySlash { ON | OFF }
Zgodność: 2.0.51 i nowsze wersje Jeśli jest ustawiona na ON, żądania katalogu, które nie są zakończone znakiem ukośnika, zostaną przekierowane pod ten sam adres URL z dołączonym ukośnikiem, aby automatyczne indeksy katalogów i względne adresy URL działały poprawnie. Górny wiersz zawiera po lewej stronie nazwę dyrektywy, a po prawej listę kontekstów, w których można używać dyrektywy. Konteksty oznaczono skrótami opisanymi w tabeli 1.3. Jeśli dyrektywa może być używana w pliku konfiguracyjnym katalogu i jest kontrolowana przez kategorię dyrektywy AllowOverride, to słowo kluczowe kategorii jest wymienione w nawiasie po skrótach kontekstu.
18
|
Apache 2. Leksykon k eszonkowy
Tabela 1.3. Skróty kontekstu Kontekst
Op s
S
Dy ektywy można używać w kontekście globalnym tzn w pliku konfigu acyjnym se we a poza sekcjami wi tualnego hosta albo kontene a systemu plików Dy ektywy można używać w sekcjach wi tualnego hosta Dy ektywy można używać w sekcjach kontene a systemu plików (, , i wa ianty *Match) Dy ektywy można używać w plikach konfigu acyjnych dotyczących poszczególnych katalogów (domyślnie o nazwie htaccess) Wskazuje że dy ektywy można używać więcej niż az w danym kontekście
V D H *
Drugi wiersz podaje nazwę modułu Apache’a, który implementuje dyrektywę wymienioną po lewej stronie (lista modułów dołączonych do dystrybucji Apache’a znajduje się w dodatku A). Status modułu znajduje się w nawiasie i jest oznaczony skrótami z tabeli 1.4. Moduł może być oznaczony jako „MPM” (w takim przypadku zostaną odnotowane moduły MPM implementujące dyrektywę) albo jako „rdzenny”, co oznacza, że dyrektywa jest implementowana przez rdzenny moduł Apache’a. Domyślna wartość dyrektywy jest podana po prawej stronie. Tabela 1.4. Kody statusu modułów Status
Op s
B
Moduł podstawowy dołączony do dyst ybucji Apache a i domyślnie wkompilowany Moduł ozsze zenia dołączony do dyst ybucji Apache a ale domyślnie niewkompilowany Moduł ekspe ymentalny dołączony do dyst ybucji Apache a ale domyślnie niewkompilowany
E X
Rozdz ał 1. Wprowadzen e
|
19
Następny wiersz określa składnię dyrektywy, po czym następują informacje o zgodności (jeśli mają zastosowanie). Wielkość liter w dyrektywach nie jest rozróżniana, podobnie jak w większości argumentów, które nie odnoszą się do obiektów wrażliwych na wielkość liter, takich jak nazwy plików.
Podstawowe dyrektywy w pliku konfiguracyjnym Te dyrektywy określają położenie plików konfiguracyjnych, nazwy dodatkowych plików wczytywanych podczas rozruchu serwera, nazwy plików konfiguracyjnych, dotyczących poszczególnych katalogów, oraz dyrektywy, które można stosować w tych plikach. Dyrektywy konfiguracyjne Apache’a są opisywane w standardowym formacie pokazanym poniżej.
ServerRoot rdzenny
S zależnie od ustawień kompilacyjnych
ServerRoot katalog
Główny katalog serwera. Może zostać zmieniony za pomocą opcji -d wiersza polecenia. Ścieżki względne w innych dyrektywach, takich jak Include i LockFile, są interpretowane jako odnoszące się do tego katalogu. Pakiety binarne często mają inne ustawienia domyślne niż w standardowym układzie katalogów Apache’a.
Include rdzenny
SVD*
Include { ścieżka_do_pliku | katalog }
Zgodność: dopasowywanie symboli wieloznacznych dostępne w wersji 2.0.41 i nowszych Odczytuje i przetwarza zawartość określonego pliku konfiguracyjnego, który jest logicznie wstawiany w miejscu dyrektywy. Nazwa
20
|
Apache 2. Leksykon k eszonkowy
pliku może zawierać symbole wieloznaczne w stylu powłoki; w takim przypadku zostaną dołączone wszystkie pasujące pliki w kolejności leksykograficznej. W razie podania katalogu zostaną dołączone wszystkie pliki znajdujące się w tym katalogu i wszystkich jego podkatalogach, co nie jest zalecane, ponieważ może doprowadzić do wczytania niepożądanych plików.
AccessFileName rdzenny
SV* .htaccess
AccessFileName nazwa_pliku ...
Określa nazwę pliku stosowanego do konfigurowania poszczególnych katalogów. Choć nazwa dyrektywy oraz jej wartość domyślna sugerują co innego, w pliku tym można stosować nie tylko dyrektywy kontroli dostępu. Kategorie dozwolonych dyrektyw są określone przez dyrektywę AllowOverride.
AllowOverride rdzenny
D All
AllowOverride kategoria ...
Dyrektywa AllowOverride jest dozwolona tylko w sekcjach , które nie używają wyrażenia regularnego. Określa ona, czy z katalogów należących do danej sekcji będą odczytywane pliki konfiguracyjne, a jeśli tak, to które kategorie dyrektyw wymienione w tabeli 1.5 będą dozwolone w tych plikach. Jeśli plik konfiguracyjny katalogu będzie zawierać niedozwolone dyrektywy, zostanie wygenerowany wewnętrzny błąd serwera. Dyrektywa AllowOverride zastępuje ustawienia zdefiniowane dla katalogów wyższego poziomu. Słowa kluczowe All i None są interpretowane tak samo jak inne, co pozwala na pewne dziwne, ale poprawne kombinacje.
Rozdz ał 1. Wprowadzen e
|
21
Tabela 1.5. Kategorie dyrektyw w plikach konfiguracyjnych dotyczących poszczególnych katalogów Kategor a
Op s
None
Pliki konfigu acyjne dotyczące poszczególnych katalogów w ogóle nie są odczytywane W plikach konfigu acyjnych dotyczących poszczególnych katalogów można używać wszystkich dy ektyw Dy ektywy związane z uwie zytelnianiem i auto yzacją Dy ektywy kont olujące at ybuty dokumentów Dy ektywy związane z indeksowaniem katalogów Dy ektywy kont oli dostępu Opcje katalogów
All AuthConfig FileInfo Indexes Limit Options
Sekcje warunkowe Sekcje warunkowe zawierają zbiory dyrektyw, które Apache powinien zignorować podczas analizy składniowej pliku konfiguracyjnego, jeśli nie jest spełniony warunek określony w dyrektywie rozpoczynającej sekcję. Sekcje warunkowe można zagnieżdżać.
rdzenny
SVDH*
...
Dyrektywy zawarte w sekcji są odczytywane tylko wtedy, gdy określony parametr jest zdefiniowany za pomocą opcji -d wiersza polecenia — albo kiedy nie jest zdefiniowany, jeśli poprzedzono go znakiem wykrzyknika (!).
22
|
Apache 2. Leksykon k eszonkowy
rdzenny
SVDH*
...
Dyrektywy zawarte w sekcji są odczytywane tylko wtedy, gdy określony moduł jest aktywny — albo kiedy nie jest aktywny, jeśli poprzedzono go znakiem wykrzyknika (!). Moduły można określać za pomocą identyfikatora lub nazwy, łącznie z końcową literą .c, która jest wyświetlana przez opcję -1 wiersza polecenia. Możliwość użycia identyfikatorów modułów wprowadzono w wersji 2.0. Dyrektywy tej można użyć 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.
mod_version (E)
SVDH*
...
Zgodność: 2.0.56 i nowsze wersje Dyrektywy zawarte w sekcji są odczytywane tylko wtedy, gdy wersja Apache’a spełnia określone kryteria. Jeśli numery poprawki i wersji pobocznej zostaną pominięte, będą potraktowane tak, jakby były ustawione na zero. Operatorem porównania może być jeden z następujących symboli: =, <, <=, > lub >= (== to synonim =). Obsługiwane są również wyrażenia regularne; można użyć operatora ~ i określić wersję za pomocą łańcucha albo użyć operatora = i określić wersję za pomocą /wyrażenia_regularnego/. Wszystkie operatory mogą być poprzedzone znakiem wykrzyknika (!), który odwraca ich znaczenie. Rozdz ał 1. Wprowadzen e
|
23
Sekcje kontenerowe Sekcje kontenerowe pozwalają ograniczyć zasięg dyrektyw do katalogu, nazwy pliku, adresu URL albo metody żądania. Dyrektywy , , oraz rozpoczynają kontenery systemu plików, a dyrektywy i rozpoczynają kontenery przestrzeni WWW. Dyrektywy i rozpoczynają sekcje kontenerowe ograniczone do określonej metody żądania. Dyrektywy kontenerowe systemu plików i przestrzeni WWW inne niż *Match przyjmują argument w postaci wieloznacznego wzorca w stylu powłoki. Mają one alternatywną postać, w której pierwszy argument jest tyldą (~), a drugi jest interpretowany jako wyrażenie regularne. Postać ta jest równoważna odpowiedniej dyrektywie *Match, która powinna być preferowana, ponieważ tyldę można łatwo przeoczyć. Wzorce wieloznaczne w stylu powłoki mogą zawierać metaznaki i wyrażenia w nawiasach kwadratowych: ? dopasowuje pojedynczy znak, * dopasowuje dowolną liczbę znaków, a [wyrażenie] dopasowuje dowolny ze znaków albo zakresów znaków określonych w nawiasie. Podczas przetwarzania żądania dyrektywy zawarte w sekcjach systemu plików i przestrzeni WWW są stosowane w następującej sekwencji: 1. Sekcje bez wyrażeń regularnych oraz pliki konfiguracyjne dotyczące poszczególnych katalogów, od najkrótszej do najdłuższej ścieżki do pliku. Pliki konfiguracyjne dotyczące poszczególnych katalogów mają pierwszeństwo przed sekcjami . 2. Sekcje . 3. Sekcje i . 4. Sekcje i . 24
|
Apache 2. Leksykon k eszonkowy
Dyrektywy w sekcjach i oraz pliki konfiguracyjne katalogów obowiązują również w podkatalogach, chyba że zostaną później przesłonięte. Sekcje kontenerowe dotyczące wirtualnych hostów są stosowane po sekcjach dotyczących głównego serwera.
rdzenny
SV*
...
Kontener na dyrektywy, które dotyczą tylko katalogów pasujących do określonego wzorca (i ich podkatalogów).
rdzenny
SV*
...
Dyrektywy zawarte w tej sekcji dotyczą tylko katalogów (i ich podkatalogów), które pasują do określonego wyrażenia regularnego.
rdzenny
SVDH*
...
Dyrektywy zawarte w tej sekcji dotyczą tylko plików, które pasują do określonego wzorca.
Rozdz ał 1. Wprowadzen e
|
25
rdzenny
SVDH*
...
Dyrektywy zawarte w tej sekcji dotyczą tylko plików, które pasują do określonego wyrażenia regularnego.
rdzenny
SV*
...
Dyrektywy zawarte w tej sekcji dotyczą tylko adresów URL, które pasują do określonego wzorca.
rdzenny
SV*
...
Dyrektywy zawarte w tej sekcji dotyczą tylko adresów URL, które pasują do określonego wyrażenia regularnego.
rdzenny
SVDH*
...
Dyrektywy zawarte w tej sekcji dotyczą tylko pasujących metod.
26
|
Apache 2. Leksykon k eszonkowy
rdzenny
SVDH*
...
Dyrektywy zawarte w tej sekcji dotyczą tylko niepasujących metod.
Rozdz ał 1. Wprowadzen e
|
27
Rozdział 2. Środowisko serwera W tym rozdziale omówiono konfigurowanie środowiska serwera, w tym określanie ustawień wirtualnych hostów, sieci i szeregowania procesów. Opisano także nowe moduły szkieletowe, mod_dbd i mod_ldap. Zapewniają one interfejs do bazy danych SQL oraz wywołań LDAP środowiska APR, dzięki czemu moduły, które korzystają z bazy danych albo serwera LDAP, nie muszą zawierać przeznaczonego do tego kodu.
Główny serwer i hosty wirtualne Dyrektywa Listen nakazuje Apache’owi nasłuchiwać pod wieloma adresami IP w jednym lub wielu portach. Jeśli nie są zdefiniowane żadne hosty wirtualne, wszystkie żądania dotyczą głównego serwera. Hosty wirtualne definiuje się w sekcjach , które są uwzględniane tylko wtedy, gdy Apache nasłuchuje pod adresem IP i w porcie określonym przez początkową dyrektywę . W razie braku dyrektywy NameVirtualHost wszystkie hosty wirtualne są odróżniane za pomocą adresów IP. Dyrektyw NameVirtualHost używa się do wyznaczenia adresów IP (z opcjonalnymi numerami portów), które będą akceptować żądania dotyczące hostów wirtualnych opartych na nazwach — można używać nazw hostów zamiast adresów IP. Aby ustalić, którego hosta wirtualnego dotyczy żądanie, Apache porównuje wartość nagłówka Host w żądaniach przychodzących pod dany adres IP i do danego portu z nazwą serwera lub aliasami zdefiniowanymi w tych sekcjach hostów wirtualnych, w których adres i port określony w dyrektywie dokładnie odpowiada wartościom dyrektywy NameVirtualHost.
28
|
Apache 2. Leksykon k eszonkowy
Należy zauważyć, że hosty wirtualne oparte na nazwach nie działają w przypadku połączeń HTTPS, ponieważ do nawiązania bezpiecznego połączenia potrzebna jest nazwa hosta, której nie można pobrać z nagłówków HTTP, dopóki połączenie nie zostanie nawiązane.
VirtualHost rdzenny
S*
...
Kontener na dyrektywy, które dotyczą tylko określonego hosta wirtualnego. Parametr adres może być adresem IP albo w pełni kwalifikowaną nazwą domenową hosta wirtualnego; może też mieć wartość _default_, która dotyczy każdego adresu IP niewymienionego w innej sekcji hosta wirtualnego. Parametr port umożliwia określenie numeru portu. Zarówno adres, jak i port można ustawić na *, aby dopasować dowolny adres lub port. W przypadku hostów wirtualnych opartych na nazwach, jeśli nie ma żadnej sekcji dopasowującej nazwę lub alias serwera (Server ´Name albo ServerAlias) ani sekcji z wartością _default_, zostanie użyta sekcja zdefiniowana jako pierwsza.
NameVirtualHost rdzenny
S*
NameVirtualHost adres[:port]
Określa adres IP dla kolejnych sekcji hostów wirtualnych opartych na nazwach.
Rozdz ał 2. Środow sko serwera
|
29
ServerAdmin rdzenny
SV
ServerAdmin { adres-email | URL }
Adres e-mail lub URL dołączany do komunikatów o błędach generowanych przez Apache’a.
ServerAlias rdzenny
V*
ServerAlias fqdn ...
Alternatywne nazwy hosta używane w przypadku hostów wirtualnych opartych na nazwach.
ServerName rdzenny
SV
ServerName [schemat://]nazwa[:port]
Nazwa hosta i port używany do tworzenia adresów URL dla przekierowań. Jeśli te wartości nie są określone, nazwa hosta jest ustalana automatycznie na podstawie wyszukiwania adresu IP w DNS, a port pozostaje taki sam jak w pierwotnym żądaniu. Zob. też UseCanonicalName.
ServerPath rdzenny
V
ServerPath ścieżka
Ścieżka URL dla klientów HTTP 1.0, które nie wysyłają nagłówka Host. Żądania zaczynające się od tej ścieżki będą dotyczyły bieżącego hosta wirtualnego.
30
|
Apache 2. Leksykon k eszonkowy
ServerSignature rdzenny
SVDH OFF
ServerSignature { ON | OFF | Email }
Steruje tworzeniem wiersza stopki z adresem serwera w dokumentach generowanych przez serwer, takich jak komunikaty o błędach i listingi katalogów. Jeśli jest ustawiona na Email, adres e-mail określony za pomocą dyrektywy ServerAdmin zostanie dołączony do dokumentu jako łącze mailto:.
ServerTokens rdzenny
S Full
ServerTokens poziom
Określa poziom szczegółów zwracanych w nagłówkach odpowiedzi serwera. Prod[uctOnly]
Tylko nazwa produktu, na przykład Apache. Major
Nazwa produktu i główny numer wersji, na przykład Apache/2.
Minor
Nazwa produktu oraz główny i poboczny numer wersji, na przykład Apache/2.2. Min[imal]
Nazwa produktu i pełny numer wersji, na przykład Apache/ ´2.2.9. OS
Nazwa produktu, pełny numer wersji oraz nazwa systemu operacyjnego, na przykład Apache/2.2.9 (Debian).
Rozdz ał 2. Środow sko serwera
|
31
Full
Nazwa produktu, pełny numer wersji, nazwa systemu operacyjnego oraz informacje o wkompilowanych modułach, na przykład Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/ ´0.9.8g.
UseCanonicalName rdzenny
SVD OFF
UseCanonicalName { ON | OFF | DNS }
Jeśli jest ustawiona na ON, Apache używa nazwy serwera oraz portu określonego za pomocą dyrektywy ServerName, kiedy konstruuje autoreferencyjne adresy URL oraz ustawia zmienne środowiskowe SERVER_NAME i SERVER_PORT. Jeśli jest ustawiona na OFF, Apache używa nazwy serwera pobranej z nagłówka Host (jeśli została określona) oraz numeru portu, z którym klient nawiązał połączenie. Jeśli jest ustawiona na DNS, Apache wykonuje odwrotne wyszukiwanie DNS adresu IP, z którym klient nawiązał połączenie, aby ustalić nazwę serwera, a następnie używa numeru portu, z którym klient nawiązał połączenie.
UseCanonicalPhysicalPort rdzenny
SVD OFF
UseCanonicalPhysicalPort { ON | OFF }
Jeśli jest ustawiona na ON, serwer nigdy nie uwzględnia portu fizycznego (tzn. portu, w którym odebrano żądanie) podczas konstruowania autoreferencyjnych adresów URL.
Konfiguracja sieci Apache nasłuchuje żądań w portach sieciowych określonych za pomocą dyrektywy Listen. Istnieje kilka parametrów, które można zmienić, aby zoptymalizować wydajność połączenia sieciowego. 32
|
Apache 2. Leksykon k eszonkowy
AcceptFilter rdzenny
S*
AcceptFilter protokół filtr
Włącza optymalizacje wywołania accept() specyficzne dla systemu operacyjnego.
AcceptMutex MPM
S default
AcceptMutex { default | metoda }
Zgodność: event, prefork, worker Metoda używana do serializacji żądań w gniazdach sieciowych. Dostępne metody oraz ich względna wydajność zależą od platformy i są wymienione w tabeli 2.1. Tabela 2.1. Metody w dyrektywie AcceptMutex Metoda
Op s
default
Używa ustawienia domyślnego wyb anego podczas kompilacji Używa systemu flock aby zablokować plik zdefiniowany za pomocą dy ektywy LockFile Używa systemu fcntl aby zablokować plik zdefiniowany za pomocą dy ektywy LockFile mplementuje muteks za pomocą semafo ów zgodnych ze standa dem POS X Używa muteksów POS X zdefiniowanych w specyfikacji POS X Th eads (PTh eads) mplementuje muteks za pomocą semafo ów w stylu System V
flock fcntl posixsem pthread sysvsem
Rozdz ał 2. Środow sko serwera
|
33
EnableSendfile rdzenny
SVDH ON
EnableSendfile { ON | OFF }
Zgodność: 2.0.44 i nowsze wersje Określa, czy do transmisji zawartości pliku ma być używane wywołanie systemowe sendfile(). Funkcji tej można używać, kiedy serwer nie musi badać danych w pliku, ale w niektórych okolicznościach lepiej ją wyłączyć.
HostnameLookups rdzenny
SVD OFF
HostnameLookups { ON | OFF | Double }
Określa, czy serwer ma wykonywać wyszukiwania DNS w celu odwzorowania nazw hostów na użytek rejestrowania zdarzeń oraz przekazywania nazw do skryptów CGI i SSI. Jeśli jest ustawiona na double, po każdym udanym odwrotnym wyszukiwaniu DNS wykonywane jest wyszukiwanie zwykłe, aby sprawdzić, czy adres IP pasuje do nazwy hosta. Bez względu na ustawienie tej dyrektywy, kontrola dostępu oparta na nazwie hosta zawsze używa podwójnego wyszukiwania DNS.
KeepAlive rdzenny
SV ON
KeepAlive { ON | OFF }
Włącza trwałe połączenia. Dzięki tej funkcji klient może używać nawiązanego połączenia do zgłaszania kolejnych żądań, co pozwala uniknąć kosztów związanych z tworzeniem oddzielnych połączeń.
34
|
Apache 2. Leksykon k eszonkowy
KeepAliveTimeout rdzenny
SV 15
KeepAliveTimeout sekundy
Limit czasu dla zgłaszania kolejnych żądań przez połączenie trwałe.
MaxKeepAliveRequests rdzenny
S 100
MaxKeepAliveRequests liczba
Maksymalna liczba żądań, które klient może zgłosić przez trwałe połączenie. Zero oznacza brak limitu.
Listen MPM
S*
Listen [adres-IP:]numer-portu [protokół]
Zgodność: wszystkie moduły MPM (wymagane od wersji 2.0) Określa port i adres, pod którym serwer oczekuje na połączenia. Argument protokół jest nowością w wersji 2.1.5 i ma domyślną wartość http dla portu 80 oraz https dla portu 443.
ListenBacklog MPM
S 511
ListenBacklog liczba
Zgodność: wszystkie moduły MPM Maksymalna liczba wpisów w kolejce połączeń obsługiwanej przez system operacyjny. Jeśli połączenia przychodzą szybciej, niż Apache może je przetworzyć, kolejka się przepełnia. System operacyjny odrzuca dalsze żądania, dopóki kolejka jest pełna.
Rozdz ał 2. Środow sko serwera
|
35
ReceiveBufferSize MPM
S 0
ReceiveBufferSize liczba-bajtów
Zgodność: wszystkie moduły MPM Określa rozmiar bufora odbiorczego TCP; zero oznacza, że należy użyć domyślnego ustawienia systemu operacyjnego.
SendBufferSize S MPM domyślne ustawienie systemu operacyjnego SendBufferSize liczba-bajtów
Zgodność: beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker Określa rozmiar bufora nadawczego TCP; zero oznacza, że należy użyć domyślnego ustawienia systemu operacyjnego.
Timeout rdzenny
S 300 sekund, tzn. 5 minut
Timeout sekundy
Limit czasu używany w trzech sytuacjach: między zaakceptowaniem połączenia a odebraniem żądania, między przyjmowanymi pakietami w przypadku żądań POST lub PUT oraz między pakietami potwierdzenia podczas wysyłania odpowiedzi.
TraceEnable rdzenny TraceEnable { ON | OFF | Extended }
Zgodność: 2.0.55 i nowsze wersje
36
|
Apache 2. Leksykon k eszonkowy
S ON
Domyślnie żądania HTTP TRACE są dozwolone; jeśli ta dyrektywa jest ustawiona na OFF, serwer zwraca klientowi komunikat 405 (metoda niedozwolona). Wartość Extended służy do celów testowych; więcej informacji można znaleźć w dokumentacji Apache’a.
Win32DisableAcceptEx MPM
S
Win32DisableAcceptEx
Zgodność: mpm_winnt w wersji 2.0.49 i nowszych Wyłącza użycie wywołania WinSock API AcceptEx() do akceptowania połączeń sieciowych i zamiast niego używa accept(). Może się to przydać, jeśli jakieś produkty sieciowe firm trzecich zakłócają działanie funkcji AcceptEx().
Zarządzanie procesami Apache obsługuje żądania z wykorzystaniem procesów potomnych, wątków albo ich kombinacji. Każdy moduł MPM implementuje nieco inny model, który wykorzystuje mocne strony systemu operacyjnego. Jednak we wszystkich modelach istnieje jeden proces lub wątek, który monitoruje procesy albo wątki przeznaczone do obsługi żądań, zwiększając lub zmniejszając ich pulę w zależności od bieżącego obciążenia. Dyrektywy opisane w tym podrozdziale zapewniają kontrolę nad maksymalnym i minimalnym rozmiarem puli oraz nad innymi aspektami zarządzania procesami.
GracefulShutDownTimeout MPM
S 0
GracefulShutDownTimeout sekundy
Zgodność: event, prefork, worker
Rozdz ał 2. Środow sko serwera
|
37
Liczba sekund, przez które serwer powinien kontynuować działanie i przetwarzanie istniejących połączeń po otrzymaniu sygnału „łagodnego zatrzymania”. Jeśli ten parametr jest ustawiony na zero, serwer zaczeka na zakończenie wszystkich pozostałych żądań.
MaxClients MPM
S 256
MaxClients liczba
Zgodność: beos, event, prefork, worker Maksymalna liczba procesów potomnych, które mogą być uruchomione, a zatem maksymalna liczba żądań, które mogą być przetwarzane jednocześnie.
MaxMemFree MPM
SVDH* 0
MaxMemFree kilobajty
Zgodność: beos, event, mpm_netware, mpm_winnt, prefork, worker Maksymalna ilość wolnej pamięci (w kilobajtach), którą alokator może przetrzymywać bez wywoływania funkcji free(); zero oznacza nieograniczoną ilość.
MaxRequestsPerChild rdzenny
S 0
MaxRequestsPerChild liczba
Zgodność: event, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker Maksymalna liczba połączeń, które może przetworzyć potomny proces serwera, zanim zakończy działanie. Procesy potomne mogą również kończyć działanie w przypadku spadku obciążenia. Zero 38
|
Apache 2. Leksykon k eszonkowy
oznacza nieograniczoną liczbę żądań. Ustawienie tego parametru może złagodzić skutki wycieku pamięci w serwerach, zwłaszcza w przypadku użycia mod_perl albo innych zasobochłonnych modułów, ponieważ zapobiega zużyciu całej pamięci przez proces, który wymknął się spod kontroli.
MaxRequestsPerThread MPM
S 0
MaxRequestsPerThread liczba
Zgodność: beos Maksymalna liczba żądań, które obsłuży pojedynczy wątek serwera przed zakończeniem pracy; zero oznacza brak limitu.
MaxSpareServers MPM
S 10
MaxSpareServers number
Zgodność: prefork Maksymalna liczba bezczynnych procesów potomnych. Jeśli obciążenie serwera spadnie, proces macierzysty nakaże bezczynnym procesom zakończyć działanie.
MaxSpareThreads MPM
S w zależności od modułu
MaxSpareThreads liczba
Zgodność: beos, event, mpm_netware, mpmt_os2, worker Maksymalna liczba bezczynnych wątków. Wartości domyślne: beos — 50, mpm_netware — 100; mpmt_os2 — 10; event oraz worker — 250.
Rozdz ał 2. Środow sko serwera
|
39
MaxThreads MPM
S 2048
MaxThreads liczba
Zgodność: mpm_netware Dozwolona liczba wątków.
MinSpareServers MPM
S 5
MinSpareServers liczba
Zgodność: prefork Minimalna liczba bezczynnych procesów potomnych, które powinny być obecne. Jeśli ich liczba spadnie poniżej tego poziomu, proces macierzysty utworzy nowe, aby dysponować pulą procesów gotowych do przyjmowania połączeń.
MinSpareThreads MPM
S w zależności od modułu
MinSpareThreads liczba
Zgodność: BeOS, event, mpm_netware, mpmt_os2, worker Minimalna liczba bezczynnych wątków. Wartości domyślne: beos — 1; mpm_netware — 10; mpmt_os2 — 5; event i worker — 75.
ServerLimit MPM ServerLimit liczba
Zgodność: event, prefork, worker
40
|
Apache 2. Leksykon k eszonkowy
S
Górny limit konfigurowalnej liczby procesów. Wartość domyślna to 256 w przypadku modułu prefork, a 16 w przypadku modułów event i worker; limity te można zwiększyć powyżej 200 000 dla modułu prefork i powyżej 20 000 dla modułów event i worker bez rekompilowania serwera.
StartServers MPM
S 5
StartServers liczba
Zgodność: event, mpmt_os2, prefork, worker Liczba procesów potomnych tworzonych podczas rozruchu serwera.
StartThreads MPM
S
StartThreads number
Zgodność: beos, mpm_netware Liczba wątków tworzonych podczas rozruchu serwera. Wartość domyślna to 10 w przypadku modułu beos i 75 w przypadku modułu mpm_netware.
ThreadLimit MPM
S
ThreadLimit liczba
Zgodność: mpm_winnt, worker Górny limit konfigurowalnej liczby wątków. Wartość domyślna to 1920 w przypadku modułu mpm_winnt i 64 w przypadku modułu worker; limity te można zwiększyć powyżej 15 000 dla modułu mpm_winnt i powyżej 20 000 dla modułu worker bez rekompilowania serwera. Rozdz ał 2. Środow sko serwera
|
41
ThreadsPerChild MPM
S 50
ThreadsPerChild liczba
Zgodność: mpm_winnt, worker Liczba wątków uruchamianych przez wątkowe wersje Apache’a, na przykład w systemie Windows. Wartość ta ogranicza liczbę połączeń, które mogą być przetwarzane jednocześnie.
ThreadStackSize MPM
S w zależności od platformy
ThreadStackSize liczba
Zgodność: event, mpm_netware, mpm_winnt, worker Określa rozmiar stosu dla wątków, które obsługują połączenia klienckie i wywołują moduły pomagające w przetwarzaniu żądań. Można zwiększyć tę wartość, jeśli Apache załamuje się ze względu na przepełnienie stosu wątków, albo zmniejszyć, aby umożliwić uruchomienie większej liczby wątków.
Ogólne dyrektywy konfiguracyjne Funkcje opcjonalne EnableExceptionHook rdzenny EnableExceptionHook { ON | OFF }
Zgodność: prefork, worker w wersji 2.0.49 i nowszych
42
|
Apache 2. Leksykon k eszonkowy
S OFF
Włącza punkt wejścia, który pozwala zewnętrznemu modułowi podjąć jakąś akcję, gdy proces potomny się załamie. Dyrektywa ta jest dostępna tylko wtedy, gdy Apache zostanie skompilowany z włączoną opcją --enable-exception-hook.
EnableMMAP rdzenny
SVDH (FileInfo) ON
EnableMMAP { ON | OFF }
Określa, czy w celu szybszego dostarczania stron mają być używane mechanizmy odwzorowywania pamięci oferowane przez system operacyjny.
Options rdzenny
SVDH (Options) All
Options [+|-]funkcja ...
Steruje zaawansowanymi funkcjami, które są włączane w określonym kontekście. Opcje zdefiniowane w najbardziej restrykcyjnym kontekście są uwzględniane w całości, chyba że wszystkie są poprzedzone znakiem plusa lub minusa; w takim przypadku funkcje poprzedzone plusem są włączone, minusem — wyłączone, a pozostałe — odziedziczone po kontekście nadrzędnym. None
Nie są włączone żadne funkcje dodatkowe. All
Włączone są wszystkie opcje z wyjątkiem MultiViews. ExecCGI
Wykonywanie skryptów CGI.
FollowSymLinks
Określa, czy Apache ma śledzić dowiązania symboliczne (ignorowana w sekcji ).
Rozdz ał 2. Środow sko serwera
|
43
Includes
Wykonywanie poleceń Server-Side Includes (SSI).
IncludesNOEXEC
Wyłącza polecenie SSI #exec oraz możliwość używania w poleceniu #include nazw plików odnoszących się do skryptów CGI.
Indexes
Określa, czy dla adresów URL, które zostają odwzorowane na katalog bez pliku indeksu, mają być generowane listingi katalogów. MultiViews
Włącza negocjację treści. SymLinksIfOwnerMatch
Dowiązania symboliczne są śledzone tylko wtedy, gdy właściciel dowiązania jest właścicielem docelowego pliku (ignorowana w sekcji
User i Group Dyrektywy User i Group określają konto użytkownika i grupy, które Apache wykorzystuje do przetwarzania żądań. Zasoby wysyłane przez Apache’a muszą być dostępne dla tego użytkownika i grupy, ale zaleca się, aby użytkownik nie miał prawa do odczytu, a już na pewno do zapisu zasobów systemowych.
User MPM
S #-1
User { nazwa-użytkownika | #uid }
Zgodność: beos, mpmt_os2, prefork, worker
44
|
Apache 2. Leksykon k eszonkowy
Nazwa lub identyfikator użytkownika, na którego koncie działa Apache, kiedy przetwarza żądania (w celu zachowania zgodności dyrektywa ta jest rozpoznawana przez moduły MPM beos i mpmt_os2, ale nie przynosi żadnego efektu).
Group MPM
S #-1
Group { nazwa-grupy | #gid }
Zgodność: beos, mpmt_os2, prefork, worker Nazwa lub identyfikator grupy, na której koncie działa Apache, kiedy przetwarza żądania (w celu zachowania zgodności dyrektywa ta jest rozpoznawana przez moduły MPM beos i mpmt_os2, ale nie przynosi żadnego efektu).
Pliki administracyjne W zależności od systemu operacyjnego, Apache używa kilku plików do komunikacji między procesami serwera a programami narzędziowymi. Aby ograniczyć zagrożenia, plików tych nie należy umieszczać w katalogach, które mogą zapisywać wszyscy użytkownicy albo użytkownik lub grupa określeni za pomocą dyrektyw User i Group.
CoreDumpDirectory MPM
S główny katalog serwera
CoreDumpDirectory katalog
Zgodność: beos, event, mpm_winnt, prefork, worker Katalog, w którym Apache będzie zapisywał zrzut pamięci w przypadku nieodwracalnego błędu. Katalog domyślny nie powinien być zapisywalny dla użytkownika określonego za pomocą dyrektywy
Rozdz ał 2. Środow sko serwera
|
45
User, więc w zwykłych okolicznościach plik zrzutu nie będzie
zapisywany. Należy zauważyć, że zrzuty pamięci serwerów SSL mogą zawierać klucze prywatne.
LockFile MPM
S logs/accept.lock
LockFile nazwa-pliku
Zgodność: event, prefork, worker Plik blokady używany w celu serializowania dostępu do przychodzących żądań. Do nazwy pliku dołączany jest identyfikator procesu macierzystego. Ścieżkę należy zmienić, jeśli lokalizacja domyślna nie znajduje się na lokalnym dysku.
PidFile MPM
S logs/httpd.pid
PidFile nazwa-pliku
Zgodność: beos, event, mpm_winnt, mpmt_os2, prefork, worker Plik, w którym zapisywany jest identyfikator głównego procesu serwera. Narzędzie apachectl oczekuje, że plik PID znajduje się w standardowej lokalizacji.
ScoreBoardFile MPM
S logs/apache_status
ScoreBoardFile nazwa-pliku
Zgodność: beos, event, mpm_winnt, prefork, worker Plik używany do przekazywania informacji o stanie między procesem macierzystym a potomnymi. Używany tylko w systemach, które nie obsługują pamięci współdzielonej.
46
|
Apache 2. Leksykon k eszonkowy
Wczytywanie współdzielonych obiektów Moduły mogą być albo wkompilowane w Apache’a, albo skompilowane oddzielnie jako dynamiczne obiekty współdzielone (Dynamic Shared Objects, DSOs), tzn. współdzielone pliki obiektowe w Uniksie albo biblioteki DLL w Windows. Poniższe dyrektywy służą do wczytywania tych plików oraz innych współużytkowanych bibliotek.
LoadFile mod_so (B)
S*
LoadFile nazwa-pliku ...
Wczytuje określone pliki obiektowe lub biblioteki, które mogą zawierać kod wymagany przez moduły.
LoadModule mod_so (B)
S*
LoadModule moduł nazwa_pliku ...
Wczytuje określony moduł DSO przez dowiązanie pliku obiektowego lub biblioteki i dodanie struktury modułu do listy aktywnych modułów.
Limity żądań Limity żądań stanowią zabezpieczenie przed atakami blokady usług. Jeśli żądanie przekracza któryś z limitów, serwer zwraca komunikat o błędzie i nie podejmuje próby obsługi żądania.
LimitInternalRecursion rdzenny
SV 10 dla obu limitów
LimitInternalRecursion liczba liczba ...
Zgodność: 2.0.47 i nowsze wersje Rozdz ał 2. Środow sko serwera
|
47
Zapobiega załamaniu serwera, jeśli wejdzie on w nieskończoną pętlę wewnętrznych przekierowań lub żądań podrzędnych. Pierwszy parametr określa maksymalną liczbę kolejnych wewnętrznych przekierowań; drugi wskazuje, jak głęboko mogą być zagnieżdżone żądania podrzędne. Jeśli zostanie podana jedna wartość, będzie dotyczyć obu limitów.
LimitRequestBody rdzenny
SVDH 0
LimitRequestBody liczba-bajtów
Maksymalna akceptowana długość treści żądania. Zero oznacza brak limitu.
LimitRequestFields rdzenny
S 100
LimitRequestFields liczba
Ogranicza akceptowaną liczbę pól nagłówka żądania.
LimitRequestFieldSize rdzenny
S 8 190
LimitRequestFieldSize liczba-bajtów
Ogranicza akceptowaną długość pojedynczych pól nagłówka żądania.
Określa maksymalny rozmiar (w bajtach) treści żądania XML. Zero oznacza brak limitu.
Limity zasobów procesów podrzędnych Limity te dotyczą procesów tworzonych przez potomne procesy serwera, a nie samych procesów potomnych albo utworzonych przez serwer macierzysty, na przykład programów obsługujących rejestrowanie zdarzeń.
RLimitCPU rdzenny
SVDH domyślne ustawienia systemu operacyjnego
RLimitCPU { sekundy | max } [sekundy | max ]
„Miękki” i „twardy” limit zasobów procesora, wyrażony w sekundach na proces, dla procesów utworzonych przez Apache’a (w tym programów CGI).
RLimitMEM rdzenny
SVDH domyślne ustawienia systemu operacyjnego
RLimitMEM { bajty | max } [bajty | max ]
„Miękki” i „twardy” limit zasobów pamięciowych, wyrażony w bajtach na proces, dla procesów utworzonych przez Apache’a.
RLimitNPROC SVDH rdzenny domyślne ustawienia systemu operacyjnego RLimitNPROC { liczba-procesów | max } [liczba-procesów | max ]
Rozdz ał 2. Środow sko serwera
|
49
„Miękki” i „twardy” limit procesów tworzonych przez Apache’a. Jeśli procesy CGI są uruchamiane z tym samym identyfikatorem użytkownika, którego Apache używa do przetwarzania żądań, limit ten wpłynie na sam serwer.
Szkielet DBD Moduł szkieletu DBD, mod_dbd, został wprowadzony w wersji 2.1 i oferuje scentralizowany interfejs innym modułom, które korzystają z baz danych SQL. Moduł mod_dbd działa jako fronton bazodanowego interfejsu API udostępnianego przez APR. Kiedy jest używany w połączeniu z wątkowym modułem MPM, zapewnia pule połączeń; w przypadku niewątkowych modułów MPM korzysta z trwałych połączeń. W Apache’u 2.2 jedynym standardowym modułem używającym mod_dbd jest mod_authn_dbd, który pobiera informacje uwierzytelniające, przechowywane w bazach danych SQL. Odpowiedni moduł autoryzacyjny nie został dołączony do tej wersji, ale ma się znaleźć w następnej.
DBDExptime mod_dbd (E)
SV 300 sekund, tzn. 5 minut
DBDExptime sekundy
Zgodność: tylko wątkowe moduły MPM Czas, przez który podtrzymywane są bezczynne połączenia, kiedy zostanie przekroczona maksymalna liczba połączeń.
DBDKeep mod_dbd (E) DBDKeep liczba
Zgodność: tylko wątkowe moduły MPM
50
|
Apache 2. Leksykon k eszonkowy
SV 2
Podstawowa liczba połączeń, które powinny być podtrzymywane, nawet jeśli nie są używane.
DBDMax mod_dbd (E)
SV 10
DBDMax liczba
Zgodność: tylko wątkowe moduły MPM „Twardy” górny limit liczby połączeń na proces.
DBDMin mod_dbd (E)
SV 1
DBDMin liczba
Zgodność: tylko wątkowe moduły MPM Minimalna liczba połączeń na proces.
DBDParams mod_dbd (E)
SV*
DBDParams łańcuch
Parametry łańcucha połączenia wymagane przez sterownik. Interpretacja łańcucha zależy od sterownika: MySQL Rozdzielona przecinkami lista par parametr=wartość z następującymi informacjami: host, port, dbname, sock, user, pass. Oracle Rozdzielona przecinkami lista par parametr=wartość z następującymi informacjami: server, dbname, user, pass.
Rozdz ał 2. Środow sko serwera
|
51
PostgreSQL Przekazywany bezpośrednio do biblioteki klienckiej PostgreSQL. SQLite2 Nazwa pliku SQLite oraz liczba całkowita, oddzielone przecinkiem. Biblioteka kliencka SQLite2 ignoruje liczbę całkowitą. SQLite3 Przekazywany bezpośrednio do biblioteki klienckiej SQLite3.
DBDPersist mod_dbd (E)
SV ON
DBDPersist { ON | OFF }
Jeśli jest ustawiona na OFF, połączenia nie są podtrzymywane, ale zamykane po zakończeniu zapytania. Jest to przydatne przede wszystkim podczas debugowania.
DBDPrepareSQL mod_dbd (E)
SV*
DBDPrepareSQL "instrukcja" etykieta
Przygotowuje instrukcję podczas rozruchu i przypisuje jej etykietę. Zapewnia to optymalną wydajność często wykonywanych instrukcji SQL.
DBDDriver mod_dbd (E) DBDriver nazwa
Wybiera sterownik APR bazy danych.
52
|
Apache 2. Leksykon k eszonkowy
SV
Szkielet LDAP Szkielet LDAP został wprowadzony w wersji 2.0.41 i oferuje scentralizowany interfejs innym modułom, które korzystają z serwerów LDAP, działając jako fronton interfejsu API LDAP udostępnianego przez APR. Oferuje pule połączeń i buforowanie wyników. Jest używany przez moduł uwierzytelniająco-autoryzujący mod_ ´authnz_ldap.
LDAPCacheEntries mod_ldap (E)
S 1 024
LDAPCacheEntries liczba
Określa maksymalną liczbę wyników wyszukiwania (wiązania), które będą buforowane. Ustawienie wartości zero powoduje wyłączenie buforowania.
LDAPCacheTTL mod_ldap (E)
S 600 sekund, tzn. 10 minut
LDAPCacheTTL sekundy
Określa, jak długo będą przechowywane wyniki wyszukiwania.
LDAPConnectionTimeout mod_ldap (E)
S 10 sekund
LDAPConnectionTimeout sekundy
Czas (w sekundach), przez który moduł próbuje połączyć się z serwerem LDAP. Jeśli nie uda się nawiązać połączenia w tym okresie, moduł spróbuje połączyć się z zapasowym serwerem LDAP, pod warunkiem że został on określony; w przeciwnym razie zostanie zwrócony błąd.
Rozdz ał 2. Środow sko serwera
|
53
LDAPOpCacheEntries mod_ldap (E)
S 1 024
LDAPOpCacheEntries liczba
Liczba pozycji bufora w operacjach porównania LDAP; wartość zero wyłącza buforowanie operacji.
LDAPOpCacheTTL mod_ldap (E)
S 600 sekund, tzn. 10 minut
LDAPOpCacheTTL sekundy
Czas (w sekundach), przez który pozycje w buforze operacji pozostają ważne.
LDAPSharedCacheFile mod_ldap (E)
S
LDAPSharedCacheFile nazwa-pliku
Pełna ścieżka do pliku bufora w pamięci współdzielonej. Jeśli nie jest określona, zostanie użyta anonimowa pamięć współdzielona, pod warunkiem że dana platforma ją obsługuje.
LDAPSharedCacheSize mod_ldap (E)
102 400
S bajtów
LDAPSharedCacheSize liczba-bajtów
Określa rozmiar bufora w pamięci współdzielonej. Jeśli zostanie ustawiona na zero, buforowanie w pamięci współdzielonej nie będzie używane.
54
|
Apache 2. Leksykon k eszonkowy
LDAPTrustedClientCert mod_ldap (E)
SVDH
LDAPTrustedClientCert typ { katalog | nazwa-pliku | pseudonim } [hasło]
Ścieżka do katalogu, nazwa pliku lub pseudonim certyfikatu klienta używanego podczas nawiązywania połączenia SSL lub TLS z serwerem LDAP. Parametr typ określa typ certyfikatu i może przyjmować jedną z wartości wymienionych w tabeli 2.2. Tabela 2.2. Typy certyfikatów LDAP Typ
Op s
CERT_BASE64
Ce tyfikat kliencki w fo macie PEM Bina ny ce tyfikat kliencki w fo macie DER Bina ny ce tyfikat kliencki w fo macie DER Bina ny kluczy p ywatny w fo macie DER Klucz p ywatny w fo macie PEM
CERT_DER CERT_NICKNAME KEY_DER KEY_BASE64
LDAPTrustedGlobalCert mod_ldap (E)
S
LDAPTrustedGlobalCert typ nazwa-pliku [hasło]
Ścieżka do katalogu lub nazwa pliku z certyfikatami zaufanych urzędów CA i (lub) ogólnosystemowymi certyfikatami klienckimi, których moduł mod_ldap powinien używać podczas nawiązywania połączeń SSL lub TLS z serwerem LDAP. Parametr typ określa typ certyfikatu. Obsługiwane typy są wymienione w tabeli 2.3; zależą one od używanego pakietu narzędziowego LDAP.
Rozdz ał 2. Środow sko serwera
|
55
Tabela 2.3. Typy globalnych certyfikatów LDAP Typ
Op s
CA_BASE64
Ce tyfikat CA w fo macie PEM Bina ny ce tyfikat CA w fo macie DER Plik bazy danych ce t7 db z ce tyfikatami CA w fo macie Netscape Plik bazy danych secmod w fo macie Netscape Ce tyfikat kliencki w fo macie PEM Bina ny ce tyfikat kliencki w fo macie DER Plik bazy danych key3 db z ce tyfikatami klienckimi w fo macie Netscape Bina ny ce tyfikat kliencki w fo macie DER Ce tyfikat kliencki w fo macie PKCS#12 (Novell SDK) Bina ny klucz p ywatny w fo macie DER Klucz p ywatny w fo macie PEM Klucz p ywatny w fo macie PKCS#12 (Novell SDK)
Określa wymagany poziom szyfrowania połączenia z serwerem LDAP. NONE
Szyfrowanie nie jest wymagane.
SSL
Używa połączenia ldaps w domyślnym porcie 636. TLS
Używa szyfrowania STARTTLS w połączeniu ldap w domyślnym porcie 389.
56
|
Apache 2. Leksykon k eszonkowy
Jeśli adres URL serwera LDAP określony przez moduł kliencki używa schematu ldaps, to tryb jest zawsze ustawiany na SSL, a wartość tej dyrektywy jest ignorowana. Jeśli pakiet narzędziowy LDAP nie obsługuje określonego trybu, połączenie z serwerem LDAP nie powiedzie się.
LDAPVerifyServerCert mod_ldap (E)
S ON
LDAPVerifyServerCert { ON | OFF }
Ustawienie ON wymusza weryfikację certyfikatu serwera LDAP podczas nawiązywania połączenia SSL z serwerem.
Rozdz ał 2. Środow sko serwera
|
57
Rozdział 3. Odwzorowywanie adresów URL Odwzorowywanie lub translacja adresów URL to pierwszy spośród podstawowych etapów obsługi żądania. Późniejsze etapy, takie jak kontrola dostępu i ustalanie typu treści, operują na odwzorowanym adresie URL.
Wstępna konfiguracja środowiska Moduł mod_setenvif jest wywoływany przed translacją adresu URL w kontekstach serwera głównego i wirtualnego oraz po translacji w sekcjach katalogów oraz w plikach .htaccess. W tym momencie dostępne są tylko wartości wiersza żądania oraz nagłówków HTTP. Moduł mod_setenvinf ustawia zmienne środowiskowe na podstawie tych wartości; zmienne są z kolei często używane do przekształcania adresów URL, uwierzytelniania, warunkowego rejestrowania zdarzeń oraz innych operacji warunkowych. Istnieje kilka specjalnych zmiennych środowiskowych, które — jeśli są ustawione — modyfikują odpowiedź serwera, zwłaszcza w celu obsłużenia przeglądarek zawierających znane usterki. Moduł mod_proxy definiuje kolejne zmienne specjalne związane z pośredniczeniem; są one opisane w rozdziale 9. downgrade-1.0
Wymusza traktowanie żądania jako HTTP/1.0. force-gzip
Wymusza kompresję danych wyjściowych, jeśli aktywny jest filtr DEFLATE.
force-no-vary
Wymusza usunięcie nagłówków Vary z odpowiedzi (implikuje force-response-1.0). force-response-1.0
Wymusza odesłanie odpowiedzi HTTP/1.0. 58
|
Apache 2. Leksykon k eszonkowy
gzip-only-text/html
Jeśli ta wartość jest ustawiona na 1, wyłącza kompresję typów treści innych niż text/html.
no-gzip
Wyłącza kompresowanie danych wyjściowych. nokeepalive
Wyłącza podtrzymywanie połączeń.
prefer-language
Wskazuje preferowany język, który ma pierwszeństwo przed językiem ustalonym w procesie negocjacji treści oraz preferencjami programu klienckiego.
redirect-carefully
Wyłącza przekierowania żądań innych niż GET i dotyczących katalogów, które nie zawierają końcowego ukośnika. suppress-error-charset
Nakazuje Apache’owi pomijać zestaw znaków w przypadku przekierowywania żądań.
Jeśli wczytany jest moduł mod_unique_id, zmienna środowiskowa UNIQUE_ID jest ustawiana na globalnie unikatowy identyfikator dla każdego żądania.
Ustawia zmienną środowiskową, jeśli wartość atrybutu pasuje do wyrażenia regularnego. Atrybutem może być atrybut żądania (jeden z poniższej listy), pole nagłówka żądania albo zmienna środowiskowa ustawiona za pomocą wcześniejszej dyrektywy typu SetEnvIf.
Rozdz ał 3. Odwzorowywan e adresów URL
|
59
Remote_Host
Nazwa hosta klienta, jeśli jest dostępna; w przeciwnym razie jego adres IP.
Remote_Addr
Adres IP klienta. Server_Addr
Adres IP, pod którym otrzymano żądanie (2.0.43 i nowsze wersje).
Request_Method
Metoda HTTP użyta w żądaniu. Request_Protocol
Nazwa i wersja protokołu użytego w żądaniu.
Request_URI
Część adresu URL następująca po komponentach schematu i nazwy hosta. Jeśli nazwa zmiennej jest poprzedzona wykrzyknikiem (!), zmienna zostanie usunięta; w przeciwnym razie zostanie ustawiona na określoną wartość albo na 1, jeśli nie podano wartości.
Działa tak samo jak dyrektywa BrowserMatch, ale dopasowywanie wzorca odbywa się bez uwzględniania wielkości liter.
Podstawowa translacja adresów URL Moduł rdzenny przeprowadza tylko proste odwzorowywanie adresów URL na nazwy plików, dołączając część lokalną adresu URL do głównego katalogu dokumentów. Inne moduły oferują bardziej zaawansowane sposoby translacji.
DocumentRoot rdzenny
SV w zależności od ustawień kompilacji
DocumentRoot katalog
Katalog najwyższego poziomu na dokumenty WWW. Żądania dokumentów, które nie zostaną przekształcone przez inne dyrektywy, są odwzorowywane na nazwy plików przez dołączenie żądanej ścieżki do tego katalogu.
AcceptPathInfo rdzenny
SVDH (FileInfo) Default
AcceptPathInfo { ON | OFF | Default }
Zgodność: 2.0.30 i nowsze wersje
Rozdz ał 3. Odwzorowywan e adresów URL
|
61
Jeśli jest ustawiona na OFF, żądania, które nie zostaną dokładnie odwzorowane na istniejące pliki, są odrzucane z błędem 404 (Not Found). Jeśli jest ustawiona na ON, akceptowane są żądania, które można odwzorować na pliki i które zawierają dodatkowe informacje o ścieżce. Jeśli jest ustawiona na Default, odpowiedź na takie żądania zależy od procedury obsługi odpowiedzialnej za ich przetwarzanie.
AllowEncodedSlashes rdzenny
SV OFF
AllowEncodedSlashes { ON | OFF }
Zgodność: 2.0.46 i nowsze wersje Określa, czy adresy URL z zakodowanymi ukośnikami (%2F w przypadku ukośnika prawego i %5C w przypadku lewego) są dozwolone, czy też odrzucane z błędem 404 (Not Found). Nie ma wpływu na dekodowanie zakodowanych ukośników.
Aliasy i przekierowania Moduły mod_alias i mod_userdir zapewniają alternatywne odwzorowania.
Alias mod_alias (B)
SV*
Alias prefiks-adresu-url prefiks-rzeczywistej-ścieżki
Określa odwzorowania adresów URL na nazwy plików. Jeśli zdekodowany adres URL dokumentu pasuje do prefiksu URL, prefiks jest usuwany i zastępowany prefiksem rzeczywistej ścieżki.
62
|
Apache 2. Leksykon k eszonkowy
AliasMatch mod_alias (B)
SV*
AliasMatch wyr-regularne zastępcza-ścieżka
Określa odwzorowania adresów URL na nazwy plików z wykorzystaniem wyrażeń regularnych. Podłańcuchy dopasowane przez podwyrażenia w nawiasach można interpolować do zastępczej ścieżki, podając numer podwyrażenia poprzedzony znakiem dolara ($).
Odwzorowuje pasujące adresy URL na nowe lokalizacje, zwracając klientowi komunikat o przekierowaniu. Parametr status może mieć jedną z następujących wartości: permanent
Zwraca odpowiedź 301 (Moved Permanently), która wskazuje, że dokument został trwale przeniesiony. temp
Zwraca odpowiedź 302 (Found), która wskazuje, że zasób został tymczasowo przeniesiony. seeother
Zwraca odpowiedź 303 (See Other), która wskazuje, że zasób został zastąpiony.
gone
Zwraca odpowiedź 410 (Gone), która wskazuje, że zasób został trwale usunięty (w takim przypadku należy pominąć argument nowy-prefiks).
Jeśli status nie jest określony, serwer generuje komunikat o tymczasowym przeniesieniu. Rozdz ał 3. Odwzorowywan e adresów URL
|
63
RedirectMatch mod_alias (B)
SVDH* (FileInfo)
RedirectMatch [status] wyr-regularne nowy-url
Odwzorowuje adres URL na inny adres URL z wykorzystaniem wyrażenia regularnego. Podłańcuchy dopasowane przez podwyrażenia w nawiasach można interpolować do nowego adresu URL, podając numer podwyrażenia poprzedzony znakiem dolara ($).
RedirectPermanent mod_alias (B)
SVDH* (FileInfo)
RedirectPermanent ścieżka-url nowy-url
Generuje odpowiedź o trwałym przeniesieniu — 301 (Moved Permanently) — dla pasujących adresów URL.
RedirectTemp mod_alias (B)
SVDH* (FileInfo)
RedirectTemp ścieżka-url nowy-url
Generuje odpowiedź o tymczasowym przeniesieniu — 302 (Found) — dla pasujących adresów URL.
ScriptAlias mod_alias (B)
SV*
ScriptAlias prefiks-ścieżki-url katalog-skryptów
Odwzorowuje prefiks-ścieżki-url na katalog-skryptów i przypisuje mu procedurę obsługi cgi-script, przez co pasujące adresy URL są traktowane jak żądania skryptów URL.
64
|
Apache 2. Leksykon k eszonkowy
ScriptAliasMatch mod_alias (B)
SV*
ScriptAliasMatch wyr-regularne katalog-skryptów
Określa odwzorowanie adresów URL na skrypty CGI z wykorzystaniem wyrażenia regularnego. Podłańcuchy dopasowane przez podwyrażenia w nawiasach można interpolować do katalogu skryptów, podając numer podwyrażenia poprzedzony znakiem dolara ($).
Żądania katalogów Moduł mod_dir obsługuje żądania, które zostały odwzorowane na katalogi. Nie ma to związku z automatycznym generowaniem indeksów katalogów, które jest obsługiwane przez moduł mod_autoindex.
DirectoryIndex mod_dir (B)
SVDH* (Indexes) index.html
DirectoryIndex lokalny-url ...
Wymienia zasoby, których należy szukać, kiedy żądanie zostanie odwzorowane na nazwę katalogu. Używany jest pierwszy znaleziony zasób. Jeśli nie można znaleźć żadnego z zasobów, a aktywny jest moduł mod_autoindex i ustawiona opcja Indexes, serwer automatycznie generuje listing katalogu.
DirectorySlash mod_dir (E)
SVDH (Indexes) ON
DirectorySlash { ON | OFF }
Zgodność: 2.0.51 i nowsze wersje
Rozdz ał 3. Odwzorowywan e adresów URL
|
65
Jeśli jest ustawiona na ON, żądania odwzorowane na katalog, które nie są zakończone ukośnikiem, zostaną przekierowane pod ten sam adres URL z dołączonym ukośnikiem. Zapewnia to prawidłowe działanie automatycznych indeksów katalogów i względnych adresów URL.
Przekształcanie adresów URL z wykorzystaniem modułu mod_rewrite Moduł mod_rewrite to zaawansowany, oparty na dopasowywaniu wzorców mechanizm do modyfikowania adresów URL. Pozwala on określić złożone reguły przekształcania adresów za pomocą dyrektyw RewriteRule i RewriteCond. Dyrektywy te umożliwiają interpolowanie dopasowanych podwyrażeń, zmiennych CGI i innych informacji do łańcuchów zastępczych i warunkowych, jak pokazano w tabeli 3.1. Tabela 3.1. Informacje, które mogą być interpolowane Konstrukcja
Rozw n ęc e
$n
Odwołanie wsteczne do n tej g upy we wzo cu RewriteRule
%n %{zmn} %{ENV:zmn} %{HTTP:nagłówek} %{LA-F:zmn}
%{LA-U:zmn}
66
|
Odwołanie wsteczne do n tej g upy w ostatnio dopasowanym wzo cu RewriteCond Wa tość ok eślonej zmiennej CG Wa tość ok eślonej zmiennej ś odowiskowej Wa tość ok eślonego nagłówka TTP Wyp zedzające wyszukiwanie pliku wykonuje wewnęt zne żądanie na podstawie nazwy pliku aby ok eślić końcową wa tość danej zmiennej Wyp zedzające wyszukiwanie ad esu URL wykonuje wewnęt zne żądanie na podstawie ad esu URL aby ok eślić końcową wa tość danej zmiennej
Apache 2. Leksykon k eszonkowy
Tabela 3.1. Informacje, które mogą być interpolowane — ciąg dalszy Konstrukcja
Rozw n ęc e
${odwz:klucz[|dm]}
Wa tość zw ócona p zez ok eśloną funkcję odwzo owującą (tylko w dy ektywie RewriteRule) Pa amet klucz to wa tość któ ą należy wyszukać zwykle inte polowana Pa amet dm to wa tość domyślna któ ej należy użyć jeśli wyszukiwanie zawiedzie
Moduł mod_rewrite, pozwala stosować w dyrektywach RewriteCond i RewriteRule standardowe zmienne CGI, a także dodatkowe zmienne wymienione w tabeli 3.2. Tabela 3.2. Dodatkowe zmienne mod_rewrite Zm enna
Op s
TIME
Bieżąca data i godzina Bieżący ok Bieżący miesiąc Bieżący dzień miesiąca Godzina bieżącego dnia Minuty bieżącej godziny Sekundy bieżącej minuty Bieżący dzień tygodnia
Bazowy adres URL do transformacji poszczególnych katalogów.
RewriteCond mod_rewrite (E)
SVDH* (FileInfo)
RewriteCond łańcuch [!]warunek [[znaczniki]]
Rozdz ał 3. Odwzorowywan e adresów URL
|
67
Określa warunek dopasowywania dla następnej dyrektywy RewriteRule. Parametr string może zawierać sekwencje interpolowane. Parametr warunek może być wyrażeniem regularnym albo jedną z opcji wymienionych w tabeli 3.3. Tabela 3.3. Warunki obsługiwane przez dyrektywę RewriteCond Warunek
Op s
-d
Pa amet łańcuch jest katalogiem Pa amet łańcuch jest zwykłym plikiem Pa amet łańcuch jest niepustym zwyk ym plikiem Pa amet łańcuch jest dowiązaniem symbolicznym Pa amet łańcuch jest pop awnym i dostępnym plikiem Pa amet łańcuch jest pop awnym i dostępnym ad esem URL Pa amet łańcuch jest identyczny z pa amet em łańcuch2 Pa amet łańcuch jest leksykog aficznie mniejszy niż łańcuch2 Pa amet łańcuch jest leksykog aficznie większy niż łańcuch2
-f -s -l -F -U =łańcuch2 <łańcuch2 >łańcuch2
Jako trzeci argument można podać w nawiasie kwadratowym rozdzieloną przecinkami listę znaczników, w postaci pełnej lub skróconej. Znaczniki opisano w tabeli 3.4. Tabela 3.4. Znaczniki w dyrektywie RewriteCond Znaczn k
Op s
{ NC | nocase }
Po ównuje łańcuchy bez uwzględniania wielkości lite Jeśli wa unek używa nagłówka TTP nie dodaje go do nagłówka Vary odpowiedzi Łączy bieżący wa unek z następnym za pomocą logicznej ope acji OR (zwykle wa unki są łączone za pomocą ope acji AND)
{ NV | novary } { OR | ornext }
RewriteEngine mod_rewrite (E)
SVDH (FileInfo)
RewriteEngine { ON | OFF }
Włącza lub wyłącza mechanizm przekształcania adresów. 68
|
Apache 2. Leksykon k eszonkowy
OFF
RewriteLock mod_rewrite (E)
S
RewriteLock nazwa-pliku
Plik blokady używany w celu synchronizowania dostępu do map typu prg.
RewriteLog mod_rewrite (E)
SV
RewriteLog { nazwa-pliku | "|polecenie" }
Nazwa pliku dziennika używana przez mechanizm przekształcania. Jeśli argument zaczyna się od pionowej kreski (|), jego pozostała część jest traktowana jak wiersz polecenia. Polecenie jest wykonywane i otrzymuje na standardowym wejściu komunikaty o błędach przekształcania.
RewriteLogLevel mod_rewrite (E)
SV 0
RewriteLogLevel poziom
Określa szczegółowość rejestrowanych informacji w skali od zera do dziewięciu. Zero wyłącza rejestrowanie, a poziomy wyższe niż drugi przydają się podczas rozwiązywania problemów, ale mogą mieć negatywny wpływ na wydajność.
RewriteMap mod_rewrite (E)
SV*
RewriteMap nazwa-mapy typ-mapy:źródło-mapy
Definiuje mapę, której można używać w funkcjach odwzorowujących w regułach zastępujących łańcuchy. Obsługiwane są następujące typy map:
Rozdz ał 3. Odwzorowywan e adresów URL
|
69
txt:plik
Parametr plik jest plikiem tekstowym; każdy wiersz zawiera parę klucz-wartość rozdzieloną znakiem odstępu. rnd:plik
Parametr plik jest plikiem tekstowym; każdy wiersz zawiera klucz i sekwencję wartości rozdzielonych pionową kreską (|). Jedna z tych wartości jest wybierana losowo. dbm:plik
Parametr plik jest zakodowanym plikiem DBM. prg:program
Parametr program jest programem uruchamianym podczas rozruchu serwera. Otrzymuje on klucze jako łańcuchy zakończone znakiem nowego wiersza na standardowym wejściu i dla każdego z nich zwraca odpowiednią wartość na standardowym wyjściu. int:funkcja
Parametr funkcja jest jedną z następujących wewnętrznych funkcji: toupper, tolower, escape lub unescape.
RewriteOptions mod_rewrite (E)
SVDH (FileInfo)
RewriteOptions opcja
Jedyna dostępna opcja to inherit, która oznacza, że hosty wirtualne dziedziczą środowisko po głównym serwerze, a pliki konfiguracyjne katalogów dziedziczą je po katalogach nadrzędnych.
RewriteRule mod_rewrite (E)
SVDH* (FileInfo)
RewriteRule [!]wzorzec zamiennik [[znaczniki]]
70
|
Apache 2. Leksykon k eszonkowy
Porównuje bieżący adres URL z wyrażeniem regularnym wzorzec. Jeśli wzorzec pasuje (albo nie pasuje — jeżeli jest poprzedzony wykrzyknikiem) i spełnione są uprzednio określone warunki, dyrektywa zastępuje go parametrem zamiennik, interpolując specjalnie oznaczone konstrukcje. Zamiennikiem może być znak „-”. W takim przypadku nie dochodzi do podstawienia wartości, ale sprawdzane są kolejne reguły w łańcuchu. Jako trzeci argument można podać w nawiasie kwadratowym rozdzieloną przecinkami listę znaczników, w postaci pełnej lub skróconej. Znaczniki opisano w tabeli 3.5. Tabela 3.5. Znaczniki w dyrektywie RewriteRule Znaczn k
Op s
{ C | chain }
Łączy bieżącą egułę w łańcuch z następną egułą Ustawia zmienną ś odowiskową Kończy p zetwa zanie ze statusem 403 (Fo bidden) Zw aca status 410 (Gone) P zestaje stosować eguły p zekształcania Zaczyna od początku stosować egu y dla bieżącego ad esu URL Dopasowuje wzo zec bez uwzględniania wielkości lite Pomija egułę w p zypadku p zetwa zania wewnęt znego żądania pod zędnego P zekazuje żądanie do modułu mod_proxy. P zekazuje wynik do następnej p ocedu y obsługi Dołącza wynik do istniejącego łańcucha zapytania Wymusza p zekie owanie Pomija n eguł Ustawia ok eślony typ M ME
{ E | env }=zmn:wartość { F | forbidden } { G | gone } { L | last } { N | next } { NC | nocase } { NS | nosubreq } { P | proxy } { PT | passthrough } { QSA | qsappend } { R | redirect }[=kod] { S | skip }=n { T | type }=typ
Rozdz ał 3. Odwzorowywan e adresów URL
|
71
Dokumenty z negocjacją treści Negocjacja treści umożliwia wybranie najlepszego wariantu zasobu dostępnego w wielu reprezentacjach, zależnie od wartości nagłówków Accept-type żądania HTTP. Dostępne warianty mogą być ustalane automatycznie, jeśli żądany zasób nie istnieje, a w katalogu włączona jest opcja MultiViews. Warianty i ich atrybuty można również określić ręcznie w pliku mapy typów, jeśli adres URI żądania wskazuje plik mapy, a procedura obsługi jest ustawiona na type-map. Plik mapy typów zawiera kilka „zwrotek” z rekordami nagłówków (takich jak Content-Type i Content-Encoding), które definiują atrybuty wariantu. Nagłówek URI określa ścieżkę wariantu względem pliku mapy.
CacheNegotiatedDocs mod_negotiation (B)
SV OFF
CacheNegotiatedDocs { ON | OFF }
Umożliwia buforowanie dokumentów z negocjacją treści przez serwery proxy. Dotyczy tylko żądań HTTP/1.0.
LanguagePriority mod_negotiation (B)
SVDH (FileInfo)
LanguagePriority język-MIME ...
Określa pierwszeństwo (w kolejności malejącej) wariantów językowych, kiedy dokument jest wybierany przez opcję MultiViews, a klient nie określa preferencji za pomocą nagłówka HTTP Accept-Language.
Zgodność: 2.0.30 i nowsze wersje Określa sposób wyboru języka. Jeśli podano opcję Prefer, a przeglądarka określi wiele akceptowalnych i dostępnych języków z jednakowym priorytetem, zostanie wybrany pierwszy język wymieniony w dyrektywie LanguagePriority. Jeśli podano opcję Fallback i nie jest dostępny żaden akceptowalny język, zostanie wybrany pierwszy język wymieniony w dyrektywie Language ´Priority.
Katalogi użytkowników Moduł mod_userdir pozwala użytkownikom na tworzenie własnych katalogów WWW. Są one identyfikowane przez ścieżki zaczynające się od elementu ~nazwa-użytkownika.
Określa sposób obsługi dokumentów specyficznych dla użytkowników (ze ścieżkami URL zaczynającymi się od elementu ~nazwa´użytkownika). Dyrektywa ta pełni kilka różnych funkcji, zależnie od wartości jej pierwszego argumentu: Słowo kluczowe DISABLED bez żadnych nazw użytkowników Translacja nazw użytkowników na katalogi jest wyłączona, z wyjątkiem tych nazw użytkowników, które są jawnie wymienione. Rozdz ał 3. Odwzorowywan e adresów URL
|
73
Słowo kluczowe DISABLED, po którym następuje lista nazw użytkowników Nazwy użytkowników nie są tłumaczone, nawet jeśli pojawiają się w dyrektywie UserDir ENABLED. Słowo kluczowe ENABLED, po którym następuje lista nazw użytkowników Wymienione nazwy użytkowników będą tłumaczone, chyba że są jawnie wyłączone. Względna nazwa katalogu Ścieżka URL następująca po elemencie ~nazwa_użytkownika zostanie odwzorowana na odpowiedni podkatalog macierzystego katalogu użytkownika. Bezwzględna ścieżka albo adres URL zawierający gwiazdkę (*) Gwiazdka zostanie zastąpiona nazwą użytkownika. Jeśli nie podano gwiazdki, nazwa użytkownika zostanie dołączona do ścieżki. Część adresu URL następująca po elemencie ~nazwa_użytkownika zostanie dołączona do ścieżki.
Poprawianie błędnie wpisanych adresów URL Moduł mod_speling (sic!) próbuje zrealizować żądania nieistniejących plików, sprawdzając, czy istnieje podobny plik, którego nazwa różni się tylko wielkością liter albo pojedynczym znakiem. Jeśli zostanie dopasowany więcej niż jeden plik, klient otrzymuje listę plików do wyboru. Warto podkreślić, że włączenie tego modułu ma negatywny wpływ na wydajność, a co gorsza, może spowodować wysyłanie niezamierzonych plików.
CheckCaseOnly mod_speling (E)
SVDH (Options) OFF
CheckCaseOnly { ON | OFF }
Ogranicza moduł mod_speling do dopasowywania plików, których nazwy różnią się tylko wielkością poszczególnych liter.
74
|
Apache 2. Leksykon k eszonkowy
CheckSpelling mod_speling (E)
SVDH (Options) OFF
CheckSpelling { ON | OFF }
Pozwala, aby żądania odwzorowane na nieistniejące pliki dopasowywały istniejące pliki, których nazwy różnią się wielkością liter i mogą zawierać pojedynczy wstawiony, usunięty, przestawiony lub niewłaściwy znak.