Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
Apache. Receptury.
Wydanie II
Autor: Rich Bowen, Ken Coar
ISBN: 978-83-246-1549-0
Solutions and Examples for Apache
Format: 168x237, stron: 328
Czy wiesz, jaki serwer HTTP jest najpopularniejszy w sieci?
W³aœnie tak, jest to Apache! W lipcu 2008 roku jego udzia³ w rynku wynosi³ blisko 50%
(wed³ug Netcraft). Historia tego serwera siêga roku 1995, kiedy ukaza³a siê jego
pierwsza oficjalna wersja, oznaczona numerem 0.6.2. Cechy, które zadecydowa³y
o sukcesie tego rozwi¹zania, to bezpieczeñstwo, skalowalnoœæ, wielow¹tkowoœæ
i obs³uga ró¿norodnych jêzyków skryptowych.
Dziêki ksi¹¿ce
„
Apache. Receptury
”
zapoznasz siê z gotowymi przepisami
na rozwi¹zanie ciekawych, specyficznych oraz intryguj¹cych problemów. Nauczysz siê
instalowaæ serwer z ró¿nych Ÿróde³ oraz na ró¿nych platformach. Dowiesz siê, w jaki
sposób zwiêkszyæ jego bezpieczeñstwo, jak uruchomiæ serwery wirtualne oraz poprawiæ
wydajnoœæ Apache. Autorzy ksi¹¿ki poka¿¹ Ci, jak uruchomiæ obs³ugê jêzyków
skryptowych, tak aby serwowane strony sta³y siê dynamiczne. Ca³a wiedza zostanie
przedstawiona w sprawdzony w tej serii sposób: problem – rozwi¹zanie – analiza.
• Sposoby instalacji serwera Apache
• Dodawanie funkcjonalnoœci dziêki modu³om
• Mo¿liwoœci rejestracji zdarzeñ
• Konfiguracja serwerów wirtualnych
• Wykorzystanie aliasów, przekierowañ oraz przepisañ (mod_rewrite)
• Zarz¹dzanie dostêpem do serwowanych zasobów
• Bezpieczeñstwo serwera Apache
• Wykorzystanie szyfrowanej transmisji - protokó³ SSL
• Zapewnienie wydajnoœci
• Wykorzystanie jêzyków skryptowychOto ksi¹¿ka z najlepszymi przepisami
na Apache!
3
Spis treci
Przedmowa ..............................................................................................................................11
1. Instalacja
serwera ....................................................................................................... 19
1.1.
Instalacja serwera z pakietów dystrybucji Red Hat Linux
20
1.2.
Instalacja serwera z pakietów dystrybucji Debian
21
1.3.
Instalacja serwera Apache w systemie Windows
22
1.4.
Pobieranie plików ródowych serwera Apache
27
1.5.
Budowa serwera Apache z kodu ródowego
29
1.6.
Instalacja serwera Apache za pomoc programu ApacheToolbox
30
1.7. Uruchamianie,
zatrzymywanie oraz ponowne uruchamianie serwera Apache
32
1.8.
Usunicie serwera Apache
34
1.9.
Której wersji serwera Apache uy
35
1.10. Uaktualnienie serwera przy uyciu config.nice
37
1.11. Uruchamianie serwera Apache w momencie startu systemu operacyjnego
38
1.12. Przydatne opcje konfiguracyjne
39
1.13. Odnajdywanie plików serwera Apache
41
2. Instalacja
moduów .....................................................................................................43
2.1.
Instalacja typowego moduu
44
2.2.
Instalacja moduu mod_dav w systemie uniksowym
45
2.3.
Instalacja moduu mod_dav w systemie Windows
47
2.4.
Instalacja moduu mod_perl w systemie uniksowym
49
2.5.
Instalacja moduu mod_php w systemie uniksowym
51
2.6.
Instalacja moduu mod_php w systemie Windows
52
2.7.
Instalacja moduu mod_ssl
53
2.8.
Wyszukiwanie moduów na witrynie modules.apache.org
54
2.9.
Instalacja moduu mod_security
55
2.10. Dlaczego ten modu nie dziaa?
57
4
_
Spis treci
3. Rejestracja
zdarze .....................................................................................................59
3.1.
Zwikszenie szczegóowoci zapisów dziennika zdarze
62
3.2.
Zwikszenie liczby komunikatów o bdach
63
3.3.
Rejestracja zawartoci POST
65
3.4.
Rejestracja adresu IP klienta czcego si poprzez serwer proxy
66
3.5.
Rejestracja adresu MAC klienta
67
3.6. Rejestracja
Cookies
67
3.7.
Zaniechanie rejestracji da pobierania obrazów pochodzcych
ze stron lokalnych
69
3.8.
Zmiana pliku dziennika zdarze o okrelonej porze
70
3.9.
Zmiana pliku dziennika zdarze pierwszego dnia miesica
71
3.10. Rejestracja nazw komputerów zamiast ich adresów IP
72
3.11. Oddzielne pliki dzienników zdarze serwerów wirtualnych
73
3.12. Rejestracja
da
proxy
75
3.13. Rejestracja komunikatów o bdach
rónych serwerów wirtualnych w rónych plikach
76
3.14. Rejestracja adresu IP serwera
77
3.15. Rejestracja stron, z których nadchodz dania
78
3.16. Rejestracja nazw uywanych przegldarek
79
3.17. Rejestracja dowolnych pól nagówka dania
79
3.18. Rejestracja dowolnych pól nagówka odpowiedzi
80
3.19. Rejestracja aktywnoci serwera w bazie danych MySQL
81
3.20. Rejestracja zdarze w dzienniku systemowym
82
3.21. Rejestracja katalogów uytkowników
84
4. Serwery
wirtualne ....................................................................................................... 87
4.1.
Konfiguracja serwerów wirtualnych opartych na nazwach
88
4.2.
Konfiguracja jednego z serwerów wirtualnych
opartych na nazwach jako serwera domylnego
90
4.3.
Konfiguracja serwerów wirtualnych opartych na adresach
91
4.4.
Konfiguracja jednego z serwerów wirtualnych
opartych na adresach jako serwera domylnego
92
4.5.
Jednoczesne uycie serwerów wirtualnych
opartych na adresach oraz na nazwach
93
4.6.
Liczne serwery wirtualne obsugiwane
za pomoc moduu mod_vhost_alias
94
4.7.
Liczne serwery wirtualne obsugiwane za pomoc regu przepisania
96
4.8.
Rejestracja zdarze wszystkich serwerów wirtualnych
97
4.9.
Podzia pliku dziennika zdarze
98
4.10. Serwery wirtualne oparte na portach
98
4.11. Ta sama zawarto dostpna pod kilkoma adresami IP
99
4.12. Definiowanie serwerów wirtualnych w bazie danych
100
Spis treci
_
5
5. Aliasy, przekierowania oraz przepisania ................................................................. 103
5.1.
Przyporzdkowanie adresu URL do katalogu
103
5.2.
Tworzenie dodatkowego adresu URL dla istniejcej zawartoci
105
5.3.
Przydzielenie uytkownikom ich wasnych adresów URL
106
5.4.
Utosamienie kilku adresów URL za pomoc pojedynczej dyrektywy
109
5.5.
Przyporzdkowanie kilku adresów URL do tego samego katalogu CGI
110
5.6.
Tworzenie katalogów CGI dla kadego uytkownika
110
5.7.
Przekierowanie do innego miejsca
111
5.8.
Przekierowanie kilku adresów URL w to samo miejsce
113
5.9.
Nierozrónianie wielkoci liter w adresach URL
114
5.10. Wyrónianie skadni kodu ródowego PHP
bez uycia dowiza symbolicznych
115
5.11. Wymiana cigów znaków w danych adresach URL
117
5.12. Zamiana informacji o ciece na argumenty CGI
117
5.13. Odmowa dostpu daniom pochodzcym z obcych stron
118
5.14. Przekierowanie da pochodzcych z obcych stron do strony z informacjami
119
5.15. Przepisanie na podstawie acucha zapytania
120
5.16. Przekierowanie caego lub czci serwera do SSL
121
5.17. Zamiana nazw katalogów na nazwy serwerów
122
5.18. Przekierowanie wszystkich da do jednego serwera
123
5.19. Zamiana nazw dokumentów na argumenty programu
123
5.20. Przepisywanie elementów cieki do cigu zapytania i odwrotnie
124
5.21. Przepisywanie nazwy serwera na nazw katalogu
125
5.22. Przeksztacanie segmentów adresu URL w argumenty zapytania
126
5.23. Uywanie dyrektyw AliasMatch, ScriptAliasMatch i RedirectMatch
126
6. Bezpieczestwo ......................................................................................................... 129
6.1.
Wykorzystanie kont uytkowników
do uwierzytelnienia dostpu do zasobów WWW
130
6.2.
Konfiguracja hase jednorazowych
132
6.3. Wygasajce
hasa
133
6.4.
Ograniczanie wielkoci umieszczanych na serwerze plików
135
6.5.
Ograniczenie pobierania obrazków ze stron znajdujcych si
na innych serwerach
137
6.6.
danie zarówno sabego, jak i silnego uwierzytelnienia
138
6.7.
Zarzdzanie plikami .htpasswd
139
6.8.
Przygotowanie plików hase uwierzytelniania typu Digest
141
6.9.
Rozlunienie ochrony w podkatalogu
142
6.10. Wybiórcze zniesienie ochrony
144
6.11. Autoryzacja za pomoc informacji o wacicielu pliku
146
6.12. Przechowywanie powiadcze uytkownika w bazie danych MySQL
147
6
_
Spis treci
6.13. Dostp do nazwy uytkownika uwierzytelnionego
148
6.14. Uzyskanie hasa uytego do uwierzytelnienia
149
6.15. Ochrona przed atakami na hasa typu brute-force 150
6.16. Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic
151
6.17. Dostp do powiadcze osadzonych w adresach URL
153
6.18. Zabezpieczenie
usugi
WebDAV
153
6.19. Uruchomienie usugi WebDAV bez udzielenia zezwolenia na zapisywanie
do plików uytkownikowi, z uprawnieniami którego dziaa serwer
154
6.20. Ograniczanie dostpu poprzez proxy do okrelonych adresów URL
156
6.21. Ochrona plików za pomoc osony
157
6.22. Ochrona plików serwera przed zoliwymi skryptami
159
6.23. Nadanie
prawidowych
uprawnie
do
plików
160
6.24. Uruchomienie serwera z minimaln liczb moduów
163
6.25. Ograniczenie dostpu do plików znajdujcych si
poza katalogiem gównym WWW
165
6.26. Ograniczenie metod dostpnych dla uytkowników
166
6.27. Ograniczanie
da
zakresów
167
6.28. Obrona przed atakami DoS przy uyciu moduu mod_evasive
168
6.29. Zmiana katalogu gównego serwera Apache
przy uyciu moduu mod_security
170
6.30. Migracja do mechanizmów uwierzytelniania w wersji 2.2
171
6.31. Blokowanie dziaania robaków przy uyciu moduu mod_security
172
6.32. Uprawnienia tylko do odczytu i do zapisu w repozytorium Subversion
173
6.33. Uywanie staych przekierowa do ukrywania zablokowanych adresów URL
174
7. SSL
...............................................................................................................................177
7.1. Instalacja
SSL
177
7.2.
Instalacja SSL w systemie Windows
179
7.3.
Tworzenie samodzielnie podpisanych certyfikatów SSL
179
7.4.
Tworzenie zaufanego orodka certyfikacyjnego
183
7.5.
Udostpnianie czci witryny WWW poprzez SSL
185
7.6.
Uwierzytelnianie za pomoc certyfikatów klientów
187
7.7.
Wirtualne serwery SSL
188
7.8. Certyfikaty
wieloznaczne
189
8. Tre dynamiczna .......................................................................................................191
8.1.
Uaktywnienie katalogu CGI
191
8.2.
Uaktywnienie skryptów CGI w katalogach niewyznaczonych
za pomoc dyrektywy ScriptAlias
193
8.3.
Wskazywanie dokumentu domylnego w katalogu CGI
194
8.4.
Wykorzystanie rozszerze plików systemu Windows
do uruchamiana skryptów CGI
195
Spis treci
_
7
8.5.
Identyfikacja skryptów CGI na podstawie ich rozszerze
197
8.6.
Sprawdzenie, czy obsuga programów CGI
jest skonfigurowana poprawnie
198
8.7.
Odczyt wartoci z formularza
200
8.8.
Uruchamianie programu CGI dla pewnych rodzajów treci
203
8.9. Uycie
SSI
204
8.10. Przedstawienie daty ostatniej modyfikacji
206
8.11. Doczenie standardowego nagówka
207
8.12. Doczanie wyniku dziaania programu CGI
208
8.13. Uruchamianie
za
pomoc
programu suexec skryptów CGI
z uprawnieniami innego uytkownika
208
8.14. Instalacja programu obsugi moduu mod_perl z serwisu CPAN
210
8.15. Pisanie programów obsugi moduu mod_perl
212
8.16. Uruchomienie obsugi skryptów PHP
213
8.17. Weryfikacja instalacji PHP
214
8.18. Parsowanie danych wynikowych CGI
z uwzgldnieniem dyrektyw Server Side Includes
215
8.19. Parsowanie danych wynikowych skryptów ScriptAlias
z uwzgldnieniem dyrektyw Server Side Includes
216
8.20. Wyznaczenie mod_perl do obsugi wszystkich skryptów w jzyku Perl
216
8.21. Wczenie obsugi skryptów jzyka Python
217
9. Obsuga
bdów ........................................................................................................ 219
9.1.
Obsuga przypadku brakujcego pola Host
219
9.2.
Zmiana kodu stanu odpowiedzi za pomoc skryptu CGI 220
9.3.
Wasne komunikaty o bdach
221
9.4.
Komunikaty o bdach w rónych jzykach
222
9.5. Przekierowanie
odwoa
do niepoprawnych adresów URL do innych stron
223
9.6.
Prawidowa strona komunikatu o bdzie w programie Internet Explorer
224
9.7.
Powiadamianie o bdach
225
10. Proxy .......................................................................................................................... 227
10.1. Zabezpieczenie serwera proxy
227
10.2. Zabezpieczenie serwera proxy przed uyciem
go jako otwartego przekanika poczty
229
10.3. Przekazywanie da do innego serwera
230
10.4. Blokowanie da proxy do okrelonych miejsc
231
10.5. Przeniesienie da obsugiwanych przez mod_perl na inny serwer
232
10.6. Konfiguracja buforujcego serwera proxy
233
10.7. Filtrowanie treci przekazywanych przez serwer proxy
234
10.8. Wymaganie uwierzytelnienia si na serwerze dostpnym poprzez proxy
235
8
_
Spis treci
10.9. Równowaenie obcienia przy uyciu mod_proxy_balancer
235
10.10. Przekazywanie wywoa z serwera wirtualnego
237
10.11. Blokowanie przekazywania wywoa FTP
237
11. Wydajno ..................................................................................................................239
11.1. Okrelenie iloci potrzebnej pamici RAM
239
11.2. Testowanie wydajnoci serwera Apache za pomoc programu ab
240
11.3. Dobór ustawie dostpu keepalive
242
11.4. Okrelenie stanu aktywnoci witryny WWW
243
11.5. Unikanie wyszukiwania w DNS
244
11.6. Optymalizacja dowiza symbolicznych
246
11.7. Ograniczanie wpywu uycia plików .htaccess na wydajno serwera
247
11.8. Wyczenie negocjacji treci
249
11.9. Optymalizacja tworzenia procesów
250
11.10. Dobór parametrów tworzenia wtków
251
11.11. Buforowanie najczciej przegldanych plików
253
11.12. Równomierne rozoenie obcienia midzy kilka serwerów
254
11.13. Buforowanie list zawartoci katalogu
256
11.14. Przypieszenie pracy programów Perl CGI za pomoc moduu mod_perl
257
11.15. Buforowanie treci dynamicznych
258
12. Zawarto
katalogów ................................................................................................ 261
12.1. Generowanie listy zawartoci katalogu lub folderu
261
12.2. Wywietlanie standardowego nagówka i stopki dla listy zawartoci katalogu
263
12.3. Wykorzystanie arkusza stylów
263
12.4. Ukrywanie wybranych elementów na licie zawartoci
264
12.5. Wyszukiwanie konkretnych plików na licie zawartoci katalogu
265
12.6. Sortowanie listy zawartoci
265
12.7. Sortowanie listy zawartoci w sposób wskazany przez klienta
266
12.8. Definiowanie sposobu formatowania listy zawartoci
268
12.9. Definiowanie sposobu formatowania przez klienta
268
12.10. Dodawanie opisów plików
269
12.11. Automatyczne generowanie tytuów dokumentów
270
12.12. Zmiana ikon listy zawartoci
270
12.13. Wywietlanie katalogów na pocztku listy
271
12.14. Porzdkowanie wzgldem numeru wersji
272
12.15. Wczanie sortowania wzgldem numeru wersji przez uytkownika
273
12.16. Przydzielenie uytkownikowi penej kontroli nad formatem listy zawartoci 273
12.17. Wyczenie moliwoci modyfikowania listy zawartoci przez uytkownika 274
12.18. Pomijanie wybranych kolumn na licie zawartoci
275
12.19. Wywietlanie plików chronionych hasem
276
12.20. Wywietlanie aliasów na licie zawartoci
277
Spis treci
_
9
13. Pozostae
zagadnienia .............................................................................................. 279
13.1. Poprawne
umieszczanie
dyrektyw
279
13.2. Zmiana nazw plików .htaccess
281
13.3. Tworzenie listy zawartoci katalogu
282
13.4. Rozwizanie „problemu kocowego ukonika”
283
13.5. Ustalenie zawartoci pola Content-Type
w zalenoci od moliwoci przegldarki
285
13.6. Obsuga brakujcego pola Host nagówka
285
13.7. Inny domylny dokument
286
13.8. Konfiguracja domylnej „ulubionej ikony”
287
13.9. Wywietlanie listy zawartoci katalogów ScriptAlias
287
13.10. Wczanie obsugi plików .htaccess
289
13.11. Przeksztacanie dyrektyw Server Side Includes
z serwerów IBM lub Lotus do serwera Apache
290
A Uycie wyrae regularnych ..................................................................................... 291
B Rozwizywanie problemów ..................................................................................... 297
Skorowidz ............................................................................................................................ 307
43
ROZDZIA 2.
Instalacja moduów
W pakiecie podstawowej dystrybucji serwera WWW Apache nie ma bardzo wielu popular-
nych moduów. Wikszo z nich nie trafia do dystrybucji podstawowej z powodów licen-
cyjnych lub z powodów zwizanych z obsug techniczn, inne nie s dystrybuowane przez
Apache Software Foundation, gdy tak decyzj podjli twórcy serwera, a jeszcze inne s in-
tegraln czci innych projektów. Na przykad modu mod_ssl dla serwera Apache 1.3 jest
tworzony i rozwijany oddzielnie, nie tylko z powodu amerykaskich ogranicze eksportowych
(które byy znacznie bardziej rygorystyczne w czasie, gdy pakiet powstawa), ale gównie
dlatego, e wymaga on wprowadzenia zmian do jdra serwera, na które nie zdecydowali si
jego twórcy.
W niniejszym rozdziale przedstawiono receptury omawiajce instalacj niektórych najbar-
dziej popularnych moduów pochodzcych spoza oficjalnej dystrybucji. Jeeli zachodzi taka
potrzeba, przedstawione s osobne receptury omawiajce instalacj moduów w systemach
uniksowych i instalacj w systemie Windows.
Najbardziej kompletna lista moduów innych producentów znajduje si na stronie Apache Mo-
dule Registry pod adresem http://modules.apache.org/. Niektóre moduy s tak popularne lub
s tak zoone, e powicono im cae strony internetowe. Tak jest na przykad w przypadku
moduów omówionych w tym rozdziale.
Wielu twórców moduów zajmuje si tworzeniem tylko jednego moduu. Oznacza to, e poten-
cjalnie moe istnie tyle sposobów instalacji moduów, ile jest samych moduów. Pierwsza re-
ceptura tego rozdziau opisuje proces instalacji, który powinien by odpowiedni dla wielu
moduów wersji 1.3 serwera Apache. Jednak w przypadku kadego moduu, naley sprawdzi
w jego dokumentacji, czy jego instalacja nie przebiega w inny sposób.
Wiele z tych moduów mona otrzyma od firm, które tworz pakiety i dystrybuuj opro-
gramowanie Apache — na przykad w postaci moduów RPM firm Mandrake czy Red Hat.
Jednak takie pakiety budowane s przy pewnych zaoeniach poczynionych przez tworzc
je firm. Mówic inaczej — jeeli serwer zosta zbudowany z plików ródowych, a jego pliki
znajduj si w miejscach innych ni standardowe, nie naley si dziwi, gdy instalacja jakie-
go moduu si nie powiedzie.
44
_
Rozdzia 2. Instalacja moduów
Wszystkie moduy opisane w tym rozdziale s obsugiwane przez wersj 1.3 serwera Apache
dziaajc w systemach uniksowych. Informacje na temat moduów dla wersji 2.0 serwera
oraz w przypadku systemu Windows zebrano w tabeli 2.1.
Tabela 2.1. Obsuga moduów w systemie Windows oraz przez wersj 2.0 serwera Apache
Nazwa moduu
Obsuga w systemie Windows
Obsuga przez serwer Apache 2.0
mod_dav
Tak
Modu doczony do serwera
— nie ma potrzeby instalowania.
mod_perl
Tak
Tak
mod_php
Tak
Tak
mod_ssl
Nie
Modu doczony do serwera
— nie ma potrzeby instalowania.
2.1. Instalacja typowego moduu
Problem
Naley zainstalowa posiadany modu, którego instalacja nie zostaa omówiona osobno w tym
rozdziale.
Rozwizanie
W katalogu, w którym znajduje si plik ródowy moduu, naley wyda polecenie:
% /cieka/do/serwera/apache/bin/apxs -cia modu.c
Analiza
Gdy modu skada si z pojedynczego pliku o rozszerzeniu .c, istnieje due prawdopodobie-
stwo, e modu uda si zbudowa i zainstalowa za pomoc powyszego rozwizania. Mo-
duom skadajcym si z kilku plików ródowych powinny towarzyszy instrukcje instalacji.
Opcje
-cia
powoduj kolejno kompilacj, instalacj, a nastpnie aktywacj moduu. Pierwsza
czynno jest oczywista, instalacja polega na umieszczeniu pliku .so w miejscu, w którym bdzie
go poszukiwa serwer Apache, a aktywacja polega na umieszczeniu odpowiedniego wpisu
w pliku httpd.conf.
Zobacz równie
x Strony podrcznika man dotyczce programu apxs, przewanie ServerRoot/man/man8/apxs.8.
2.2. Instalacja moduu mod_dav w systemie uniksowym
_
45
2.2. Instalacja moduu mod_dav
w systemie uniksowym
Problem
Na serwerze WWW naley uruchomi usug WebDAV. Dziki usudze WebDAV zdalni uyt-
kownicy mog dodawa, usuwa i uaktualnia pliki znajdujce si na serwerze w sposób
niezawodny i bezpieczny, bez potrzeby korzystania z usugi FTP.
Rozwizanie
Modu mod_dav jest doczony do wersji 2.0 serwera Apache, wystarczy go tylko uaktywni za
pomoc opcji kompilacji
--enable-dav
.
W przypadku serwera Apache 1.3 pakiet ródowy moduu mod_dav naley pobra ze strony
http://webdav.org/mod_dav/, rozpakowa, a nastpnie wyda polecenia:
% cd mod_dav-1.0.3-1.3.6
% ./configure --with-apxs=/usr/local/apache/bin/apxs
% make
# make install
Nastpnie naley zatrzyma i uruchomi serwer ponownie oraz zapozna si z receptur 6.18.
Analiza
Modu mod_dav zachowuje si poprawnie i atwo daje si zbudowa i wczy do dziaajce-
go serwera. Aby sprawdzi, czy modu zosta zainstalowany poprawnie, trzeba na potrzeby
usugi WebDAV przeznaczy na serwerze jaki katalog i sprawdzi dostp do niego za po-
moc narzdzia wspomagajcego WebDAV. Polecamy uycie do tego celu programu cadaver
— korzystajcego z wiersza polece narzdzia typu open source. (Adres strony, z której mo-
na pobra program cadaver, znajduje si na kocu receptury).
Aby uaktywni na serwerze WWW usug WebDAV, naley do pliku httpd.conf doda co
najmniej dwie dyrektywy. Pierwsza wskazuje pooenie bazy blokad plików, wykorzysty-
wanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie ze sob nie
kolidoway. Baza musi znajdowa si katalogu, do którego serwer ma prawo zapisu. Na
przykad:
# cd /usr/local/apache
# mkdir var
# chgrp nobody var
# chmod g+w var
Nastpnie w pliku httpd.conf, poza wszystkimi kontenerami, naley umieci wiersze:
<IfModule mod_dav.c>
DAVLockDB /usr/local/apache/var/DAVlock
</IfModule>
46
_
Rozdzia 2. Instalacja moduów
Baza DAVLockDB nie moe znajdowa si w systemie plików typu NFS, gdy NFS
nie obsuguje wymaganego przez modu mod_dav sposobu blokowania plików.
Umieszczenie bazy blokad plików w systemie plików typu NFS moe doprowadzi
do nieprzewidywalnych skutków.
Nastpnie naley utworzy tymczasowy katalog sucy do przetestowania dziaania usugi
WebDAV:
# cd /usr/local/apache
# mkdir htdocs/dav-test
# chgrp nobody htdocs/dav-test
# chmod g+w htdocs/dav-test
Teraz do pliku httpd.conf naley doda sekcj przeznaczajc utworzony katalog na potrzeby
usugi WebDAV:
<Directory "/usr/local/apache/htdocs/dav-test">
DAV On
</Directory>
Nastpnie naley zatrzyma i ponownie uruchomi serwer, który po uruchomieniu powinien
rozpocz obsug operacji WebDAV kierowanych pod lokalny identyfikator URI /dav-test.
Aby przetestowa dziaanie WebDAV za pomoc programu cadaver, naley wyda przedsta-
wione polecenia, w wyniku czego powinno si otrzyma wyniki podobne do poniszych:
% cd /tmp
% echo "Zwyky tekst" > dav-test.txt
% cadaver
dav:!> open http://localhost/dav-test
Looking up hostname... Connecting to server... connected.
dav:/dav-test/> put dav-test.txt
Uploading dav-test.txt to '/dav-test/dav-test.txt': (reconnecting...done)
Progress: [= == == == == == == == == == == == == == ==>] 100.0% of 11 bytes succeeded.
dav:/dav-test/> propset dav-test.txt MyProp 1023
Setting property on 'dav-test.txt': (reconnecting...done) succeeded.
dav:/dav-test/> propget dav-test.txt MyProp
Fetching properties for 'dav-test.txt':
Value of MyProp is: 1023
dav:/dav-test/> propdel dav-test.txt MyProp
Deleting property on 'dav-test.txt': succeeded.
dav:/dav-test/> close
Connection to 'localhost' closed.
dav:!> exit
% rm dav-test.txt
W tym przypadku waciwoci (ang. properties) s atrybutami zasobów WebDAV. Niektóry-
mi z nich (na przykad rozmiarem zasobu) zarzdza system, a inne mog by dowolnie do-
dawane, zmieniane i usuwane przez uytkownika.
Po sprawdzeniu poprawnoci dziaania moduu mod_dav katalog htdocs/dav-test naley usun,
podobnie jak zwizan z nim sekcj
<Directory>
pliku httpd.conf, a nastpnie naley zapo-
zna si z receptur 6.18.
Zobacz równie
x Receptura 6.18.
x http://webdav.org/mod_dav/.
x http://webdav.org/cadaver/.
2.3. Instalacja moduu mod_dav w systemie Windows
_
47
2.3. Instalacja moduu mod_dav w systemie Windows
Problem
Na serwerze WWW Apache 1.3 dziaajcym w systemie Windows naley za pomoc moduu
mod_dav uruchomi usug WebDAV.
Rozwizanie
Modu mod_dav w wersji 2.0 serwera Apache znajduje si standardowo, nie ma wic w takim
przypadku koniecznoci pobierania go i instalowania.
Ze strony http://webdav.org/mod_dav/win32/ naley pobra i rozpakowa pakiet moduu mod_dav
przeznaczony dla systemu Windows. Nastpnie naley sprawdzi, czy w katalogu
ServerRoot
(w katalogu gównym serwera Apache) znajduj si pliki xmlparse.dll oraz xmltok.dll. Jeeli ich
tam nie ma, naley odnale je w innych katalogach serwera Apache, a nastpnie skopiowa
je do katalogu
ServerRoot
. Do pracy modu mod_dav potrzebuje pakietu Expat, który jest
doczany do serwera Apache poczwszy od wersji 1.3.9. Poszukiwane pliki pochodz z pa-
kietu Expat.
Plik DLL moduu mod_dav naley przekopiowa do katalogu, w którym znajduj si moduy
serwera Apache:
C:\>cd mod_dav-1.0.3-dev
C:\mod_dav-1.0.3-dev>copy mod_dav.dll C:\Apache\modules
C:\mod_dav-1.0.3-dev>cd \Apache
W pliku httpd.conf naley umieci nastpujcy wiersz:
LoadModule dav_module modules/mod_dav.dll
Jeeli plik httpd.conf zawiera dyrektyw
ClearModuleList
i dodaje wszystkie moduy, naley
równie doda wiersz
AddModule
. Mona te wiersz
LoadModule
dotyczcy moduu mod_dav
umieci po dyrektywie
ClearModuleList
.
Analiza
Modu mod_dav zachowuje si poprawnie i atwo daje si zbudowa i wczy do dziaajce-
go serwera. Aby sprawdzi, czy modu zosta zainstalowany poprawnie, trzeba na potrzeby
usugi WebDAV przeznaczy na serwerze jaki katalog i sprawdzi dostp do niego za po-
moc narzdzia wspomagajcego WebDAV lub otworzy go programem Eksplorator Windows
(poczwszy od systemu Windows 2000). Mona te uzyska do niego dostp z innego kom-
putera za pomoc programu cadaver lub innego narzdzia wspomagajcego WebDAV.
Aby uaktywni na serwerze WWW usug WebDAV, naley do pliku ServerRoot/conf/httpd.conf
doda co najmniej dwie dyrektywy. Pierwsza wskazuje pooenie bazy blokad plików wyko-
rzystywanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie nie
kolidoway ze sob. Baza musi znajdowa si w katalogu, do którego serwer ma prawo do za-
pisu. Na przykad:
C:\Apache-1.3>mkdir var
48
_
Rozdzia 2. Instalacja moduów
eby uruchomi usug WebDAV, do pliku httpd.conf naley doda nastpujce wiersze:
<IfModule mod_dav.c>
DAVLockDB "C:/Apache-1.3/var/dav-lock"
</IfModule>
eby przetestowa prac moduu mod_dav, naley utworzy tymczasowy katalog:
C:\Apache-1.3>mkdir htdocs\dav-test
Nastpnie, po to, by usuga WebDAV rozpocza udostpnianie katalogu testowego, naley
zmieni zawarto kontenera
<IfModule>
:
<IfModule mod_dav.c>
DAVLockDB "C:/Apache-1.3/var/dav-lock"
<Directory "C:/Apache-1.3/htdocs/dav-test">
DAV On
</Directory>
</IfModule>
Teraz naley zatrzyma serwer i uruchomi go ponownie, a nastpnie spróbowa otworzy
katalog /dav-test za pomoc klienta WebDAV. W przypadku zastosowania jako klienta Web-
DAV dziaajcego w innym komputerze programu cadaver, przykad jego uycia mona znale
w recepturze 2.2. Poniej przedstawiono sposób testowania pracy moduu mod_dav za pomoc
programu Eksplorator Windows.
Testowania pracy moduu mod_dav za pomoc programu Eksplorator Windows
Po przeznaczeniu katalogu htdocs\dav-test na potrzeby usugi WebDAV i ponownym urucho-
mieniu serwera WWW Apache naley uruchomi program Eksplorator Windows. Aby uzyska
dostp do katalogu usugi WebDAV, naley wykona niej opisane czynnoci. Mona to zrobi
na komputerze, na którym uruchomiono usug WebDAV lub na innym komputerze z systemem
Windows, który ma dostp do tego komputera.
1.
W programie Eksplorator Windows naley klikn pozycj Moje miejsca sieciowe
1
.
2.
Nastpnie w prawym oknie programu Eksplorator Windows naley klikn dwukrotnie
ikon Dodaj miejsce sieciowe.
3.
Jako lokalizacj nowego miejsca sieciowego naley wpisa:
http://127.0.0.1/dav-test/
Gdy czynnoci te wykonywane s w innym komputerze ni ten, w którym uruchomiono
usug WebDAV, zamiast adresu
127.0.0.1
naley wpisa nazw serwera, w którym
uruchomiono modu mod_dav.
4.
Po naciniciu przycisku Dalej naley nada utworzonemu miejscu sieciowemu now na-
zw lub pozosta przy proponowanej.
5.
Program Eksplorator Windows powinien teraz otworzy okno o nazwie zdefiniowanej w po-
przednim kroku. Zawarto okna powinna by pusta, gdy otwarty zosta pusty katalog.
6.
W gównym oknie programu Eksplorator Windows naley przej do dowolnego katalogu
zawierajcego pliki.
1
Ponisza procedura dotyczy systemów Windows 2000 lub Windows Me. W systemie Windows XP naley
klikn dwukrotnie znajdujc si na pulpicie ikon Moje miejsca sieciowe, a nastpnie ze znajdujcego si
po lewej stronie panela Zadania sieciowe wybra Dodaj miejsce sieciowe — przyp. tum.
2.4. Instalacja moduu mod_perl w systemie uniksowym
_
49
7.
Przytrzymujc wcinity przycisk Ctrl, naley przecign do okna otwartego w punkcie 5.
dowolny plik lub pliki.
8.
System Windows powinien na krótko pokaza okno informujce o postpie procesu ko-
piowania, po czym kopiowany plik powinien znale si w oknie docelowym.
Gratulacje! Plik zosta skopiowany do serwera za pomoc usugi WebDAV.
Po zakoczeniu testowania naley usun katalog htdocs\dav-test, a take usun z pliku konfigu-
racyjnego wiersz
<Directory "C:/Apache-1.3/htdocs/dav-test">
. W przeciwnym razie swoje
pliki bdzie móg umieszcza tam kady.
Zobacz równie
x Receptura 6.18.
x http://webdav.org/mod_dav/.
2.4. Instalacja moduu mod_perl
w systemie uniksowym
Problem
Aby skrypty Perla byy wykonywane szybciej i byy lepiej obsugiwane przez serwer WWW,
naley zainstalowa modu mod_perl.
Rozwizanie
W przypadku serwera Apache 1.3 ze strony http://perl.apache.org/ naley pobra pakiet ró-
dowy moduu mod_perl 1.0, rozpakowa go, a nastpnie wyda nastpujce polecenia:
% perl Makefile.PL \
> USE_APXS=1 \
> WITH_APXS=/usr/local/apache/bin/apxs \
> EVERYTHING=1 \
> PERL_USELARGEFILES=0
% make
% make install
Nastpnie naley uruchomi serwer ponownie.
Dla serwera Apache 2.0 i wersji póniejszych proces przebiega analogicznie. Naley pobra
i rozpakowa pakiet ródowy mod_perl 2.0, a nastpnie wykona nastpujce polecenie:
% perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs
Analiza
Modu mod_perl jest moduem do zoonym. Na serwerze Apache mona zainstalowa go na
kilka sposobów. W recepturze przedstawiono sposób najszybszy i najprostszy. Jeeli z jakich
powodów sposób ten jest nieodpowiedni, naley zapozna si z rónymi plikami README.*
50
_
Rozdzia 2. Instalacja moduów
znajdujcymi si w katalogu pakietu. Poniewa podstawowym jzykiem moduu jest Perl,
a nie C, instrukcja instalacji róni si zdecydowanie od stosowanych w przypadku wikszoci
innych moduów.
Gdy po instalacji moduu serwer uruchomi si poprawnie, modu mod_perl rozpoczyna dziaa-
nie i jest skonfigurowany. Dziaanie moduu mona przetestowa, dokonujc zmian w pliku
httpd.conf, dodajc kilka skryptów i obserwujc, czy serwer obsuguje je poprawnie. Oto
przykad testowania dziaania moduu mod_perl.
1.
Na potrzeby skryptów moduu mod_perl naley utworzy nowy folder:
# cd ServerRoot
# mkdir lib lib/perl lib/perl/Apache
2.
W katalogu conf/ serwera naley utworzy plik startup.pl zawierajcy instrukcje urucho-
mieniowe dla moduu mod_perl:
#!/usr/bin/perl
BEGIN {
use Apache ( );
use lib Apache->server_root_relative('lib/perl');
}
use Apache::Registry ( );
use Apache::Constants ( );
use CGI qw(-compile :all);
use CGI::Carp ( );
1;
3.
Nastpnie naley utworzy wykorzystywany w tecie plik lib/perl/Apache/HelloWorld.pm:
package Apache::HelloWorld;
use strict;
use Apache::Constants qw(:common);
sub handler {
my $r = shift;
$r->content_type('text/plain; charset=ISO-8859-2');
$r->send_http_header;
$r->print("Witaj wiecie! Pozdrowienia od moduu mod_perl.\n");
return OK;
}
1;
4.
Teraz trzeba otworzy do edycji plik konfiguracyjny serwera i umieci w nim dyrekty-
wy umoliwiajce moduowi mod_perl odnalezienie potrzebnych mu skadników oraz in-
formujce go, kiedy ma uruchomi skrypt testowy. Do pliku httpd.conf naley doda na-
stpujce wiersze:
<IfModule mod_perl.c>
PerlRequire conf/startup.pl
<Location /mod_perl/howdy>
SetHandler perl-script
PerlHandler Apache::HelloWorld
</Location>
</IfModule>
5.
Teraz naley uruchomi serwer ponownie, a nastpnie uruchomi skrypt, wpisujc:
http://localhost/mod_perl/howdy.
Jeeli konfiguracja jest poprawna, pojawi si strona zawierajce zdanie: „Witaj wiecie! Po-
zdrowienia od moduu mod_perl.”.
2.5. Instalacja moduu mod_php w systemie uniksowym
_
51
Zobacz równie
x http://perl.apache.org/.
x Ksika Writing Apache Modules with Perl and C, autorzy Doug MacEachern oraz Lincoln
Stein, wydawnictwo O'Reilly.
x Ksika mod_perl Developer's Cookbook, autorzy Geoffrey Young, Paul Lindner oraz Randy
Kobes wydawnictwo Sams
2
.
2.5. Instalacja moduu mod_php
w systemie uniksowym
Problem
Do dziaajcego serwera WWW Apache naley doda modu obsugi skryptów mod_php.
Rozwizanie
Pakiet ródowy moduu mod_php naley pobra ze strony http://php.net/, rozpakowa go, a na-
stpnie wyda nastpujce polecenia:
% cd php-5.2.3
% ./configure \
> --with-apxs=/usr/local/apache/bin/apxs
% make
# make install
Nastpnie naley uruchomi serwer ponownie.
Analiza
Aby przekona si, e instalacja zakoczya si powodzeniem, w katalogu
DocumentRoot
ser-
wera WWW naley utworzy skadajcy si z jednego wiersza plik info.php:
<?php phpinfo( ); ?>
Do pliku konfiguracyjnego httpd.conf naley doda ponisze wiersze:
<IfModule mod_php4.c>
AddHandler application/x-httpd-php .php
</IfModule>
Po ponownym uruchomieniu serwera WWW naley za pomoc przegldarki spróbowa
otworzy dokument info.php. W wyniku tego powinien pojawi si szczegóowy opis aktyw-
nych opcji PHP. Jeeli opis rzeczywicie si pojawi, bdzie to wskazywa, e instalacja zako-
czya si pomylnie i plik info.php mona usun.
Podczas instalacji PHP mona zastosowa wiele opcji i rozszerze, w tej recepturze omówio-
no tylko najprostszy sposób instalacji moduu.
2
Polskie wydanie: mod_perl. Podrcznik programisty, Helion 2003 — przyp. red.
52
_
Rozdzia 2. Instalacja moduów
Zobacz równie
x Receptura 8.16.
x Receptura 8.17.
x http://php.net/.
2.6. Instalacja moduu mod_php w systemie Windows
Problem
Do dziaajcego w systemie Windows serwera WWW Apache naley doda modu obsugi
skryptów mod_php.
Rozwizanie
W tej recepturze zamiast podawania szczegóowych polece czynnoci, które naley wyko-
na, przedstawione zostan w sposób opisowy.
1.
Ze strony http://php.net/ naley pobra plik binarny .zip (a nie plik .exe) PHP dla systemu
Windows zawierajcego rozszerzenia API.
2.
Plik .zip naley rozpakowa do katalogu, w którym zawarto pliku moe pozosta na
zawsze (na przykad do katalogu C:\PHP4). W przypadku uycia programu WinZip na-
ley zaznaczy pole wyboru Use folder names, aby utworzona zostaa taka struktura pli-
ków jak umieszczona w pliku .zip.
3.
Do katalogu \modules\ znajdujcego si w katalogu
ServerRoot
serwera Apache naley
przekopiowa plik PHP4\SAPI\php4apache.dll.
4.
W oknie wiersza polecenia naley przej do katalogu PHP4, do którego zosta rozpako-
wany plik .zip, a nastpnie wyda polecenia:
...\PHP4>copy php.ini-dist %SYSTEMROOT%\php.ini
...\PHP4>copy php4ts.dll %SYSTEMROOT%
(W przypadku systemów Windows 95 oraz Windows 98 zamiast
%SYSTEMROOT%
naley
uy
%WINDOWS%
).
5.
Nastpnie naley otworzy do edycji plik %SYSTEMROOT%\php.ini, odnale w nim
wiersz zaczynajcy si od
extension_dir
i zmieni jego warto tak, by wskazywaa na
katalog PHP4\extensions. Gdy, na przykad, plik .zip zosta rozpakowany do katalogu
C:\PHP4, wiersz ten powinien wyglda nastpujco:
extension_dir = C:\PHP4\extensions
6.
Nastpnie trzeba otworzy do edycji plik conf\httpd.conf znajdujcy si w katalogu
ServerRoot
i w pobliu innych wierszy
LoadModule
naley doda wiersz:
LoadModule php4_module modules/php4apache.dll
W pobliu naley umieci równie wiersze dotyczce plików .php:
<IfModule mod_php4.c>
AddType application/x-httpd-php .php
</IfModule>
2.7. Instalacja moduu mod_ssl
_
53
7.
Na koniec naley zrestartowa serwer Apache, w wyniku czego modu PHP powinien si
uaktywni.
Analiza
Aby zainstalowa modu PHP w systemie Windows, naley wykona wiele drobiazgowych
czynnoci. eby przekona si, e proces instalacji zakoczy si powodzeniem, w katalogu
DocumentRoot
serwera naley utworzy skadajcy si z jednego wiersza plik info.php:
<?php phpinfo( ); ?>
Po ponownym uruchomieniu si serwera WWW naley za pomoc przegldarki spróbowa
otworzy dokument info.php. W wyniku tego powinien pojawi si szczegóowy opis aktyw-
nych opcji PHP.
W czasie instalacji PHP mona zastosowa wiele opcji i rozszerze, w tej recepturze omó-
wiono tylko najprostszy sposób instalacji moduu. Wicej szczegóów na ten temat mona
znale w pliku install.txt znajdujcym si w katalogu PHP4 oraz w dokumentacji znajdujcej
si na stronach WWW.
Zobacz równie
x http://php.net/.
2.7. Instalacja moduu mod_ssl
Problem
Do dziaajcego serwera WWW Apache naley doda obsug SSL, instalujc w nim mod_ssl
— modu bezpiecznego HTTP.
Rozwizanie
Windows
Sposób instalacji protokou SSL w systemie Windows jest tematem receptury 7.2. Mówic
w najwikszym skrócie, najlepiej jest pobra XAMPP z witryny ApacheFriends.org, chyba
e posiada si odpowiednie dowiadczenie w budowaniu kodu ródowego w systemie
Microsoft Windows.
Apache 2.0
Modu mod_ssl zosta wczony do wersji 2.0 serwera Apache, ale w przypadku budowy
serwera z kodu ródowego, modu nie jest automatycznie kompilowany ani instalowany.
Aby w takim przypadku zainstalowa modu mod_ssl, naley w poleceniu
./configure
zastosowa opcj
--enable-ssl
oraz uaktywni modu dyrektywami
LoadModule
oraz
AddModule
.
Apache 1.3
Aby zainstalowa modu mod_ssl w systemie uniksowym, ze strony http://www.modssl. org/
naley pobra i rozpakowa archiwum tar moduu, a nastpnie wyda polecenia:
54
_
Rozdzia 2. Instalacja moduów
% cd mod_ssl-2.8.14-1.3.27
3
% ./configure \
> --with-apache=../apache_1.3.27 \
> --with-ssl=SYSTEM \
> --prefix=/usr/local/apache
% cd ../apache_1.3.27
% make
% make certificate
Analiza
eby modu mod_ssl móg dziaa, kod ródowy serwera Apache musi zosta zmodyfikowany.
Dziki temu mona zainstalowa tylko tak wersj pakietu mod_ssl, która odpowiada wersji po-
siadanej dystrybucji serwera Apache. Jeeli instalacja serwera Apache nie zawiera plików ró-
dowych (co ma miejsce na przykad w przypadku instalacji serwera z pakietu RPM czy z innej
tego typu dystrybucji) — instalacja moduu mod_ssl nie powiedzie si.
Poza kodami ródowymi serwera Apache do zainstalowania moduu mod_ssl potrzebne s
jeszcze Perl oraz biblioteki OpenSSL. Ich pooenie okrela si za pomoc opcji
--with-ssl
.
Jeeli biblioteki znajduj si w katalogu utworzonym przez ich dostawc, sowo kluczowe
SYSTEM
poinformuje, e naley ich szuka wanie tam, dziki czemu nie trzeba bdzie ich
szuka samemu.
W przeciwiestwie do wikszoci innych moduów serwera Apache, aby zainstalowa modu
mod_ssl, naley uruchomi skrypt ./configure znajdujcy si w katalogu moduu mod_ssl, a nie
w katalogu plików ródowych serwera Apache. Skrypt moduu wprowadza odpowiednie
zmiany do skryptu serwera, a nastpnie uruchamia go.
W tej recepturze omówiono jedynie podstawowy sposób instalacji moduu mod_ssl. W czasie
konfiguracji moduu mod_ssl mona zleci moduowi wykorzystanie wielu dodatkowych
skadników oraz funkcji. Wicej informacji na ten temat mona znale w plikach README
oraz INSTALL znajdujcych w katalogu plików ródowych moduu mod_ssl lub na stronie
WWW http://www.modssl.org/.
Zobacz równie
x Receptura 7.3.
x http://www.modssl.org/.
2.8. Wyszukiwanie moduów
na witrynie modules.apache.org
Problem
Trzeba znale moduy serwera Apache udostpniajce okrelone funkcje lub noszce okre-
lone nazwy. Wiadomo jednoczenie, e istnieje rejestr moduów serwera Apache.
3
Nazwa katalogu zalena jest od instalowanej wersji mod_ssl. — przyp. red.
2.9. Instalacja moduu mod_security
_
55
Rozwizanie
Na witrynie http://modules.apache.org naley poda sowa kluczowe odnoszce si do poszu-
kiwanych funkcji lub fragment nazwy moduu i przeprowadzi wyszukiwanie.
Analiza
Rejestr moduów serwera Apache to nieoficjalna witryna internetowa, na której autorzy mo-
duów z wasnej inicjatywy mog zarejestrowa efekty swoich prac, aby udostpni je innym
uytkownikom.
Wspomniana witryna w adnym wypadku nie zawiera wszystkich moduów serwe-
ra Apache; wiele z nich jest dostpnych na witrynie SourceForge albo na domowych
witrynach ich autorów. Jeeli poszukiwany modu nie zostanie znaleziony na
http://modules.apache.org, mona spróbowa go poszuka na witrynie SourceForge
(pod adresem http://sourceforge.net), FreshMeat (http://freshmeat.net) albo po prostu
przeszuka internet przy uyciu Google lub innej wyszukiwarki internetowej.
Zobacz równie
x http://sourceforge.net.
x http://freshmeat.net.
2.9. Instalacja moduu mod_security
Problem
Trzeba zainstalowa modu mod_security, aby skorzysta z udostpnianych przez niego pro-
stych, a jednoczenie rozbudowanych mechanizmów filtrujcych.
Rozwizanie
Naley wykona nastpujce czynnoci:
1.
Pobra modu mod_security oraz gówne reguy moduu z witryny http://modules.apache.org.
Aby znale modu do pobrania na podanej stronie WWW, naley skorzysta z pozycji
menu Browse lub Search.
Po pobraniu moduu warto sprawdzi jego sygnatur PGP, aby upewni si, e plik
nie uleg zmianie. Wicej informacji na ten temat znajduje si na witrynie internetowej
moduu mod_security.
2.
Rozpakowa zestaw (bez regu) do katalogu roboczego:
% cd /usr/local/build
% tar xzf /usr/local/kits/modsecurity-apache_2.1.1
56
_
Rozdzia 2. Instalacja moduów
3.
Przej do rozpakowanego katalogu i zbudowa pakiet, wykorzystujc dostarczony wraz
z nim skrypt Makefile. W poleceniu make trzeba wskaza odpowiedni warto ServerRoot:
% cd /usr/local/build/modsecurity-apache_2.1.1/apache2
% make top_dir=/usr/local/apache2
# make top_dir=/usr/local/apache2 install
W odrónieniu od innych moduów dostawców zewntrznych mod_security trzeba
budowa przy uyciu jego wasnych mechanizmów, a nie przez zwyke wywoanie
narzdzia apxs serwera Apache.
4.
Rozpakowa gówne reguy do podkatalogu katalogu wskazanego jako ServerRoot:
# cd /usr/local/apache2/conf
# mkdir mod_security
# cd mod_security
# tar xzf /tmp/modsecurity-core-rules_2.1-1.4.tar.gz
5.
W odpowiednim miejscu w pliku httpd.conf doda nastpujce wiersze:
LoadModule security_module modules/mod_security2.so
Include conf/mod_security/*.conf
6.
Zrestartowa serwer.
Analiza
Skrypt Makefile doczony do pakietu mod_security zbuduje modu i umieci go w odpowied-
niej lokalizacji, lecz ponowne wczenie serwera jest ju powinnoci samego uytkownika.
Najnowsze wersje pakietu zawieraj zestaw gównych regu obsugujcych przypadki takie
jak spamowanie blogów czy najczciej spotykane ataki. Reguy s równie dostpne w od-
dzielnym archiwum tar, które moe by uaktualniane niezalenie od regu doczanych do
samego moduu.
Aktualna wersja moduu mod_security obsuguje wycznie serwer Apache w wersji 2. Dostpna
jest równie starsza wersja obsugujca wersj 1.3 serwera, lecz jest mao prawdopodobne, by
bya utrzymywana przez duszy czas.
Zobacz równie
x Witryna internetowa moduu mod_security pod adresem http://modsecurity.org.
2.10. Dlaczego ten modu nie dziaa?
_
57
2.10. Dlaczego ten modu nie dziaa?
Problem
Pomimo próby zainstalowania moduu pochodzcego od dostawcy zewntrznego serwer WWW
Apache nie rozpoznaje go.
Rozwizanie
Naley sprawdzi kod ródowy moduu, jego dokumentacj albo zwróci si bezporednio
do autora moduu, aby ustali wersj serwera Apache obsugiwan przez modu.
Analiza
W miar wprowadzania do serwera Apache kolejnych znaczcych zmian moe si zdarzy,
e zmiana w API serwera doprowadzi do powstania niezgodnoci jego moduów. Wpraw-
dzie twórcy rozwijajcy serwer d do tego, by podobne niezgodnoci zdarzay si jak naj-
rzadziej, lecz czasami jest to po prostu nieuniknione.
Aby zapobiec adowaniu niezgodnego moduu i unikn w ten sposób zaamania serwera
WWW, zarówno w module, jak i w samym serwerze umieszczono wbudowany, „magiczny”
numer zapisywany w momencie ich budowania, wskazujcy wersj API. Gdy serwer spróbuje
zaadowa modu DSO, najpierw porówna numer wersji w module z wasnym numerem wersji
zapisanym na serwerze. Jeeli okae si, e numery wersji s niezgodne, serwer nie zaaduje
moduu.
Zespó rozwijajcy serwer dy do utrzymania zgodnoci midzy numerami wersji gównych,
lecz nie midzy rónymi numerami wersji gównych. Inaczej mówic, modu zbudowany dla
serwera Apache 1.3 powinien dziaa z praktycznie wszystkimi wersjami 1.3 serwera zbudo-
wanymi po dacie budowy moduu, natomiast na pewno nie bdzie obsugiwa serwera w wer-
sji 2.0. I odwrotnie: modu dla wersji 2.0 w adnym wypadku nie bdzie wspópracowa z ser-
werem w wersji 1.3.
Zobacz równie
x Rejestr moduów serwera Apache pod adresem http://modules.apache.org.