Apache. Receptury. Wydanie II - Presentation Transcript
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œ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!
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
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 modu ó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
3
3. Rejestracja zdarze .....................................................................................................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
4 _ Spis tre ci
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. Bezpiecze stwo ......................................................................................................... 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
Spis tre ci _ 5
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
6 _ Spis tre ci
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. Obs uga b ýdó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
Spis tre ci _ 7
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
8 _ Spis tre ci
13. Pozosta e 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 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 Obs uga w systemie Windows Obs uga 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 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.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.”.
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
Czy wiesz, jaki serwer HTTP jest najpopularniejszy more
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 skryptowych
Oto książka z najlepszymi przepisami na Apache! less
0 comments
Post a comment