Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Apache. Receptury.
Wydanie II
Autor: Rich Bowen, Ken Coar
ISBN: 978-83-246-1549-0
Tytu³ orygina³u:
Apache Cookbook:
Solutions and Examples for Apache
Administration (Cookbook)
Format: 168x237, stron: 328
Czy wiesz, jaki serwer HTTP jest najpopularniejszy w sieci?
W³anie 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 funkcjonalnoci dziêki modu³om
Mo¿liwoci 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 wydajnoci
Wykorzystanie jêzyków skryptowychOto ksi¹¿ka z najlepszymi przepisami
na Apache!
3
Spis tre%ci
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ód#owych serwera Apache
27
1.5.
Budowa serwera Apache z kodu "ród#owego
29
1.6.
Instalacja serwera Apache za pomoc% programu ApacheToolbox
30
1.7.
Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera Apache
32
1.8.
Usuni'cie serwera Apache
34
1.9.
Której wersji serwera Apache u(y)
35
1.10. Uaktualnienie serwera przy u(yciu 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 modu1ów .....................................................................................................43
2.1.
Instalacja typowego modu#u
44
2.2.
Instalacja modu#u mod_dav w systemie uniksowym
45
2.3.
Instalacja modu#u mod_dav w systemie Windows
47
2.4.
Instalacja modu#u mod_perl w systemie uniksowym
49
2.5.
Instalacja modu#u mod_php w systemie uniksowym
51
2.6.
Instalacja modu#u mod_php w systemie Windows
52
2.7.
Instalacja modu#u mod_ssl
53
2.8.
Wyszukiwanie modu#ów na witrynie modules.apache.org
54
2.9.
Instalacja modu#u mod_security
55
2.10. Dlaczego ten modu# nie dzia#a?
57
4
Spis tre%ci
3. Rejestracja zdarze4 .....................................................................................................59
3.1.
Zwi'kszenie szczegó#owo/ci zapisów dziennika zdarze:
62
3.2.
Zwi'kszenie liczby komunikatów o b#'dach
63
3.3.
Rejestracja zawarto/ci POST
65
3.4.
Rejestracja adresu IP klienta #%cz%cego 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 pochodz%cych
ze stron lokalnych
69
3.8.
Zmiana pliku dziennika zdarze: o okre/lonej porze
70
3.9.
Zmiana pliku dziennika zdarze: pierwszego dnia miesi%ca
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 b#'dach
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 u(ywanych przegl%darek
79
3.17. Rejestracja dowolnych pól nag#ówka (%dania
79
3.18. Rejestracja dowolnych pól nag#ówka odpowiedzi
80
3.19. Rejestracja aktywno/ci serwera w bazie danych MySQL
81
3.20. Rejestracja zdarze: w dzienniku systemowym
82
3.21. Rejestracja katalogów u(ytkownikó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 domy/lnego
90
4.3.
Konfiguracja serwerów wirtualnych opartych na adresach
91
4.4.
Konfiguracja jednego z serwerów wirtualnych
opartych na adresach jako serwera domy/lnego
92
4.5.
Jednoczesne u(ycie serwerów wirtualnych
opartych na adresach oraz na nazwach
93
4.6.
Liczne serwery wirtualne obs#ugiwane
za pomoc% modu#u mod_vhost_alias
94
4.7.
Liczne serwery wirtualne obs#ugiwane 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/) dost'pna pod kilkoma adresami IP
99
4.12. Definiowanie serwerów wirtualnych w bazie danych
100
Spis tre%ci
5
5. Aliasy, przekierowania oraz przepisania ................................................................. 103
5.1.
Przyporz%dkowanie adresu URL do katalogu
103
5.2.
Tworzenie dodatkowego adresu URL dla istniej%cej zawarto/ci
105
5.3.
Przydzielenie u(ytkownikom ich w#asnych adresów URL
106
5.4.
Uto(samienie kilku adresów URL za pomoc% pojedynczej dyrektywy
109
5.5.
Przyporz%dkowanie kilku adresów URL do tego samego katalogu CGI
110
5.6.
Tworzenie katalogów CGI dla ka(dego u(ytkownika
110
5.7.
Przekierowanie do innego miejsca
111
5.8.
Przekierowanie kilku adresów URL w to samo miejsce
113
5.9.
Nierozró(nianie wielko/ci liter w adresach URL
114
5.10. Wyró(nianie sk#adni kodu "ród#owego PHP
bez u(ycia dowi%za: symbolicznych
115
5.11. Wymiana ci%gów znaków w (%danych adresach URL
117
5.12. Zamiana informacji o /cie(ce na argumenty CGI
117
5.13. Odmowa dost'pu (%daniom pochodz%cym z obcych stron
118
5.14. Przekierowanie (%da: pochodz%cych z obcych stron do strony z informacjami
119
5.15. Przepisanie na podstawie #a:cucha zapytania
120
5.16. Przekierowanie ca#ego lub cz'/ci 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 /cie(ki do ci%gu zapytania i odwrotnie
124
5.21. Przepisywanie nazwy serwera na nazw' katalogu
125
5.22. Przekszta#canie segmentów adresu URL w argumenty zapytania
126
5.23. U(ywanie dyrektyw AliasMatch, ScriptAliasMatch i RedirectMatch
126
6. Bezpiecze4stwo ......................................................................................................... 129
6.1.
Wykorzystanie kont u(ytkowników
do uwierzytelnienia dost'pu do zasobów WWW
130
6.2.
Konfiguracja hase# jednorazowych
132
6.3.
Wygasaj%ce has#a
133
6.4.
Ograniczanie wielko/ci umieszczanych na serwerze plików
135
6.5.
Ograniczenie pobierania obrazków ze stron znajduj%cych si'
na innych serwerach
137
6.6.
<%danie zarówno s#abego, jak i silnego uwierzytelnienia
138
6.7.
Zarz%dzanie plikami .htpasswd
139
6.8.
Przygotowanie plików hase# uwierzytelniania typu Digest
141
6.9.
Rozlu"nienie ochrony w podkatalogu
142
6.10. Wybiórcze zniesienie ochrony
144
6.11. Autoryzacja za pomoc% informacji o w#a/cicielu pliku
146
6.12. Przechowywanie po/wiadcze: u(ytkownika w bazie danych MySQL
147
6
Spis tre%ci
6.13. Dost'p do nazwy u(ytkownika uwierzytelnionego
148
6.14. Uzyskanie has#a u(ytego do uwierzytelnienia
149
6.15. Ochrona przed atakami na has#a typu brute-force
150
6.16. Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic
151
6.17. Dost'p do po/wiadcze: osadzonych w adresach URL
153
6.18. Zabezpieczenie us#ugi WebDAV
153
6.19. Uruchomienie us#ugi WebDAV bez udzielenia zezwolenia na zapisywanie
do plików u(ytkownikowi, z uprawnieniami którego dzia#a serwer
154
6.20. Ograniczanie dost'pu poprzez proxy do okre/lonych adresów URL
156
6.21. Ochrona plików za pomoc% os#ony
157
6.22. Ochrona plików serwera przed z#o/liwymi skryptami
159
6.23. Nadanie prawid#owych uprawnie: do plików
160
6.24. Uruchomienie serwera z minimaln% liczb% modu#ów
163
6.25. Ograniczenie dost'pu do plików znajduj%cych si'
poza katalogiem g#ównym WWW
165
6.26. Ograniczenie metod dost'pnych dla u(ytkowników
166
6.27. Ograniczanie (%da: zakresów
167
6.28. Obrona przed atakami DoS przy u(yciu modu#u mod_evasive
168
6.29. Zmiana katalogu g#ównego serwera Apache
przy u(yciu modu#u mod_security
170
6.30. Migracja do mechanizmów uwierzytelniania w wersji 2.2
171
6.31. Blokowanie dzia#ania robaków przy u(yciu modu#u mod_security
172
6.32. Uprawnienia tylko do odczytu i do zapisu w repozytorium Subversion
173
6.33. U(ywanie sta#ych 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 o/rodka certyfikacyjnego
183
7.5.
Udost'pnianie cz'/ci 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 domy/lnego w katalogu CGI
194
8.4. Wykorzystanie rozszerze: plików systemu Windows
do uruchamiana skryptów CGI
195
Spis tre%ci
7
8.5.
Identyfikacja skryptów CGI na podstawie ich rozszerze:
197
8.6.
Sprawdzenie, czy obs#uga programów CGI
jest skonfigurowana poprawnie
198
8.7.
Odczyt warto/ci z formularza
200
8.8.
Uruchamianie programu CGI dla pewnych rodzajów tre/ci
203
8.9.
U(ycie SSI
204
8.10. Przedstawienie daty ostatniej modyfikacji
206
8.11. Do#%czenie standardowego nag#ówka
207
8.12. Do#%czanie wyniku dzia#ania programu CGI
208
8.13. Uruchamianie za pomoc% programu suexec skryptów CGI
z uprawnieniami innego u(ytkownika
208
8.14. Instalacja programu obs#ugi modu#u mod_perl z serwisu CPAN
210
8.15. Pisanie programów obs#ugi modu#u mod_perl
212
8.16. Uruchomienie obs#ugi skryptów PHP
213
8.17. Weryfikacja instalacji PHP
214
8.18. Parsowanie danych wynikowych CGI
z uwzgl'dnieniem dyrektyw Server Side Includes
215
8.19. Parsowanie danych wynikowych skryptów ScriptAlias
z uwzgl'dnieniem dyrektyw Server Side Includes
216
8.20. Wyznaczenie mod_perl do obs#ugi wszystkich skryptów w j'zyku Perl
216
8.21. W#%czenie obs#ugi skryptów j'zyka Python
217
9. Obs1uga b1Ddów ........................................................................................................ 219
9.1.
Obs#uga przypadku brakuj%cego pola Host
219
9.2. Zmiana kodu stanu odpowiedzi za pomoc% skryptu CGI
220
9.3.
W#asne komunikaty o b#'dach
221
9.4.
Komunikaty o b#'dach w ró(nych j'zykach
222
9.5.
Przekierowanie odwo#a:
do niepoprawnych adresów URL do innych stron
223
9.6.
Prawid#owa strona komunikatu o b#'dzie w programie Internet Explorer
224
9.7.
Powiadamianie o b#'dach
225
10. Proxy .......................................................................................................................... 227
10.1. Zabezpieczenie serwera proxy
227
10.2. Zabezpieczenie serwera proxy przed u(yciem
go jako otwartego przeka"nika poczty
229
10.3. Przekazywanie (%da: do innego serwera
230
10.4. Blokowanie (%da: proxy do okre/lonych miejsc
231
10.5. Przeniesienie (%da: obs#ugiwanych przez mod_perl na inny serwer
232
10.6. Konfiguracja buforuj%cego serwera proxy
233
10.7. Filtrowanie tre/ci przekazywanych przez serwer proxy
234
10.8. Wymaganie uwierzytelnienia si' na serwerze dost'pnym poprzez proxy
235
8
Spis tre%ci
10.9. Równowa(enie obci%(enia przy u(yciu mod_proxy_balancer
235
10.10. Przekazywanie wywo#a: z serwera wirtualnego
237
10.11. Blokowanie przekazywania wywo#a: FTP
237
11. Wydajno%? ..................................................................................................................239
11.1. Okre/lenie ilo/ci potrzebnej pami'ci RAM
239
11.2. Testowanie wydajno/ci serwera Apache za pomoc% programu ab
240
11.3. Dobór ustawie: dost'pu keepalive
242
11.4. Okre/lenie stanu aktywno/ci witryny WWW
243
11.5. Unikanie wyszukiwania w DNS
244
11.6. Optymalizacja dowi%za: symbolicznych
246
11.7. Ograniczanie wp#ywu u(ycia plików .htaccess na wydajno/) serwera
247
11.8. Wy#%czenie negocjacji tre/ci
249
11.9. Optymalizacja tworzenia procesów
250
11.10. Dobór parametrów tworzenia w%tków
251
11.11. Buforowanie najcz'/ciej przegl%danych plików
253
11.12. Równomierne roz#o(enie obci%(enia mi'dzy kilka serwerów
254
11.13. Buforowanie list zawarto/ci katalogu
256
11.14. Przy/pieszenie pracy programów Perl CGI za pomoc% modu#u mod_perl
257
11.15. Buforowanie tre/ci dynamicznych
258
12. Zawarto%? katalogów ................................................................................................ 261
12.1. Generowanie listy zawarto/ci katalogu lub folderu
261
12.2. Wy/wietlanie standardowego nag#ówka i stopki dla listy zawarto/ci katalogu 263
12.3. Wykorzystanie arkusza stylów
263
12.4. Ukrywanie wybranych elementów na li/cie zawarto/ci
264
12.5. Wyszukiwanie konkretnych plików na li/cie zawarto/ci katalogu
265
12.6. Sortowanie listy zawarto/ci
265
12.7. Sortowanie listy zawarto/ci w sposób wskazany przez klienta
266
12.8. Definiowanie sposobu formatowania listy zawarto/ci
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 zawarto/ci
270
12.13. Wy/wietlanie katalogów na pocz%tku listy
271
12.14. Porz%dkowanie wzgl'dem numeru wersji
272
12.15. W#%czanie sortowania wzgl'dem numeru wersji przez u(ytkownika
273
12.16. Przydzielenie u(ytkownikowi pe#nej kontroli nad formatem listy zawarto/ci 273
12.17. Wy#%czenie mo(liwo/ci modyfikowania listy zawarto/ci przez u(ytkownika 274
12.18. Pomijanie wybranych kolumn na li/cie zawarto/ci
275
12.19. Wy/wietlanie plików chronionych has#em
276
12.20. Wy/wietlanie aliasów na li/cie zawarto/ci
277
Spis tre%ci
9
13. Pozosta1e zagadnienia .............................................................................................. 279
13.1. Poprawne umieszczanie dyrektyw
279
13.2. Zmiana nazw plików .htaccess
281
13.3. Tworzenie listy zawarto/ci katalogu
282
13.4. Rozwi%zanie „problemu ko:cowego uko/nika”
283
13.5. Ustalenie zawarto/ci pola Content-Type
w zale(no/ci od mo(liwo/ci przegl%darki
285
13.6. Obs#uga brakuj%cego pola Host nag#ówka
285
13.7. Inny domy/lny dokument
286
13.8. Konfiguracja domy/lnej „ulubionej ikony”
287
13.9. Wy/wietlanie listy zawarto/ci katalogów ScriptAlias
287
13.10. W#%czanie obs#ugi plików .htaccess
289
13.11. Przekszta#canie dyrektyw Server Side Includes
z serwerów IBM lub Lotus do serwera Apache
290
A UHycie wyraHe4 regularnych ..................................................................................... 291
B RozwiJzywanie problemów ..................................................................................... 297
Skorowidz ............................................................................................................................ 307
43
ROZDZIAL 2.
Instalacja modu1ów
W pakiecie podstawowej dystrybucji serwera WWW Apache nie ma bardzo wielu popular-
nych modu#ów. Wi'kszo/) z nich nie trafi#a do dystrybucji podstawowej z powodów licen-
cyjnych lub z powodów zwi%zanych z obs#ug% techniczn%, inne nie s% dystrybuowane przez
Apache Software Foundation, gdy( tak% decyzj' podj'li twórcy serwera, a jeszcze inne s% in-
tegraln% cz'/ci% innych projektów. Na przyk#ad modu# mod_ssl dla serwera Apache 1.3 jest
tworzony i rozwijany oddzielnie, nie tylko z powodu ameryka:skich ogranicze: eksportowych
(które by#y znacznie bardziej rygorystyczne w czasie, gdy pakiet powstawa#), ale g#ównie
dlatego, (e wymaga on wprowadzenia zmian do j%dra serwera, na które nie zdecydowali si'
jego twórcy.
W niniejszym rozdziale przedstawiono receptury omawiaj%ce instalacj' niektórych najbar-
dziej popularnych modu#ów pochodz%cych spoza oficjalnej dystrybucji. Je(eli zachodzi taka
potrzeba, przedstawione s% osobne receptury omawiaj%ce 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 modu#y s% tak popularne lub
s% tak z#o(one, (e po/wi'cono im ca#e strony internetowe. Tak jest na przyk#ad w przypadku
modu#ów omówionych w tym rozdziale.
Wielu twórców modu#ów zajmuje si' tworzeniem tylko jednego modu#u. Oznacza to, (e poten-
cjalnie mo(e istnie) tyle sposobów instalacji modu#ów, ile jest samych modu#ów. Pierwsza re-
ceptura tego rozdzia#u opisuje proces instalacji, który powinien by) odpowiedni dla wielu
modu#ów wersji 1.3 serwera Apache. Jednak w przypadku ka(dego modu#u, nale(y sprawdzi)
w jego dokumentacji, czy jego instalacja nie przebiega w inny sposób.
Wiele z tych modu#ów mo(na otrzyma) od firm, które tworz% pakiety i dystrybuuj% opro-
gramowanie Apache — na przyk#ad w postaci modu#ów RPM firm Mandrake czy Red Hat.
Jednak takie pakiety budowane s% przy pewnych za#o(eniach poczynionych przez tworz%c%
je firm'. Mówi%c inaczej — je(eli serwer zosta# zbudowany z plików "ród#owych, a jego pliki
znajduj% si' w miejscach innych ni( standardowe, nie nale(y si' dziwi), gdy instalacja jakie-
go/ modu#u si' nie powiedzie.
44
Rozdzia1 2. Instalacja modu1ów
Wszystkie modu#y opisane w tym rozdziale s% obs#ugiwane przez wersj' 1.3 serwera Apache
dzia#aj%c% 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. Obs-uga modu-ów w systemie Windows oraz przez wersj7 2.0 serwera Apache
Nazwa modu1u
Obs1uga w systemie Windows
Obs1uga przez serwer Apache 2.0
mod_dav
Tak
Modu do #czony do serwera
— nie ma potrzeby instalowania.
mod_perl
Tak
Tak
mod_php
Tak
Tak
mod_ssl
Nie
Modu do #czony do serwera
— nie ma potrzeby instalowania.
2.1. Instalacja typowego modu1u
Problem
Nale(y zainstalowa) posiadany modu#, którego instalacja nie zosta#a omówiona osobno w tym
rozdziale.
RozwiJzanie
W katalogu, w którym znajduje si' plik "ród#owy modu#u, nale(y wyda) polecenie:
% /)cie*ka/do/serwera/apache/bin/apxs -cia modu+.c
Analiza
Gdy modu# sk#ada si' z pojedynczego pliku o rozszerzeniu .c, istnieje du(e prawdopodobie:-
stwo, (e modu# uda si' zbudowa) i zainstalowa) za pomoc% powy(szego rozwi%zania. Mo-
du#om sk#adaj%cym si' z kilku plików "ród#owych powinny towarzyszy) instrukcje instalacji.
Opcje
-cia
powoduj% kolejno kompilacj', instalacj', a nast'pnie aktywacj' modu#u. Pierwsza
czynno/) jest oczywista, instalacja polega na umieszczeniu pliku .so w miejscu, w którym b'dzie
go poszukiwa# serwer Apache, a aktywacja polega na umieszczeniu odpowiedniego wpisu
w pliku httpd.conf.
Zobacz równieH
" Strony podr'cznika man dotycz%ce programu apxs, przewa(nie ServerRoot/man/man8/apxs.8.
2.2. Instalacja modu1u mod_dav w systemie uniksowym
45
2.2. Instalacja modu1u mod_dav
w systemie uniksowym
Problem
Na serwerze WWW nale(y uruchomi) us#ug' WebDAV. Dzi'ki us#udze WebDAV zdalni u(yt-
kownicy mog% dodawa), usuwa) i uaktualnia) pliki znajduj%ce si' na serwerze w sposób
niezawodny i bezpieczny, bez potrzeby korzystania z us#ugi FTP.
RozwiJzanie
Modu# mod_dav jest do#%czony do wersji 2.0 serwera Apache, wystarczy go tylko uaktywni) za
pomoc% opcji kompilacji
--enable-dav
.
W przypadku serwera Apache 1.3 pakiet "ród#owy modu#u mod_dav nale(y pobra) ze strony
http://webdav.org/mod_dav/
, rozpakowa), a nast'pnie wyda) polecenia:
% cd mod_dav-1.0.3-1.3.6
% ./configure --with-apxs=/usr/local/apache/bin/apxs
% make
# make install
Nast'pnie nale(y 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 w#%czy) do dzia#aj%ce-
go serwera. Aby sprawdzi), czy modu# zosta# zainstalowany poprawnie, trzeba na potrzeby
us#ugi WebDAV przeznaczy) na serwerze jaki/ katalog i sprawdzi) dost'p do niego za po-
moc% narz'dzia wspomagaj%cego WebDAV. Polecamy u(ycie do tego celu programu cadaver
— korzystaj%cego z wiersza polece: narz'dzia typu open source. (Adres strony, z której mo(-
na pobra) program cadaver, znajduje si' na ko:cu receptury).
Aby uaktywni) na serwerze WWW us#ug' WebDAV, nale(y do pliku httpd.conf doda) co
najmniej dwie dyrektywy. Pierwsza wskazuje po#o(enie bazy blokad plików, wykorzysty-
wanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie ze sob% nie
kolidowa#y. Baza musi znajdowa) si' katalogu, do którego serwer ma prawo zapisu. Na
przyk#ad:
# cd /usr/local/apache
# mkdir var
# chgrp nobody var
# chmod g+w var
Nast'pnie w pliku httpd.conf, poza wszystkimi kontenerami, nale(y umie/ci) wiersze:
<IfModule mod_dav.c>
DAVLockDB /usr/local/apache/var/DAVlock
</IfModule>
46
Rozdzia1 2. Instalacja modu1ów
Baza DAVLockDB nie mo@e znajdowa) si' w systemie plików typu NFS, gdy( NFS
nie obs#uguje wymaganego przez modu# mod_dav sposobu blokowania plików.
Umieszczenie bazy blokad plików w systemie plików typu NFS mo(e doprowadzi)
do nieprzewidywalnych skutków.
Nast'pnie nale(y utworzy) tymczasowy katalog s#u(%cy do przetestowania dzia#ania us#ugi
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 nale(y doda) sekcj' przeznaczaj%c% utworzony katalog na potrzeby
us#ugi WebDAV:
<Directory "/usr/local/apache/htdocs/dav-test">
DAV On
</Directory>
Nast'pnie nale(y zatrzyma) i ponownie uruchomi) serwer, który po uruchomieniu powinien
rozpocz%) obs#ug' operacji WebDAV kierowanych pod lokalny identyfikator URI /dav-test.
Aby przetestowa) dzia#anie WebDAV za pomoc% programu cadaver, nale(y wyda) przedsta-
wione polecenia, w wyniku czego powinno si' otrzyma) wyniki podobne do poni(szych:
% cd /tmp
% echo "Zwyk+y 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 w#a/ciwo/ci (ang. properties) s% atrybutami zasobów WebDAV. Niektóry-
mi z nich (na przyk#ad rozmiarem zasobu) zarz%dza system, a inne mog% by) dowolnie do-
dawane, zmieniane i usuwane przez u(ytkownika.
Po sprawdzeniu poprawno/ci dzia#ania modu#u mod_dav katalog htdocs/dav-test nale(y usun%),
podobnie jak zwi%zan% z nim sekcj'
<Directory>
pliku httpd.conf, a nast'pnie nale(y zapo-
zna) si' z receptur% 6.18.
Zobacz równieH
" Receptura 6.18.
" http://webdav.org/mod_dav/.
" http://webdav.org/cadaver/.
2.3. Instalacja modu1u mod_dav w systemie Windows
47
2.3. Instalacja modu1u mod_dav w systemie Windows
Problem
Na serwerze WWW Apache 1.3 dzia#aj%cym w systemie Windows nale(y za pomoc% modu#u
mod_dav
uruchomi) us#ug' WebDAV.
RozwiJzanie
Modu# mod_dav w wersji 2.0 serwera Apache znajduje si' standardowo, nie ma wi'c w takim
przypadku konieczno/ci pobierania go i instalowania.
Ze strony http://webdav.org/mod_dav/win32/ nale(y pobra) i rozpakowa) pakiet modu#u mod_dav
przeznaczony dla systemu Windows. Nast'pnie nale(y sprawdzi), czy w katalogu
ServerRoot
(w katalogu g#ównym serwera Apache) znajduj% si' pliki xmlparse.dll oraz xmltok.dll. Je(eli ich
tam nie ma, nale(y odnale") je w innych katalogach serwera Apache, a nast'pnie skopiowa)
je do katalogu
ServerRoot
. Do pracy modu# mod_dav potrzebuje pakietu Expat, który jest
do#%czany do serwera Apache pocz%wszy od wersji 1.3.9. Poszukiwane pliki pochodz% z pa-
kietu Expat.
Plik DLL modu#u mod_dav nale(y przekopiowa) do katalogu, w którym znajduj% si' modu#y
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 nale(y umie/ci) nast'puj%cy wiersz:
LoadModule dav_module modules/mod_dav.dll
Je(eli plik httpd.conf zawiera dyrektyw'
ClearModuleList
i dodaje wszystkie modu#y, nale(y
równie( doda) wiersz
AddModule
. Mo(na te( wiersz
LoadModule
dotycz%cy modu#u mod_dav
umie/ci) po dyrektywie
ClearModuleList
.
Analiza
Modu# mod_dav zachowuje si' poprawnie i #atwo daje si' zbudowa) i w#%czy) do dzia#aj%ce-
go serwera. Aby sprawdzi), czy modu# zosta# zainstalowany poprawnie, trzeba na potrzeby
us#ugi WebDAV przeznaczy) na serwerze jaki/ katalog i sprawdzi) dost'p do niego za po-
moc% narz'dzia wspomagaj%cego WebDAV lub otworzy) go programem Eksplorator Windows
(pocz%wszy od systemu Windows 2000). Mo(na te( uzyska) do niego dost'p z innego kom-
putera za pomoc% programu cadaver lub innego narz'dzia wspomagaj%cego WebDAV.
Aby uaktywni) na serwerze WWW us#ug' WebDAV, nale(y do pliku ServerRoot/conf/httpd.conf
doda) co najmniej dwie dyrektywy. Pierwsza wskazuje po#o(enie bazy blokad plików wyko-
rzystywanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie nie
kolidowa#y ze sob%. Baza musi znajdowa) si' w katalogu, do którego serwer ma prawo do za-
pisu. Na przyk#ad:
C:\Apache-1.3>mkdir var
48
Rozdzia1 2. Instalacja modu1ów
<eby uruchomi) us#ug' WebDAV, do pliku httpd.conf nale(y doda) nast'puj%ce wiersze:
<IfModule mod_dav.c>
DAVLockDB "C:/Apache-1.3/var/dav-lock"
</IfModule>
<eby przetestowa) prac' modu#u mod_dav, nale(y utworzy) tymczasowy katalog:
C:\Apache-1.3>mkdir htdocs\dav-test
Nast'pnie, po to, by us#uga WebDAV rozpocz'#a udost'pnianie katalogu testowego, nale(y
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 nale(y zatrzyma) serwer i uruchomi) go ponownie, a nast'pnie spróbowa) otworzy)
katalog /dav-test za pomoc% klienta WebDAV. W przypadku zastosowania jako klienta Web-
DAV dzia#aj%cego w innym komputerze programu cadaver, przyk#ad jego u(ycia mo(na znale")
w recepturze 2.2. Poni(ej przedstawiono sposób testowania pracy modu#u mod_dav za pomoc%
programu Eksplorator Windows.
Testowania pracy modu1u mod_dav za pomocJ programu Eksplorator Windows
Po przeznaczeniu katalogu htdocs\dav-test na potrzeby us#ugi WebDAV i ponownym urucho-
mieniu serwera WWW Apache nale(y uruchomi) program Eksplorator Windows. Aby uzyska)
dost'p do katalogu us#ugi WebDAV, nale(y wykona) ni(ej opisane czynno/ci. Mo(na to zrobi)
na komputerze, na którym uruchomiono us#ug' WebDAV lub na innym komputerze z systemem
Windows, który ma dost'p do tego komputera.
1.
W programie Eksplorator Windows nale(y klikn%) pozycj' Moje miejsca sieciowe
1
.
2.
Nast'pnie w prawym oknie programu Eksplorator Windows nale(y klikn%) dwukrotnie
ikon' Dodaj miejsce sieciowe.
3.
Jako lokalizacj' nowego miejsca sieciowego nale(y wpisa):
http://127.0.0.1/dav-test/
Gdy czynno/ci te wykonywane s% w innym komputerze ni( ten, w którym uruchomiono
us#ug' WebDAV, zamiast adresu
127.0.0.1
nale(y wpisa) nazw' serwera, w którym
uruchomiono modu# mod_dav.
4.
Po naci/ni'ciu przycisku Dalej nale(y 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 nale(y przej/) do dowolnego katalogu
zawieraj%cego pliki.
1
Poni(sza procedura dotyczy systemów Windows 2000 lub Windows Me. W systemie Windows XP nale(y
klikn%) dwukrotnie znajduj%c% si' na pulpicie ikon' Moje miejsca sieciowe, a nast'pnie ze znajduj%cego si'
po lewej stronie panela Zadania sieciowe wybra) Dodaj miejsce sieciowe — przyp. t-um.
2.4. Instalacja modu1u mod_perl w systemie uniksowym
49
7.
Przytrzymuj%c wci/ni'ty przycisk Ctrl, nale(y przeci%gn%) do okna otwartego w punkcie 5.
dowolny plik lub pliki.
8.
System Windows powinien na krótko pokaza) okno informuj%ce o post'pie procesu ko-
piowania, po czym kopiowany plik powinien znale") si' w oknie docelowym.
Gratulacje! Plik zosta# skopiowany do serwera za pomoc% us#ugi WebDAV.
Po zako:czeniu testowania nale(y usun%) katalog htdocs\dav-test, a tak(e usun%) z pliku konfigu-
racyjnego wiersz
<Directory "C:/Apache-1.3/htdocs/dav-test">
. W przeciwnym razie swoje
pliki b'dzie móg# umieszcza) tam ka(dy.
Zobacz równieH
" Receptura 6.18.
" http://webdav.org/mod_dav/.
2.4. Instalacja modu1u mod_perl
w systemie uniksowym
Problem
Aby skrypty Perla by#y wykonywane szybciej i by#y lepiej obs#ugiwane przez serwer WWW,
nale(y zainstalowa) modu# mod_perl.
RozwiJzanie
W przypadku serwera Apache 1.3 ze strony http://perl.apache.org/ nale(y pobra) pakiet "ró-
d#owy modu#u mod_perl 1.0, rozpakowa) go, a nast'pnie wyda) nast'puj%ce polecenia:
% perl Makefile.PL \
> USE_APXS=1 \
> WITH_APXS=/usr/local/apache/bin/apxs \
> EVERYTHING=1 \
> PERL_USELARGEFILES=0
% make
% make install
Nast'pnie nale(y uruchomi) serwer ponownie.
Dla serwera Apache 2.0 i wersji pó"niejszych proces przebiega analogicznie. Nale(y pobra)
i rozpakowa) pakiet "ród#owy mod_perl 2.0, a nast'pnie wykona) nast'puj%ce polecenie:
% perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs
Analiza
Modu# mod_perl jest modu#em do/) z#o(onym. Na serwerze Apache mo(na zainstalowa) go na
kilka sposobów. W recepturze przedstawiono sposób najszybszy i najprostszy. Je(eli z jakich/
powodów sposób ten jest nieodpowiedni, nale(y zapozna) si' z ró(nymi plikami README.*
50
Rozdzia1 2. Instalacja modu1ów
znajduj%cymi si' w katalogu pakietu. Poniewa( podstawowym j'zykiem modu#u jest Perl,
a nie C, instrukcja instalacji ró(ni si' zdecydowanie od stosowanych w przypadku wi'kszo/ci
innych modu#ów.
Gdy po instalacji modu#u serwer uruchomi si' poprawnie, modu# mod_perl rozpoczyna dzia#a-
nie i jest skonfigurowany. Dzia#anie modu#u mo(na przetestowa), dokonuj%c zmian w pliku
httpd.conf
, dodaj%c kilka skryptów i obserwuj%c, czy serwer obs#uguje je poprawnie. Oto
przyk#ad testowania dzia#ania modu#u mod_perl.
1.
Na potrzeby skryptów modu#u mod_perl nale(y utworzy) nowy folder:
# cd ServerRoot
# mkdir lib lib/perl lib/perl/Apache
2.
W katalogu conf/ serwera nale(y utworzy) plik startup.pl zawieraj%cy instrukcje urucho-
mieniowe dla modu#u 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.
Nast'pnie nale(y utworzy) wykorzystywany w te/cie 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 Ywiecie! Pozdrowienia od moduZu mod_perl.\n");
return OK;
}
1;
4.
Teraz trzeba otworzy) do edycji plik konfiguracyjny serwera i umie/ci) w nim dyrekty-
wy umo(liwiaj%ce modu#owi mod_perl odnalezienie potrzebnych mu sk#adników oraz in-
formuj%ce go, kiedy ma uruchomi) skrypt testowy. Do pliku httpd.conf nale(y doda) na-
st'puj%ce wiersze:
<IfModule mod_perl.c>
PerlRequire conf/startup.pl
<Location /mod_perl/howdy>
SetHandler perl-script
PerlHandler Apache::HelloWorld
</Location>
</IfModule>
5.
Teraz nale(y uruchomi) serwer ponownie, a nast'pnie uruchomi) skrypt, wpisuj%c:
http://localhost/mod_perl/howdy
.
Je(eli konfiguracja jest poprawna, pojawi si' strona zawieraj%ce zdanie: „Witaj /wiecie! Po-
zdrowienia od modu#u mod_perl.”.
2.5. Instalacja modu1u mod_php w systemie uniksowym
51
Zobacz równieH
" http://perl.apache.org/.
" Ksi%(ka Writing Apache Modules with Perl and C, autorzy Doug MacEachern oraz Lincoln
Stein, wydawnictwo O'Reilly.
" Ksi%(ka mod_perl Developer's Cookbook, autorzy Geoffrey Young, Paul Lindner oraz Randy
Kobes wydawnictwo Sams
2
.
2.5. Instalacja modu1u mod_php
w systemie uniksowym
Problem
Do dzia#aj%cego serwera WWW Apache nale(y doda) modu# obs#ugi skryptów mod_php.
RozwiJzanie
Pakiet "ród#owy modu#u mod_php nale(y pobra) ze strony http://php.net/, rozpakowa) go, a na-
st'pnie wyda) nast'puj%ce polecenia:
% cd php-5.2.3
% ./configure \
> --with-apxs=/usr/local/apache/bin/apxs
% make
# make install
Nast'pnie nale(y uruchomi) serwer ponownie.
Analiza
Aby przekona) si', (e instalacja zako:czy#a si' powodzeniem, w katalogu
DocumentRoot
ser-
wera WWW nale(y utworzy) sk#adaj%cy si' z jednego wiersza plik info.php:
<?php phpinfo( ); ?>
Do pliku konfiguracyjnego httpd.conf nale(y doda) poni(sze wiersze:
<IfModule mod_php4.c>
AddHandler application/x-httpd-php .php
</IfModule>
Po ponownym uruchomieniu serwera WWW nale(y za pomoc% przegl%darki spróbowa)
otworzy) dokument info.php. W wyniku tego powinien pojawi) si' szczegó#owy opis aktyw-
nych opcji PHP. Je(eli opis rzeczywi/cie si' pojawi, b'dzie to wskazywa), (e instalacja zako:-
czy#a si' pomy/lnie i plik info.php mo(na usun%).
Podczas instalacji PHP mo(na zastosowa) wiele opcji i rozszerze:, w tej recepturze omówio-
no tylko najprostszy sposób instalacji modu#u.
2
Polskie wydanie: mod_perl. Podr'cznik programisty, Helion 2003 — przyp. red.
52
Rozdzia1 2. Instalacja modu1ów
Zobacz równieH
" Receptura 8.16.
" Receptura 8.17.
" http://php.net/.
2.6. Instalacja modu1u mod_php w systemie Windows
Problem
Do dzia#aj%cego w systemie Windows serwera WWW Apache nale(y doda) modu# obs#ugi
skryptów mod_php.
RozwiJzanie
W tej recepturze zamiast podawania szczegó#owych polece: czynno/ci, które nale(y wyko-
na), przedstawione zostan% w sposób opisowy.
1.
Ze strony http://php.net/ nale(y pobra) plik binarny .zip (a nie plik .exe) PHP dla systemu
Windows zawieraj%cego rozszerzenia API.
2.
Plik .zip nale(y rozpakowa) do katalogu, w którym zawarto/) pliku mo(e pozosta) na
zawsze (na przyk#ad do katalogu C:\PHP4). W przypadku u(ycia programu WinZip na-
le(y zaznaczy) pole wyboru Use folder names, aby utworzona zosta#a taka struktura pli-
ków jak umieszczona w pliku .zip.
3.
Do katalogu \modules\ znajduj%cego si' w katalogu
ServerRoot
serwera Apache nale(y
przekopiowa) plik PHP4\SAPI\php4apache.dll.
4.
W oknie wiersza polecenia nale(y przej/) do katalogu PHP4, do którego zosta# rozpako-
wany plik .zip, a nast'pnie 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%
nale(y
u(y)
%WINDOWS%
).
5.
Nast'pnie nale(y otworzy) do edycji plik %SYSTEMROOT%\php.ini, odnale") w nim
wiersz zaczynaj%cy si' od
extension_dir
i zmieni) jego warto/) tak, by wskazywa#a na
katalog PHP4\extensions. Gdy, na przyk#ad, plik .zip zosta# rozpakowany do katalogu
C:\PHP4
, wiersz ten powinien wygl%da) nast'puj%co:
extension_dir = C:\PHP4\extensions
6.
Nast'pnie trzeba otworzy) do edycji plik conf\httpd.conf znajduj%cy si' w katalogu
ServerRoot
i w pobli(u innych wierszy
LoadModule
nale(y doda) wiersz:
LoadModule php4_module modules/php4apache.dll
W pobli(u nale(y umie/ci) równie( wiersze dotycz%ce plików .php:
<IfModule mod_php4.c>
AddType application/x-httpd-php .php
</IfModule>
2.7. Instalacja modu1u mod_ssl
53
7.
Na koniec nale(y zrestartowa) serwer Apache, w wyniku czego modu# PHP powinien si'
uaktywni).
Analiza
Aby zainstalowa) modu# PHP w systemie Windows, nale(y wykona) wiele drobiazgowych
czynno/ci. <eby przekona) si', (e proces instalacji zako:czy# si' powodzeniem, w katalogu
DocumentRoot
serwera nale(y utworzy) sk#adaj%cy si' z jednego wiersza plik info.php:
<?php phpinfo( ); ?>
Po ponownym uruchomieniu si' serwera WWW nale(y za pomoc% przegl%darki spróbowa)
otworzy) dokument info.php. W wyniku tego powinien pojawi) si' szczegó#owy opis aktyw-
nych opcji PHP.
W czasie instalacji PHP mo(na zastosowa) wiele opcji i rozszerze:, w tej recepturze omó-
wiono tylko najprostszy sposób instalacji modu#u. Wi'cej szczegó#ów na ten temat mo(na
znale") w pliku install.txt znajduj%cym si' w katalogu PHP4 oraz w dokumentacji znajduj%cej
si' na stronach WWW.
Zobacz równieH
" http://php.net/.
2.7. Instalacja modu1u mod_ssl
Problem
Do dzia#aj%cego serwera WWW Apache nale(y doda) obs#ug' SSL, instaluj%c w nim mod_ssl
— modu# bezpiecznego HTTP.
RozwiJzanie
Windows
Sposób instalacji protoko#u SSL w systemie Windows jest tematem receptury 7.2. Mówi%c
w najwi'kszym skrócie, najlepiej jest pobra) XAMPP z witryny ApacheFriends.org, chyba
(e posiada si' odpowiednie do/wiadczenie w budowaniu kodu "ród#owego w systemie
Microsoft Windows.
Apache 2.0
Modu# mod_ssl zosta# w#%czony do wersji 2.0 serwera Apache, ale w przypadku budowy
serwera z kodu "ród#owego, modu# nie jest automatycznie kompilowany ani instalowany.
Aby w takim przypadku zainstalowa) modu# mod_ssl, nale(y 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/
nale(y pobra) i rozpakowa) archiwum tar modu#u, a nast'pnie wyda) polecenia:
54
Rozdzia1 2. Instalacja modu1ó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# dzia#a), kod "ród#owy serwera Apache musi zosta) zmodyfikowany.
Dzi'ki temu mo(na zainstalowa) tylko tak% wersj' pakietu mod_ssl, która odpowiada wersji po-
siadanej dystrybucji serwera Apache. Je(eli instalacja serwera Apache nie zawiera plików "ró-
d#owych (co ma miejsce na przyk#ad w przypadku instalacji serwera z pakietu RPM czy z innej
tego typu dystrybucji) — instalacja modu#u mod_ssl nie powiedzie si'.
Poza kodami "ród#owymi serwera Apache do zainstalowania modu#u mod_ssl potrzebne s%
jeszcze Perl oraz biblioteki OpenSSL. Ich po#o(enie okre/la si' za pomoc% opcji
--with-ssl
.
Je(eli biblioteki znajduj% si' w katalogu utworzonym przez ich dostawc', s#owo kluczowe
SYSTEM
poinformuje, (e nale(y ich szuka) w#a/nie tam, dzi'ki czemu nie trzeba b'dzie ich
szuka) samemu.
W przeciwie:stwie do wi'kszo/ci innych modu#ów serwera Apache, aby zainstalowa) modu#
mod_ssl
, nale(y uruchomi) skrypt ./configure znajduj%cy si' w katalogu modu#u mod_ssl, a nie
w katalogu plików "ród#owych serwera Apache. Skrypt modu#u wprowadza odpowiednie
zmiany do skryptu serwera, a nast'pnie uruchamia go.
W tej recepturze omówiono jedynie podstawowy sposób instalacji modu#u mod_ssl. W czasie
konfiguracji modu#u mod_ssl mo(na zleci) modu#owi wykorzystanie wielu dodatkowych
sk#adników oraz funkcji. Wi'cej informacji na ten temat mo(na znale") w plikach README
oraz INSTALL znajduj%cych w katalogu plików "ród#owych modu#u mod_ssl lub na stronie
WWW http://www.modssl.org/.
Zobacz równieH
" Receptura 7.3.
" http://www.modssl.org/.
2.8. Wyszukiwanie modu1ów
na witrynie modules.apache.org
Problem
Trzeba znale") modu#y serwera Apache udost'pniaj%ce okre/lone funkcje lub nosz%ce okre-
/lone nazwy. Wiadomo jednocze/nie, (e istnieje rejestr modu#ów serwera Apache.
3
Nazwa katalogu zale(na jest od instalowanej wersji mod_ssl. — przyp. red.
2.9. Instalacja modu1u mod_security
55
RozwiJzanie
Na witrynie http://modules.apache.org nale(y poda) s#owa kluczowe odnosz%ce si' do poszu-
kiwanych funkcji lub fragment nazwy modu#u i przeprowadzi) wyszukiwanie.
Analiza
Rejestr modu#ów serwera Apache to nieoficjalna witryna internetowa, na której autorzy mo-
du#ów z w#asnej inicjatywy mog% zarejestrowa) efekty swoich prac, aby udost'pni) je innym
u(ytkownikom.
Wspomniana witryna w (adnym wypadku nie zawiera wszystkich modu#ów serwe-
ra Apache; wiele z nich jest dost'pnych na witrynie SourceForge albo na domowych
witrynach ich autorów. Je(eli poszukiwany modu# nie zostanie znaleziony na
http://modules.apache.org
, mo(na spróbowa) go poszuka) na witrynie SourceForge
(pod adresem http://sourceforge.net), FreshMeat (http://freshmeat.net) albo po prostu
przeszuka) internet przy u(yciu Google lub innej wyszukiwarki internetowej.
Zobacz równieH
" http://sourceforge.net.
" http://freshmeat.net.
2.9. Instalacja modu1u mod_security
Problem
Trzeba zainstalowa) modu# mod_security, aby skorzysta) z udost'pnianych przez niego pro-
stych, a jednocze/nie rozbudowanych mechanizmów filtruj%cych.
RozwiJzanie
Nale(y wykona) nast'puj%ce czynno/ci:
1.
Pobra) modu# mod_security oraz g#ówne regu#y modu#u z witryny http://modules.apache.org.
Aby znale") modu# do pobrania na podanej stronie WWW, nale(y skorzysta) z pozycji
menu Browse lub Search.
Po pobraniu modu#u warto sprawdzi) jego sygnatur' PGP, aby upewni) si', (e plik
nie uleg# zmianie. Wi'cej informacji na ten temat znajduje si' na witrynie internetowej
modu#u mod_security.
2.
Rozpakowa) zestaw (bez regu#) do katalogu roboczego:
% cd /usr/local/build
% tar xzf /usr/local/kits/modsecurity-apache_2.1.1