Darmowy fragment publikacji:
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‡a(cid:156)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(cid:243)re zadecydowa‡y
o sukcesie tego rozwi„zania, to bezpieczeæstwo, skalowalno(cid:156)(cid:230), wielow„tkowo(cid:156)(cid:230)
i obs‡uga r(cid:243)¿norodnych jŒzyk(cid:243)w skryptowych.
DziŒki ksi„¿ce (cid:132)Apache. Receptury(cid:148) zapoznasz siŒ z gotowymi przepisami
na rozwi„zanie ciekawych, specyficznych oraz intryguj„cych problem(cid:243)w. Nauczysz siŒ
instalowa(cid:230) serwer z r(cid:243)¿nych (cid:159)r(cid:243)de‡ oraz na r(cid:243)¿nych platformach. Dowiesz siŒ, w jaki
spos(cid:243)b zwiŒkszy(cid:230) jego bezpieczeæstwo, jak uruchomi(cid:230) serwery wirtualne oraz poprawi(cid:230)
wydajno(cid:156)(cid:230) Apache. Autorzy ksi„¿ki poka¿„ Ci, jak uruchomi(cid:230) obs‡ugŒ jŒzyk(cid:243)w
skryptowych, tak aby serwowane strony sta‡y siŒ dynamiczne. Ca‡a wiedza zostanie
przedstawiona w sprawdzony w tej serii spos(cid:243)b: problem (cid:150) rozwi„zanie (cid:150) analiza.
(cid:149) Sposoby instalacji serwera Apache
(cid:149) Dodawanie funkcjonalno(cid:156)ci dziŒki modu‡om
(cid:149) Mo¿liwo(cid:156)ci rejestracji zdarzeæ
(cid:149) Konfiguracja serwer(cid:243)w wirtualnych
(cid:149) Wykorzystanie alias(cid:243)w, przekierowaæ oraz przepisaæ (mod_rewrite)
(cid:149) Zarz„dzanie dostŒpem do serwowanych zasob(cid:243)w
(cid:149) Bezpieczeæstwo serwera Apache
(cid:149) Wykorzystanie szyfrowanej transmisji - protok(cid:243)‡ SSL
(cid:149) Zapewnienie wydajno(cid:156)ci
(cid:149) Wykorzystanie jŒzyk(cid:243)w skryptowychOto ksi„¿ka z najlepszymi przepisami
na Apache!
Wydawnictwo Helion
ul. Ko(cid:156)ciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treļci
Przedmowa ..............................................................................................................................11
1.
2.
Instalacja serwera Apache za pomocñ programu ApacheToolbox
Instalacja serwera ....................................................................................................... 19
Instalacja serwera z pakietów dystrybucji Red Hat Linux
20
1.1.
Instalacja serwera z pakietów dystrybucji Debian
1.2.
21
22
1.3.
Instalacja serwera Apache w systemie Windows
27
1.4. Pobieranie plików Ēródäowych serwera Apache
1.5. Budowa serwera Apache z kodu Ēródäowego
29
30
1.6.
32
1.7. Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera Apache
34
1.8. Usuniöcie serwera Apache
1.9. Której wersji serwera Apache uĔyè
35
37
1.10. Uaktualnienie serwera przy uĔyciu config.nice
38
1.11. Uruchamianie serwera Apache w momencie startu systemu operacyjnego
39
1.12. Przydatne opcje konfiguracyjne
1.13. Odnajdywanie plików serwera Apache
41
Instalacja typowego moduäu
Instalacja moduäu mod_dav w systemie uniksowym
Instalacja moduäu mod_dav w systemie Windows
Instalacja moduäu mod_perl w systemie uniksowym
Instalacja moduäu mod_php w systemie uniksowym
Instalacja moduäu mod_php w systemie Windows
Instalacja moduäu mod_ssl
Instalacja moduĥów .....................................................................................................43
2.1.
44
45
2.2.
47
2.3.
49
2.4.
2.5.
51
52
2.6.
53
2.7.
54
2.8. Wyszukiwanie moduäów na witrynie modules.apache.org
2.9.
55
Instalacja moduäu mod_security
57
2.10. Dlaczego ten moduä nie dziaäa?
3
3. Rejestracja zdarzeħ .....................................................................................................59
62
63
65
66
67
67
3.1. Zwiökszenie szczegóäowoĈci zapisów dziennika zdarzeþ
3.2. Zwiökszenie liczby komunikatów o bäödach
3.3. Rejestracja zawartoĈci POST
3.4. Rejestracja adresu IP klienta äñczñcego siö poprzez serwer proxy
3.5. Rejestracja adresu MAC klienta
3.6. Rejestracja Cookies
3.7. Zaniechanie rejestracji Ĕñdaþ pobierania obrazów pochodzñcych
ze stron lokalnych
3.8. Zmiana pliku dziennika zdarzeþ o okreĈlonej porze
3.9. Zmiana pliku dziennika zdarzeþ pierwszego dnia miesiñca
3.10. Rejestracja nazw komputerów zamiast ich adresów IP
3.11. Oddzielne pliki dzienników zdarzeþ serwerów wirtualnych
3.12. Rejestracja Ĕñdaþ proxy
3.13. Rejestracja komunikatów o bäödach
róĔnych serwerów wirtualnych w róĔnych plikach
3.14. Rejestracja adresu IP serwera
3.15. Rejestracja stron, z których nadchodzñ Ĕñdania
3.16. Rejestracja nazw uĔywanych przeglñdarek
3.17. Rejestracja dowolnych pól nagäówka Ĕñdania
3.18. Rejestracja dowolnych pól nagäówka odpowiedzi
3.19. Rejestracja aktywnoĈci serwera w bazie danych MySQL
3.20. Rejestracja zdarzeþ w dzienniku systemowym
3.21. Rejestracja katalogów uĔytkowników
69
70
71
72
73
75
76
77
78
79
79
80
81
82
84
90
91
92
93
94
96
97
98
98
99
100
4. Serwery wirtualne .......................................................................................................87
88
4.1. Konfiguracja serwerów wirtualnych opartych na nazwach
4.2.
Konfiguracja jednego z serwerów wirtualnych
opartych na nazwach jako serwera domyĈlnego
4.3. Konfiguracja serwerów wirtualnych opartych na adresach
4.4. Konfiguracja jednego z serwerów wirtualnych
4.5.
opartych na adresach jako serwera domyĈlnego
Jednoczesne uĔycie serwerów wirtualnych
opartych na adresach oraz na nazwach
4.6. Liczne serwery wirtualne obsäugiwane
za pomocñ moduäu mod_vhost_alias
4.7. Liczne serwery wirtualne obsäugiwane za pomocñ reguä przepisania
4.8. Rejestracja zdarzeþ wszystkich serwerów wirtualnych
4.9. Podziaä pliku dziennika zdarzeþ
4.10. Serwery wirtualne oparte na portach
4.11. Ta sama zawartoĈè dostöpna pod kilkoma adresami IP
4.12. Definiowanie serwerów wirtualnych w bazie danych
4
_
Spis treļci
5. Aliasy, przekierowania oraz przepisania ................................................................. 103
103
105
106
109
110
110
111
113
114
5.1. Przyporzñdkowanie adresu URL do katalogu
5.2. Tworzenie dodatkowego adresu URL dla istniejñcej zawartoĈci
5.3. Przydzielenie uĔytkownikom ich wäasnych adresów URL
5.4. UtoĔsamienie kilku adresów URL za pomocñ pojedynczej dyrektywy
5.5. Przyporzñdkowanie kilku adresów URL do tego samego katalogu CGI
5.6. Tworzenie katalogów CGI dla kaĔdego uĔytkownika
5.7. Przekierowanie do innego miejsca
5.8. Przekierowanie kilku adresów URL w to samo miejsce
5.9. NierozróĔnianie wielkoĈci liter w adresach URL
5.10. WyróĔnianie skäadni kodu Ēródäowego PHP
bez uĔycia dowiñzaþ symbolicznych
5.11. Wymiana ciñgów znaków w Ĕñdanych adresach URL
5.12. Zamiana informacji o ĈcieĔce na argumenty CGI
5.13. Odmowa dostöpu Ĕñdaniom pochodzñcym z obcych stron
5.14. Przekierowanie Ĕñdaþ pochodzñcych z obcych stron do strony z informacjami
5.15. Przepisanie na podstawie äaþcucha zapytania
5.16. Przekierowanie caäego lub czöĈci serwera do SSL
5.17. Zamiana nazw katalogów na nazwy serwerów
5.18. Przekierowanie wszystkich Ĕñdaþ do jednego serwera
5.19. Zamiana nazw dokumentów na argumenty programu
5.20. Przepisywanie elementów ĈcieĔki do ciñgu zapytania i odwrotnie
5.21. Przepisywanie nazwy serwera na nazwö katalogu
5.22. Przeksztaäcanie segmentów adresu URL w argumenty zapytania
5.23. UĔywanie dyrektyw AliasMatch, ScriptAliasMatch i RedirectMatch
115
117
117
118
119
120
121
122
123
123
124
125
126
126
6. Bezpieczeħstwo ......................................................................................................... 129
6.1. Wykorzystanie kont uĔytkowników
do uwierzytelnienia dostöpu do zasobów WWW
6.2. Konfiguracja haseä jednorazowych
6.3. Wygasajñce hasäa
6.4. Ograniczanie wielkoĈci umieszczanych na serwerze plików
6.5. Ograniczenie pobierania obrazków ze stron znajdujñcych siö
na innych serwerach
6.6. ēñdanie zarówno säabego, jak i silnego uwierzytelnienia
6.7. Zarzñdzanie plikami .htpasswd
6.8. Przygotowanie plików haseä uwierzytelniania typu Digest
6.9. RozluĒnienie ochrony w podkatalogu
6.10. Wybiórcze zniesienie ochrony
6.11. Autoryzacja za pomocñ informacji o wäaĈcicielu pliku
6.12. Przechowywanie poĈwiadczeþ uĔytkownika w bazie danych MySQL
130
132
133
135
137
138
139
141
142
144
146
147
Spis treļci
_
5
6.13. Dostöp do nazwy uĔytkownika uwierzytelnionego
6.14. Uzyskanie hasäa uĔytego do uwierzytelnienia
6.15. Ochrona przed atakami na hasäa typu brute-force
6.16. Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic
6.17. Dostöp do poĈwiadczeþ osadzonych w adresach URL
6.18. Zabezpieczenie usäugi WebDAV
6.19. Uruchomienie usäugi WebDAV bez udzielenia zezwolenia na zapisywanie
do plików uĔytkownikowi, z uprawnieniami którego dziaäa serwer
6.20. Ograniczanie dostöpu poprzez proxy do okreĈlonych adresów URL
6.21. Ochrona plików za pomocñ osäony
6.22. Ochrona plików serwera przed zäoĈliwymi skryptami
6.23. Nadanie prawidäowych uprawnieþ do plików
6.24. Uruchomienie serwera z minimalnñ liczbñ moduäów
6.25. Ograniczenie dostöpu do plików znajdujñcych siö
poza katalogiem gäównym WWW
6.26. Ograniczenie metod dostöpnych dla uĔytkowników
6.27. Ograniczanie Ĕñdaþ zakresów
6.28. Obrona przed atakami DoS przy uĔyciu moduäu mod_evasive
6.29. Zmiana katalogu gäównego serwera Apache
przy uĔyciu moduäu mod_security
6.30. Migracja do mechanizmów uwierzytelniania w wersji 2.2
6.31. Blokowanie dziaäania robaków przy uĔyciu moduäu mod_security
6.32. Uprawnienia tylko do odczytu i do zapisu w repozytorium Subversion
6.33. UĔywanie staäych przekierowaþ do ukrywania zablokowanych adresów URL
148
149
150
151
153
153
154
156
157
159
160
163
165
166
167
168
170
171
172
173
174
Instalacja SSL
Instalacja SSL w systemie Windows
7. SSL ...............................................................................................................................177
177
179
179
183
185
187
188
189
7.1.
7.2.
7.3. Tworzenie samodzielnie podpisanych certyfikatów SSL
7.4. Tworzenie zaufanego oĈrodka certyfikacyjnego
7.5. Udostöpnianie czöĈci witryny WWW poprzez SSL
7.6. Uwierzytelnianie za pomocñ certyfikatów klientów
7.7. Wirtualne serwery SSL
7.8. Certyfikaty wieloznaczne
8. Treļë dynamiczna .......................................................................................................191
191
8.1. Uaktywnienie katalogu CGI
8.2. Uaktywnienie skryptów CGI w katalogach niewyznaczonych
za pomocñ dyrektywy ScriptAlias
8.3. Wskazywanie dokumentu domyĈlnego w katalogu CGI
8.4. Wykorzystanie rozszerzeþ plików systemu Windows
do uruchamiana skryptów CGI
193
194
195
6
_
Spis treļci
8.5.
8.6.
Identyfikacja skryptów CGI na podstawie ich rozszerzeþ
Sprawdzenie, czy obsäuga programów CGI
jest skonfigurowana poprawnie
8.7. Odczyt wartoĈci z formularza
8.8. Uruchamianie programu CGI dla pewnych rodzajów treĈci
8.9. UĔycie SSI
8.10. Przedstawienie daty ostatniej modyfikacji
8.11. Doäñczenie standardowego nagäówka
8.12. Doäñczanie wyniku dziaäania programu CGI
8.13. Uruchamianie za pomocñ programu suexec skryptów CGI
z uprawnieniami innego uĔytkownika
Instalacja programu obsäugi moduäu mod_perl z serwisu CPAN
8.14.
8.15. Pisanie programów obsäugi moduäu mod_perl
8.16. Uruchomienie obsäugi skryptów PHP
8.17. Weryfikacja instalacji PHP
8.18. Parsowanie danych wynikowych CGI
z uwzglödnieniem dyrektyw Server Side Includes
8.19. Parsowanie danych wynikowych skryptów ScriptAlias
z uwzglödnieniem dyrektyw Server Side Includes
8.20. Wyznaczenie mod_perl do obsäugi wszystkich skryptów w jözyku Perl
8.21. Wäñczenie obsäugi skryptów jözyka Python
197
198
200
203
204
206
207
208
208
210
212
213
214
215
216
216
217
9. Obsĥuga bĥýdów ........................................................................................................ 219
219
220
221
222
9.1. Obsäuga przypadku brakujñcego pola Host
9.2. Zmiana kodu stanu odpowiedzi za pomocñ skryptu CGI
9.3. Wäasne komunikaty o bäödach
9.4. Komunikaty o bäödach w róĔnych jözykach
9.5. Przekierowanie odwoäaþ
do niepoprawnych adresów URL do innych stron
9.6. Prawidäowa strona komunikatu o bäödzie w programie Internet Explorer
9.7. Powiadamianie o bäödach
223
224
225
10. Proxy ..........................................................................................................................227
227
10.1. Zabezpieczenie serwera proxy
10.2. Zabezpieczenie serwera proxy przed uĔyciem
go jako otwartego przekaĒnika poczty
10.3. Przekazywanie Ĕñdaþ do innego serwera
10.4. Blokowanie Ĕñdaþ proxy do okreĈlonych miejsc
10.5. Przeniesienie Ĕñdaþ obsäugiwanych przez mod_perl na inny serwer
10.6. Konfiguracja buforujñcego serwera proxy
10.7. Filtrowanie treĈci przekazywanych przez serwer proxy
10.8. Wymaganie uwierzytelnienia siö na serwerze dostöpnym poprzez proxy
229
230
231
232
233
234
235
Spis treļci
_
7
10.9. RównowaĔenie obciñĔenia przy uĔyciu mod_proxy_balancer
10.10. Przekazywanie wywoäaþ z serwera wirtualnego
10.11. Blokowanie przekazywania wywoäaþ FTP
235
237
237
11. Wydajnoļë ..................................................................................................................239
239
240
242
243
244
246
247
249
250
251
253
254
256
257
258
11.1. OkreĈlenie iloĈci potrzebnej pamiöci RAM
11.2. Testowanie wydajnoĈci serwera Apache za pomocñ programu ab
11.3. Dobór ustawieþ dostöpu keepalive
11.4. OkreĈlenie stanu aktywnoĈci witryny WWW
11.5. Unikanie wyszukiwania w DNS
11.6. Optymalizacja dowiñzaþ symbolicznych
11.7. Ograniczanie wpäywu uĔycia plików .htaccess na wydajnoĈè serwera
11.8. Wyäñczenie negocjacji treĈci
11.9. Optymalizacja tworzenia procesów
11.10. Dobór parametrów tworzenia wñtków
11.11. Buforowanie najczöĈciej przeglñdanych plików
11.12. Równomierne rozäoĔenie obciñĔenia miödzy kilka serwerów
11.13. Buforowanie list zawartoĈci katalogu
11.14. PrzyĈpieszenie pracy programów Perl CGI za pomocñ moduäu mod_perl
11.15. Buforowanie treĈci dynamicznych
12. Zawartoļë katalogów ................................................................................................ 261
261
12.1. Generowanie listy zawartoĈci katalogu lub folderu
263
12.2. WyĈwietlanie standardowego nagäówka i stopki dla listy zawartoĈci katalogu
263
12.3. Wykorzystanie arkusza stylów
264
12.4. Ukrywanie wybranych elementów na liĈcie zawartoĈci
265
12.5. Wyszukiwanie konkretnych plików na liĈcie zawartoĈci katalogu
265
12.6. Sortowanie listy zawartoĈci
266
12.7. Sortowanie listy zawartoĈci w sposób wskazany przez klienta
268
12.8. Definiowanie sposobu formatowania listy zawartoĈci
268
12.9. Definiowanie sposobu formatowania przez klienta
269
12.10. Dodawanie opisów plików
270
12.11. Automatyczne generowanie tytuäów dokumentów
270
12.12. Zmiana ikon listy zawartoĈci
271
12.13. WyĈwietlanie katalogów na poczñtku listy
272
12.14. Porzñdkowanie wzglödem numeru wersji
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
275
12.18. Pomijanie wybranych kolumn na liĈcie zawartoĈci
276
12.19. WyĈwietlanie plików chronionych hasäem
12.20. WyĈwietlanie aliasów na liĈcie zawartoĈci
277
8
_
Spis treļci
13. Pozostaĥe zagadnienia ..............................................................................................279
279
281
282
283
13.1. Poprawne umieszczanie dyrektyw
13.2. Zmiana nazw plików .htaccess
13.3. Tworzenie listy zawartoĈci katalogu
13.4. Rozwiñzanie „problemu koþcowego ukoĈnika”
13.5. Ustalenie zawartoĈci pola Content-Type
Inny domyĈlny dokument
w zaleĔnoĈci od moĔliwoĈci przeglñdarki
13.6. Obsäuga brakujñcego pola Host nagäówka
13.7.
13.8. Konfiguracja domyĈlnej „ulubionej ikony”
13.9. WyĈwietlanie listy zawartoĈci katalogów ScriptAlias
13.10. Wäñczanie obsäugi plików .htaccess
13.11. Przeksztaäcanie dyrektyw Server Side Includes
z serwerów IBM lub Lotus do serwera Apache
285
285
286
287
287
289
290
A UŜycie wyraŜeħ regularnych ..................................................................................... 291
B Rozwiézywanie problemów .....................................................................................297
Skorowidz ............................................................................................................................307
Spis treļci
_
9
ROZDZIAĤ 2.
Instalacja moduĥó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.
43
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 wersjö 2.0 serwera Apache
Nazwa moduĥu
mod_dav
mod_perl
mod_php
mod_ssl
Obsĥuga w systemie Windows
Tak
Tak
Tak
Nie
Obsĥuga przez serwer Apache 2.0
Moduĥ doĥéczony do serwera
— nie ma potrzeby instalowania.
Tak
Tak
Moduĥ doĥéczony do serwera
— nie ma potrzeby instalowania.
2.1. Instalacja typowego moduĥu
Problem
NaleĔy zainstalowaè posiadany moduä, którego instalacja nie zostaäa omówiona osobno w tym
rozdziale.
Rozwiézanie
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ównieŜ
x Strony podröcznika man dotyczñce programu apxs, przewaĔnie ServerRoot/man/man8/apxs.8.
44
_
Rozdziaĥ 2. Instalacja moduĥów
2.2. Instalacja moduĥu 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.
Rozwiézanie
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
2.2. Instalacja moduĥu mod_dav w systemie uniksowym
_
45
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ównieŜ
x Receptura 6.18.
x http://webdav.org/mod_dav/.
x http://webdav.org/cadaver/.
46
_
Rozdziaĥ 2. Instalacja moduĥów
2.3. Instalacja moduĥu 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.
Rozwiézanie
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:Apachemodules
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
2.3. Instalacja moduĥu mod_dav w systemie Windows
_
47
ē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 htdocsdav-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 moduĥu mod_dav za pomocé programu Eksplorator Windows
Po przeznaczeniu katalogu htdocsdav-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 sieciowe1.
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.
48
_
Rozdziaĥ 2. Instalacja moduĥów
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 htdocsdav-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ównieŜ
x Receptura 6.18.
x http://webdav.org/mod_dav/.
2.4. Instalacja moduĥu 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.
Rozwiézanie
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.*
2.4. Instalacja moduĥu mod_perl w systemie uniksowym
_
49
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 Łwiecie! Pozdrowienia od moduĪu mod_perl.
);
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.”.
50
_
Rozdziaĥ 2. Instalacja moduĥów
Zobacz równieŜ
x http://perl.apache.org/.
x KsiñĔka Writing Apache Modules with Perl and C, autorzy Doug MacEachern oraz Lincoln
Stein, wydawnictwo O Reilly.
x KsiñĔka mod_perl Developer s Cookbook, autorzy Geoffrey Young, Paul Lindner oraz Randy
Kobes wydawnictwo Sams2.
2.5. Instalacja moduĥu mod_php
w systemie uniksowym
Problem
Do dziaäajñcego serwera WWW Apache naleĔy dodaè moduä obsäugi skryptów mod_php.
Rozwiézanie
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.
2.5. Instalacja moduĥu mod_php w systemie uniksowym
_
51
Zobacz równieŜ
x Receptura 8.16.
x Receptura 8.17.
x http://php.net/.
2.6. Instalacja moduĥu 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.
Rozwiézanie
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 PHP4SAPIphp4apache.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 PHP4extensions. Gdy, na przykäad, plik .zip zostaä rozpakowany do katalogu
C:PHP4, wiersz ten powinien wyglñdaè nastöpujñco:
extension_dir = C:PHP4extensions
6. Nastöpnie trzeba otworzyè do edycji plik confhttpd.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
52
_
Rozdziaĥ 2. Instalacja moduĥów
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ównieŜ
x http://php.net/.
2.7. Instalacja moduĥu 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.
Rozwiézanie
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:
2.7. Instalacja moduĥu mod_ssl
_
53
cd mod_ssl-2.8.14-1.3.273
./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ównieŜ
x Receptura 7.3.
x http://www.modssl.org/.
2.8. Wyszukiwanie moduĥó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.
54
_
Rozdziaĥ 2. Instalacja moduĥów
Rozwiézanie
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ównieŜ
x http://sourceforge.net.
x http://freshmeat.net.
2.9. Instalacja moduĥu 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.
Rozwiézanie
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
2.9. Instalacja moduĥu mod_security
_
55
3. PrzejĈè do rozpakowanego katalogu i zbudowaè pakiet, wykorzystujñc 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 zewnötrznych mod_security trzeba
budowaè przy uĔyciu jego wäasnych mechanizmów, a nie przez zwykäe wywoäanie
narzödzia apxs serwera Apache.
4. Rozpakowaè gäówne reguäy 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è nastöpujñce wiersze:
LoadModule security_module modules/mod_security2.so
Include conf/mod_security/*.conf
6. Zrestartowaè serwer.
Analiza
Skrypt Makefile doäñczony do pakietu mod_security zbuduje moduä i umieĈci go w odpowied-
niej lokalizacji, lecz ponowne wäñczenie serwera jest juĔ powinnoĈciñ samego uĔytkownika.
Najnowsze wersje pakietu zawierajñ zestaw gäównych reguä obsäugujñcych przypadki takie
jak spamowanie blogów czy najczöĈciej spotykane ataki. Reguäy sñ równieĔ dostöpne w od-
dzielnym archiwum tar, które moĔe byè uaktualniane niezaleĔnie od reguä doäñczanych do
samego moduäu.
Aktualna wersja moduäu mod_security obsäuguje wyäñcznie serwer Apache w wersji 2. Dostöpna
jest równieĔ starsza wersja obsäugujñca wersjö 1.3 serwera, lecz jest maäo prawdopodobne, by
byäa utrzymywana przez däuĔszy czas.
Zobacz równieŜ
x Witryna internetowa moduäu mod_security pod adresem http://modsecurity.org.
56
_
Rozdziaĥ 2. Instalacja moduĥów
2.10. Dlaczego ten moduĥ nie dziaĥa?
Problem
Pomimo próby zainstalowania moduäu pochodzñcego od dostawcy zewnötrznego serwer WWW
Apache nie rozpoznaje go.
Rozwiézanie
NaleĔy sprawdziè kod Ēródäowy moduäu, jego dokumentacjö albo zwróciè siö bezpoĈrednio
do autora moduäu, aby ustaliè wersjö serwera Apache obsäugiwanñ przez moduä.
Analiza
W miarö wprowadzania do serwera Apache kolejnych znaczñcych zmian moĔe siö zdarzyè,
Ĕe zmiana w API serwera doprowadzi do powstania niezgodnoĈci jego moduäów. Wpraw-
dzie twórcy rozwijajñcy serwer dñĔñ do tego, by podobne niezgodnoĈci zdarzaäy siö jak naj-
rzadziej, lecz czasami jest to po prostu nieuniknione.
Aby zapobiec äadowaniu niezgodnego moduäu i uniknñè w ten sposób zaäamania serwera
WWW, zarówno w module, jak i w samym serwerze umieszczono wbudowany, „magiczny”
numer zapisywany w momencie ich budowania, wskazujñcy wersjö API. Gdy serwer spróbuje
zaäadowaè moduä DSO, najpierw porówna numer wersji w module z wäasnym numerem wersji
zapisanym na serwerze. JeĔeli okaĔe siö, Ĕe numery wersji sñ niezgodne, serwer nie zaäaduje
moduäu.
Zespóä rozwijajñcy serwer dñĔy do utrzymania zgodnoĈci miödzy numerami wersji gäównych,
lecz nie miödzy róĔnymi numerami wersji gäównych. Inaczej mówiñc, moduä zbudowany dla
serwera Apache 1.3 powinien dziaäaè z praktycznie wszystkimi wersjami 1.3 serwera zbudo-
wanymi po dacie budowy moduäu, natomiast na pewno nie bödzie obsäugiwaè serwera w wer-
sji 2.0. I odwrotnie: moduä dla wersji 2.0 w Ĕadnym wypadku nie bödzie wspóäpracowaä z ser-
werem w wersji 1.3.
Zobacz równieŜ
x Rejestr moduäów serwera Apache pod adresem http://modules.apache.org.
2.10. Dlaczego ten moduĥ nie dziaĥa?
_
57
Pobierz darmowy fragment (pdf)