Download - Apache. Receptury. Wydanie II

Transcript
Page 1: Apache. Receptury. Wydanie II

Wydawnictwo Helionul. Ko�ciuszki 1c44-100 Gliwicetel. 032 230 98 63e-mail: [email protected]

Apache. Receptury.Wydanie II Autor: Rich Bowen, Ken Coar ISBN: 978-83-246-1549-0Tytu³ orygina³u: Apache Cookbook:Solutions and Examples for ApacheAdministration (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³yo 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 przepisamina 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!

Page 2: Apache. Receptury. Wydanie II

3

Spis tre�ci

Przedmowa ..............................................................................................................................11

1. Instalacja serwera ....................................................................................................... 191.1. Instalacja serwera z pakietów dystrybucji Red Hat Linux 201.2. Instalacja serwera z pakietów dystrybucji Debian 211.3. Instalacja serwera Apache w systemie Windows 221.4. Pobieranie plików �ród�owych serwera Apache 271.5. Budowa serwera Apache z kodu �ród�owego 291.6. Instalacja serwera Apache za pomoc� programu ApacheToolbox 301.7. Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera Apache 321.8. Usuni�cie serwera Apache 341.9. Której wersji serwera Apache u�y 351.10. Uaktualnienie serwera przy u�yciu config.nice 371.11. Uruchamianie serwera Apache w momencie startu systemu operacyjnego 381.12. Przydatne opcje konfiguracyjne 391.13. Odnajdywanie plików serwera Apache 41

2. Instalacja modu�ów .....................................................................................................432.1. Instalacja typowego modu�u 442.2. Instalacja modu�u mod_dav w systemie uniksowym 452.3. Instalacja modu�u mod_dav w systemie Windows 472.4. Instalacja modu�u mod_perl w systemie uniksowym 492.5. Instalacja modu�u mod_php w systemie uniksowym 512.6. Instalacja modu�u mod_php w systemie Windows 522.7. Instalacja modu�u mod_ssl 532.8. Wyszukiwanie modu�ów na witrynie modules.apache.org 542.9. Instalacja modu�u mod_security 552.10. Dlaczego ten modu� nie dzia�a? 57

Page 3: Apache. Receptury. Wydanie II

4 � Spis tre�ci

3. Rejestracja zdarze� .....................................................................................................593.1. Zwi�kszenie szczegó�owo�ci zapisów dziennika zdarze� 623.2. Zwi�kszenie liczby komunikatów o b��dach 633.3. Rejestracja zawarto�ci POST 653.4. Rejestracja adresu IP klienta ��cz�cego si� poprzez serwer proxy 663.5. Rejestracja adresu MAC klienta 673.6. Rejestracja Cookies 673.7. Zaniechanie rejestracji ��da� pobierania obrazów pochodz�cych

ze stron lokalnych 693.8. Zmiana pliku dziennika zdarze� o okre�lonej porze 703.9. Zmiana pliku dziennika zdarze� pierwszego dnia miesi�ca 713.10. Rejestracja nazw komputerów zamiast ich adresów IP 723.11. Oddzielne pliki dzienników zdarze� serwerów wirtualnych 733.12. Rejestracja ��da� proxy 753.13. Rejestracja komunikatów o b��dach

ró�nych serwerów wirtualnych w ró�nych plikach 763.14. Rejestracja adresu IP serwera 773.15. Rejestracja stron, z których nadchodz� ��dania 783.16. Rejestracja nazw u�ywanych przegl�darek 793.17. Rejestracja dowolnych pól nag�ówka ��dania 793.18. Rejestracja dowolnych pól nag�ówka odpowiedzi 803.19. Rejestracja aktywno�ci serwera w bazie danych MySQL 813.20. Rejestracja zdarze� w dzienniku systemowym 823.21. Rejestracja katalogów u�ytkowników 84

4. Serwery wirtualne ....................................................................................................... 874.1. Konfiguracja serwerów wirtualnych opartych na nazwach 884.2. Konfiguracja jednego z serwerów wirtualnych

opartych na nazwach jako serwera domy�lnego 904.3. Konfiguracja serwerów wirtualnych opartych na adresach 914.4. Konfiguracja jednego z serwerów wirtualnych

opartych na adresach jako serwera domy�lnego 924.5. Jednoczesne u�ycie serwerów wirtualnych

opartych na adresach oraz na nazwach 934.6. Liczne serwery wirtualne obs�ugiwane

za pomoc� modu�u mod_vhost_alias 944.7. Liczne serwery wirtualne obs�ugiwane za pomoc� regu� przepisania 964.8. Rejestracja zdarze� wszystkich serwerów wirtualnych 974.9. Podzia� pliku dziennika zdarze� 984.10. Serwery wirtualne oparte na portach 984.11. Ta sama zawarto� dost�pna pod kilkoma adresami IP 994.12. Definiowanie serwerów wirtualnych w bazie danych 100

Page 4: Apache. Receptury. Wydanie II

Spis tre�ci � 5

5. Aliasy, przekierowania oraz przepisania ................................................................. 1035.1. Przyporz�dkowanie adresu URL do katalogu 1035.2. Tworzenie dodatkowego adresu URL dla istniej�cej zawarto�ci 1055.3. Przydzielenie u�ytkownikom ich w�asnych adresów URL 1065.4. Uto�samienie kilku adresów URL za pomoc� pojedynczej dyrektywy 1095.5. Przyporz�dkowanie kilku adresów URL do tego samego katalogu CGI 1105.6. Tworzenie katalogów CGI dla ka�dego u�ytkownika 1105.7. Przekierowanie do innego miejsca 1115.8. Przekierowanie kilku adresów URL w to samo miejsce 1135.9. Nierozró�nianie wielko�ci liter w adresach URL 1145.10. Wyró�nianie sk�adni kodu �ród�owego PHP

bez u�ycia dowi�za� symbolicznych 1155.11. Wymiana ci�gów znaków w ��danych adresach URL 1175.12. Zamiana informacji o �cie�ce na argumenty CGI 1175.13. Odmowa dost�pu ��daniom pochodz�cym z obcych stron 1185.14. Przekierowanie ��da� pochodz�cych z obcych stron do strony z informacjami 1195.15. Przepisanie na podstawie �a�cucha zapytania 1205.16. Przekierowanie ca�ego lub cz��ci serwera do SSL 1215.17. Zamiana nazw katalogów na nazwy serwerów 1225.18. Przekierowanie wszystkich ��da� do jednego serwera 1235.19. Zamiana nazw dokumentów na argumenty programu 1235.20. Przepisywanie elementów �cie�ki do ci�gu zapytania i odwrotnie 1245.21. Przepisywanie nazwy serwera na nazw� katalogu 1255.22. Przekszta�canie segmentów adresu URL w argumenty zapytania 1265.23. U�ywanie dyrektyw AliasMatch, ScriptAliasMatch i RedirectMatch 126

6. Bezpiecze�stwo ......................................................................................................... 1296.1. Wykorzystanie kont u�ytkowników

do uwierzytelnienia dost�pu do zasobów WWW 1306.2. Konfiguracja hase� jednorazowych 1326.3. Wygasaj�ce has�a 1336.4. Ograniczanie wielko�ci umieszczanych na serwerze plików 1356.5. Ograniczenie pobierania obrazków ze stron znajduj�cych si�

na innych serwerach 1376.6. �danie zarówno s�abego, jak i silnego uwierzytelnienia 1386.7. Zarz�dzanie plikami .htpasswd 1396.8. Przygotowanie plików hase� uwierzytelniania typu Digest 1416.9. Rozlu�nienie ochrony w podkatalogu 1426.10. Wybiórcze zniesienie ochrony 1446.11. Autoryzacja za pomoc� informacji o w�a�cicielu pliku 1466.12. Przechowywanie po�wiadcze� u�ytkownika w bazie danych MySQL 147

Page 5: Apache. Receptury. Wydanie II

6 � Spis tre�ci

6.13. Dost�p do nazwy u�ytkownika uwierzytelnionego 1486.14. Uzyskanie has�a u�ytego do uwierzytelnienia 1496.15. Ochrona przed atakami na has�a typu brute-force 1506.16. Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic 1516.17. Dost�p do po�wiadcze� osadzonych w adresach URL 1536.18. Zabezpieczenie us�ugi WebDAV 1536.19. Uruchomienie us�ugi WebDAV bez udzielenia zezwolenia na zapisywanie

do plików u�ytkownikowi, z uprawnieniami którego dzia�a serwer 1546.20. Ograniczanie dost�pu poprzez proxy do okre�lonych adresów URL 1566.21. Ochrona plików za pomoc� os�ony 1576.22. Ochrona plików serwera przed z�o�liwymi skryptami 1596.23. Nadanie prawid�owych uprawnie� do plików 1606.24. Uruchomienie serwera z minimaln� liczb� modu�ów 1636.25. Ograniczenie dost�pu do plików znajduj�cych si�

poza katalogiem g�ównym WWW 1656.26. Ograniczenie metod dost�pnych dla u�ytkowników 1666.27. Ograniczanie ��da� zakresów 1676.28. Obrona przed atakami DoS przy u�yciu modu�u mod_evasive 1686.29. Zmiana katalogu g�ównego serwera Apache

przy u�yciu modu�u mod_security 1706.30. Migracja do mechanizmów uwierzytelniania w wersji 2.2 1716.31. Blokowanie dzia�ania robaków przy u�yciu modu�u mod_security 1726.32. Uprawnienia tylko do odczytu i do zapisu w repozytorium Subversion 1736.33. U�ywanie sta�ych przekierowa� do ukrywania zablokowanych adresów URL 174

7. SSL ...............................................................................................................................1777.1. Instalacja SSL 1777.2. Instalacja SSL w systemie Windows 1797.3. Tworzenie samodzielnie podpisanych certyfikatów SSL 1797.4. Tworzenie zaufanego o�rodka certyfikacyjnego 1837.5. Udost�pnianie cz��ci witryny WWW poprzez SSL 1857.6. Uwierzytelnianie za pomoc� certyfikatów klientów 1877.7. Wirtualne serwery SSL 1887.8. Certyfikaty wieloznaczne 189

8. Tre�� dynamiczna .......................................................................................................1918.1. Uaktywnienie katalogu CGI 1918.2. Uaktywnienie skryptów CGI w katalogach niewyznaczonych

za pomoc� dyrektywy ScriptAlias 1938.3. Wskazywanie dokumentu domy�lnego w katalogu CGI 1948.4. Wykorzystanie rozszerze� plików systemu Windows

do uruchamiana skryptów CGI 195

Page 6: Apache. Receptury. Wydanie II

Spis tre�ci � 7

8.5. Identyfikacja skryptów CGI na podstawie ich rozszerze� 1978.6. Sprawdzenie, czy obs�uga programów CGI

jest skonfigurowana poprawnie 1988.7. Odczyt warto�ci z formularza 2008.8. Uruchamianie programu CGI dla pewnych rodzajów tre�ci 2038.9. U�ycie SSI 2048.10. Przedstawienie daty ostatniej modyfikacji 2068.11. Do��czenie standardowego nag�ówka 2078.12. Do��czanie wyniku dzia�ania programu CGI 2088.13. Uruchamianie za pomoc� programu suexec skryptów CGI

z uprawnieniami innego u�ytkownika 2088.14. Instalacja programu obs�ugi modu�u mod_perl z serwisu CPAN 2108.15. Pisanie programów obs�ugi modu�u mod_perl 2128.16. Uruchomienie obs�ugi skryptów PHP 2138.17. Weryfikacja instalacji PHP 2148.18. Parsowanie danych wynikowych CGI

z uwzgl�dnieniem dyrektyw Server Side Includes 2158.19. Parsowanie danych wynikowych skryptów ScriptAlias

z uwzgl�dnieniem dyrektyw Server Side Includes 2168.20. Wyznaczenie mod_perl do obs�ugi wszystkich skryptów w j�zyku Perl 2168.21. W��czenie obs�ugi skryptów j�zyka Python 217

9. Obs�uga b��dów ........................................................................................................ 2199.1. Obs�uga przypadku brakuj�cego pola Host 2199.2. Zmiana kodu stanu odpowiedzi za pomoc� skryptu CGI 2209.3. W�asne komunikaty o b��dach 2219.4. Komunikaty o b��dach w ró�nych j�zykach 2229.5. Przekierowanie odwo�a�

do niepoprawnych adresów URL do innych stron 2239.6. Prawid�owa strona komunikatu o b��dzie w programie Internet Explorer 2249.7. Powiadamianie o b��dach 225

10. Proxy .......................................................................................................................... 22710.1. Zabezpieczenie serwera proxy 22710.2. Zabezpieczenie serwera proxy przed u�yciem

go jako otwartego przeka�nika poczty 22910.3. Przekazywanie ��da� do innego serwera 23010.4. Blokowanie ��da� proxy do okre�lonych miejsc 23110.5. Przeniesienie ��da� obs�ugiwanych przez mod_perl na inny serwer 23210.6. Konfiguracja buforuj�cego serwera proxy 23310.7. Filtrowanie tre�ci przekazywanych przez serwer proxy 23410.8. Wymaganie uwierzytelnienia si� na serwerze dost�pnym poprzez proxy 235

Page 7: Apache. Receptury. Wydanie II

8 � Spis tre�ci

10.9. Równowa�enie obci��enia przy u�yciu mod_proxy_balancer 23510.10. Przekazywanie wywo�a� z serwera wirtualnego 23710.11. Blokowanie przekazywania wywo�a� FTP 237

11. Wydajno�� ..................................................................................................................23911.1. Okre�lenie ilo�ci potrzebnej pami�ci RAM 23911.2. Testowanie wydajno�ci serwera Apache za pomoc� programu ab 24011.3. Dobór ustawie� dost�pu keepalive 24211.4. Okre�lenie stanu aktywno�ci witryny WWW 24311.5. Unikanie wyszukiwania w DNS 24411.6. Optymalizacja dowi�za� symbolicznych 24611.7. Ograniczanie wp�ywu u�ycia plików .htaccess na wydajno� serwera 24711.8. Wy��czenie negocjacji tre�ci 24911.9. Optymalizacja tworzenia procesów 25011.10. Dobór parametrów tworzenia w�tków 25111.11. Buforowanie najcz��ciej przegl�danych plików 25311.12. Równomierne roz�o�enie obci��enia mi�dzy kilka serwerów 25411.13. Buforowanie list zawarto�ci katalogu 25611.14. Przy�pieszenie pracy programów Perl CGI za pomoc� modu�u mod_perl 25711.15. Buforowanie tre�ci dynamicznych 258

12. Zawarto�� katalogów ................................................................................................ 26112.1. Generowanie listy zawarto�ci katalogu lub folderu 26112.2. Wy�wietlanie standardowego nag�ówka i stopki dla listy zawarto�ci katalogu 26312.3. Wykorzystanie arkusza stylów 26312.4. Ukrywanie wybranych elementów na li�cie zawarto�ci 26412.5. Wyszukiwanie konkretnych plików na li�cie zawarto�ci katalogu 26512.6. Sortowanie listy zawarto�ci 26512.7. Sortowanie listy zawarto�ci w sposób wskazany przez klienta 26612.8. Definiowanie sposobu formatowania listy zawarto�ci 26812.9. Definiowanie sposobu formatowania przez klienta 26812.10. Dodawanie opisów plików 26912.11. Automatyczne generowanie tytu�ów dokumentów 27012.12. Zmiana ikon listy zawarto�ci 27012.13. Wy�wietlanie katalogów na pocz�tku listy 27112.14. Porz�dkowanie wzgl�dem numeru wersji 27212.15. W��czanie sortowania wzgl�dem numeru wersji przez u�ytkownika 27312.16. Przydzielenie u�ytkownikowi pe�nej kontroli nad formatem listy zawarto�ci 27312.17. Wy��czenie mo�liwo�ci modyfikowania listy zawarto�ci przez u�ytkownika 27412.18. Pomijanie wybranych kolumn na li�cie zawarto�ci 27512.19. Wy�wietlanie plików chronionych has�em 27612.20. Wy�wietlanie aliasów na li�cie zawarto�ci 277

Page 8: Apache. Receptury. Wydanie II

Spis tre�ci � 9

13. Pozosta�e zagadnienia .............................................................................................. 27913.1. Poprawne umieszczanie dyrektyw 27913.2. Zmiana nazw plików .htaccess 28113.3. Tworzenie listy zawarto�ci katalogu 28213.4. Rozwi�zanie „problemu ko�cowego uko�nika” 28313.5. Ustalenie zawarto�ci pola Content-Type

w zale�no�ci od mo�liwo�ci przegl�darki 28513.6. Obs�uga brakuj�cego pola Host nag�ówka 28513.7. Inny domy�lny dokument 28613.8. Konfiguracja domy�lnej „ulubionej ikony” 28713.9. Wy�wietlanie listy zawarto�ci katalogów ScriptAlias 28713.10. W��czanie obs�ugi plików .htaccess 28913.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

Page 9: Apache. Receptury. Wydanie II

43

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 przezApache 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 jesttworzony 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�ówniedlatego, �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 takapotrzeba, przedstawione s� osobne receptury omawiaj�ce instalacj� modu�ów w systemachuniksowych 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 lubs� tak z�o�one, �e po�wi�cono im ca�e strony internetowe. Tak jest na przyk�ad w przypadkumodu�ó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 wielumodu�ów wersji 1.3 serwera Apache. Jednak w przypadku ka�dego modu�u, nale�y sprawdziw 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 plikiznajduj� si� w miejscach innych ni� standardowe, nie nale�y si� dziwi, gdy instalacja jakie-go� modu�u si� nie powiedzie.

Page 10: Apache. Receptury. Wydanie II

44 � Rozdzia� 2. Instalacja modu�ów

Wszystkie modu�y opisane w tym rozdziale s� obs�ugiwane przez wersj� 1.3 serwera Apachedzia�aj�c� w systemach uniksowych. Informacje na temat modu�ów dla wersji 2.0 serweraoraz 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

ProblemNale�y zainstalowa posiadany modu�, którego instalacja nie zosta�a omówiona osobno w tymrozdziale.

Rozwi�zanieW 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

AnalizaGdy 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. Pierwszaczynno� jest oczywista, instalacja polega na umieszczeniu pliku .so w miejscu, w którym b�dziego poszukiwa� serwer Apache, a aktywacja polega na umieszczeniu odpowiedniego wpisuw pliku httpd.conf.

Zobacz równie�� Strony podr�cznika man dotycz�ce programu apxs, przewa�nie ServerRoot/man/man8/apxs.8.

Page 11: Apache. Receptury. Wydanie II

2.2. Instalacja modu�u mod_dav w systemie uniksowym � 45

2.2. Instalacja modu�u mod_davw systemie uniksowym

ProblemNa 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óbniezawodny i bezpieczny, bez potrzeby korzystania z us�ugi FTP.

Rozwi�zanieModu� mod_dav jest do��czony do wersji 2.0 serwera Apache, wystarczy go tylko uaktywni zapomoc� opcji kompilacji --enable-dav.

W przypadku serwera Apache 1.3 pakiet �ród�owy modu�u mod_dav nale�y pobra ze stronyhttp://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.

AnalizaModu� 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 potrzebyus�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 conajmniej 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� niekolidowa�y. Baza musi znajdowa si� katalogu, do którego serwer ma prawo zapisu. Naprzyk�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>

Page 12: Apache. Receptury. Wydanie II

46 � Rozdzia� 2. Instalacja modu�ów

Baza DAVLockDB nie mo�e znajdowa si� w systemie plików typu NFS, gdy� NFSnie obs�uguje wymaganego przez modu� mod_dav sposobu blokowania plików.Umieszczenie bazy blokad plików w systemie plików typu NFS mo�e doprowadzido nieprzewidywalnych skutków.

Nast�pnie nale�y utworzy tymczasowy katalog s�u��cy do przetestowania dzia�ania us�ugiWebDAV:

# 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 potrzebyus�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 powinienrozpocz� 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% cadaverdav:!> open http://localhost/dav-testLooking up hostname... Connecting to server... connected.dav:/dav-test/> put dav-test.txtUploading 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 1023Setting property on 'dav-test.txt': (reconnecting...done) succeeded.dav:/dav-test/> propget dav-test.txt MyPropFetching properties for 'dav-test.txt':Value of MyProp is: 1023dav:/dav-test/> propdel dav-test.txt MyPropDeleting property on 'dav-test.txt': succeeded.dav:/dav-test/> closeConnection 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�� Receptura 6.18.

� http://webdav.org/mod_dav/.

� http://webdav.org/cadaver/.

Page 13: Apache. Receptury. Wydanie II

2.3. Instalacja modu�u mod_dav w systemie Windows � 47

2.3. Instalacja modu�u mod_dav w systemie Windows

ProblemNa serwerze WWW Apache 1.3 dzia�aj�cym w systemie Windows nale�y za pomoc� modu�umod_dav uruchomi us�ug� WebDAV.

Rozwi�zanieModu� mod_dav w wersji 2.0 serwera Apache znajduje si� standardowo, nie ma wi�c w takimprzypadku konieczno�ci pobierania go i instalowania.

Ze strony http://webdav.org/mod_dav/win32/ nale�y pobra i rozpakowa pakiet modu�u mod_davprzeznaczony 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 ichtam nie ma, nale�y odnale� je w innych katalogach serwera Apache, a nast�pnie skopiowaje do katalogu ServerRoot. Do pracy modu� mod_dav potrzebuje pakietu Expat, który jestdo��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�yserwera Apache:

C:\>cd mod_dav-1.0.3-devC:\mod_dav-1.0.3-dev>copy mod_dav.dll C:\Apache\modulesC:\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�yrównie� doda wiersz AddModule. Mo�na te� wiersz LoadModule dotycz�cy modu�u mod_davumie�ci po dyrektywie ClearModuleList.

AnalizaModu� 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 potrzebyus�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.confdoda 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 niekolidowa�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

Page 14: Apache. Receptury. Wydanie II

48 � Rozdzia� 2. Instalacja modu�ów

eby uruchomi us�ug� WebDAV, do pliku httpd.conf nale�y doda nast�puj�ce wiersze:<IfModule mod_dav.c> DAVLockDB "C:/Apache-1.3/var/dav-lock"</IfModule>

eby przetestowa prac� modu�u mod_dav, nale�y utworzy tymczasowy katalog:C:\Apache-1.3>mkdir htdocs\dav-test

Nast�pnie, po to, by us�uga WebDAV rozpocz��a udost�pnianie katalogu testowego, nale�yzmieni 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 otworzykatalog /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 WindowsPo przeznaczeniu katalogu htdocs\dav-test na potrzeby us�ugi WebDAV i ponownym urucho-mieniu serwera WWW Apache nale�y uruchomi program Eksplorator Windows. Aby uzyskadost�p do katalogu us�ugi WebDAV, nale�y wykona ni�ej opisane czynno�ci. Mo�na to zrobina komputerze, na którym uruchomiono us�ug� WebDAV lub na innym komputerze z systememWindows, 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� dwukrotnieikon� 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 uruchomionous�ug� WebDAV, zamiast adresu 127.0.0.1 nale�y wpisa nazw� serwera, w którymuruchomiono 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 kataloguzawieraj�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.

Page 15: Apache. Receptury. Wydanie II

2.4. Instalacja modu�u mod_perl w systemie uniksowym � 49

7. Przytrzymuj�c wci�ni�ty przycisk Ctrl, nale�y przeci�gn� do okna otwartego w punkcie 5.dowolny plik lub pliki.

8. System Windows powinien na krótko pokaza okno informuj�ce o post�pie procesu ko-piowania, po czym kopiowany plik powinien znale� si� w oknie docelowym.

Gratulacje! Plik zosta� skopiowany do serwera za pomoc� us�ugi WebDAV.

Po zako�czeniu testowania nale�y usun� katalog htdocs\dav-test, a tak�e usun� z pliku konfigu-racyjnego wiersz <Directory "C:/Apache-1.3/htdocs/dav-test">. W przeciwnym razie swojepliki b�dzie móg� umieszcza tam ka�dy.

Zobacz równie�� Receptura 6.18.

� http://webdav.org/mod_dav/.

2.4. Instalacja modu�u mod_perlw systemie uniksowym

ProblemAby skrypty Perla by�y wykonywane szybciej i by�y lepiej obs�ugiwane przez serwer WWW,nale�y zainstalowa modu� mod_perl.

Rozwi�zanieW 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 pobrai 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

AnalizaModu� mod_perl jest modu�em do� z�o�onym. Na serwerze Apache mo�na zainstalowa go nakilka 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.*

Page 16: Apache. Receptury. Wydanie II

50 � Rozdzia� 2. Instalacja modu�ów

znajduj�cymi si� w katalogu pakietu. Poniewa� podstawowym j�zykiem modu�u jest Perl,a nie C, instrukcja instalacji ró�ni si� zdecydowanie od stosowanych w przypadku wi�kszo�ciinnych 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 plikuhttpd.conf, dodaj�c kilka skryptów i obserwuj�c, czy serwer obs�uguje je poprawnie. Otoprzyk�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/perlBEGIN { 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.”.

Page 17: Apache. Receptury. Wydanie II

2.5. Instalacja modu�u mod_php w systemie uniksowym � 51

Zobacz równie�� http://perl.apache.org/.

� Ksi��ka Writing Apache Modules with Perl and C, autorzy Doug MacEachern oraz LincolnStein, wydawnictwo O'Reilly.

� Ksi��ka mod_perl Developer's Cookbook, autorzy Geoffrey Young, Paul Lindner oraz RandyKobes wydawnictwo Sams2.

2.5. Instalacja modu�u mod_phpw systemie uniksowym

ProblemDo dzia�aj�cego serwera WWW Apache nale�y doda modu� obs�ugi skryptów mod_php.

Rozwi�zaniePakiet �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.

AnalizaAby 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óbowaotworzy 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.

Page 18: Apache. Receptury. Wydanie II

52 � Rozdzia� 2. Instalacja modu�ów

Zobacz równie�� Receptura 8.16.

� Receptura 8.17.

� http://php.net/.

2.6. Instalacja modu�u mod_php w systemie Windows

ProblemDo dzia�aj�cego w systemie Windows serwera WWW Apache nale�y doda modu� obs�ugiskryptów mod_php.

Rozwi�zanieW 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 systemuWindows zawieraj�cego rozszerzenia API.

2. Plik .zip nale�y rozpakowa do katalogu, w którym zawarto� pliku mo�e pozosta nazawsze (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�yprzekopiowa plik PHP4\SAPI\php4apache.dll.

4. W oknie wiersza polecenia nale�y przej� do katalogu PHP4, do którego zosta� rozpako-wany plik .zip, a nast�pnie wyda polecenia:

...\PHP4>copy php.ini-dist %SYSTEMROOT%\php.ini

...\PHP4>copy php4ts.dll %SYSTEMROOT%

(W przypadku systemów Windows 95 oraz Windows 98 zamiast %SYSTEMROOT% nale�yu�y %WINDOWS%).

5. Nast�pnie nale�y otworzy do edycji plik %SYSTEMROOT%\php.ini, odnale� w nimwiersz zaczynaj�cy si� od extension_dir i zmieni jego warto� tak, by wskazywa�a nakatalog PHP4\extensions. Gdy, na przyk�ad, plik .zip zosta� rozpakowany do kataloguC:\PHP4, wiersz ten powinien wygl�da nast�puj�co:

extension_dir = C:\PHP4\extensions

6. Nast�pnie trzeba otworzy do edycji plik conf\httpd.conf znajduj�cy si� w katalogu ServerRooti 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>

Page 19: Apache. Receptury. Wydanie II

2.7. Instalacja modu�u mod_ssl � 53

7. Na koniec nale�y zrestartowa serwer Apache, w wyniku czego modu� PHP powinien si�uaktywni.

AnalizaAby zainstalowa modu� PHP w systemie Windows, nale�y wykona wiele drobiazgowychczynno�ci. eby przekona si�, �e proces instalacji zako�czy� si� powodzeniem, w kataloguDocumentRoot 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óbowaotworzy 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�naznale� w pliku install.txt znajduj�cym si� w katalogu PHP4 oraz w dokumentacji znajduj�cejsi� na stronach WWW.

Zobacz równie�� http://php.net/.

2.7. Instalacja modu�u mod_ssl

ProblemDo dzia�aj�cego serwera WWW Apache nale�y doda obs�ug� SSL, instaluj�c w nim mod_ssl— modu� bezpiecznego HTTP.

Rozwi�zanieWindows

Sposób instalacji protoko�u SSL w systemie Windows jest tematem receptury 7.2. Mówi�cw 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 systemieMicrosoft Windows.

Apache 2.0Modu� mod_ssl zosta� w��czony do wersji 2.0 serwera Apache, ale w przypadku budowyserwera z kodu �ród�owego, modu� nie jest automatycznie kompilowany ani instalowany.Aby w takim przypadku zainstalowa modu� mod_ssl, nale�y w poleceniu ./configurezastosowa opcj� --enable-ssl oraz uaktywni modu� dyrektywami LoadModule orazAddModule.

Apache 1.3Aby 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:

Page 20: Apache. Receptury. Wydanie II

54 � Rozdzia� 2. Instalacja modu�ów

% 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

Analizaeby 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 innejtego 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 kluczoweSYSTEM poinformuje, �e nale�y ich szuka w�a�nie tam, dzi�ki czemu nie trzeba b�dzie ichszuka 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 niew katalogu plików �ród�owych serwera Apache. Skrypt modu�u wprowadza odpowiedniezmiany do skryptu serwera, a nast�pnie uruchamia go.

W tej recepturze omówiono jedynie podstawowy sposób instalacji modu�u mod_ssl. W czasiekonfiguracji modu�u mod_ssl mo�na zleci modu�owi wykorzystanie wielu dodatkowychsk�adników oraz funkcji. Wi�cej informacji na ten temat mo�na znale� w plikach READMEoraz INSTALL znajduj�cych w katalogu plików �ród�owych modu�u mod_ssl lub na stronieWWW http://www.modssl.org/.

Zobacz równie�� Receptura 7.3.

� http://www.modssl.org/.

2.8. Wyszukiwanie modu�ówna witrynie modules.apache.org

ProblemTrzeba 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.

Page 21: Apache. Receptury. Wydanie II

2.9. Instalacja modu�u mod_security � 55

Rozwi�zanieNa 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.

AnalizaRejestr 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 innymu�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 domowychwitrynach ich autorów. Je�eli poszukiwany modu� nie zostanie znaleziony nahttp://modules.apache.org, mo�na spróbowa go poszuka na witrynie SourceForge(pod adresem http://sourceforge.net), FreshMeat (http://freshmeat.net) albo po prostuprzeszuka internet przy u�yciu Google lub innej wyszukiwarki internetowej.

Zobacz równie�� http://sourceforge.net.

� http://freshmeat.net.

2.9. Instalacja modu�u mod_security

ProblemTrzeba zainstalowa modu� mod_security, aby skorzysta z udost�pnianych przez niego pro-stych, a jednocze�nie rozbudowanych mechanizmów filtruj�cych.

Rozwi�zanieNale�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 pozycjimenu Browse lub Search.

Po pobraniu modu�u warto sprawdzi jego sygnatur� PGP, aby upewni si�, �e pliknie uleg� zmianie. Wi�cej informacji na ten temat znajduje si� na witrynie internetowejmodu�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

Page 22: Apache. Receptury. Wydanie II

56 � Rozdzia� 2. Instalacja modu�ów

3. Przej� do rozpakowanego katalogu i zbudowa pakiet, wykorzystuj�c dostarczony wrazz 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 trzebabudowa przy u�yciu jego w�asnych mechanizmów, a nie przez zwyk�e wywo�anienarz�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.soInclude conf/mod_security/*.conf

6. Zrestartowa serwer.

AnalizaSkrypt 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 takiejak 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 dosamego modu�u.

Aktualna wersja modu�u mod_security obs�uguje wy��cznie serwer Apache w wersji 2. Dost�pnajest równie� starsza wersja obs�uguj�ca wersj� 1.3 serwera, lecz jest ma�o prawdopodobne, byby�a utrzymywana przez d�u�szy czas.

Zobacz równie�� Witryna internetowa modu�u mod_security pod adresem http://modsecurity.org.

Page 23: Apache. Receptury. Wydanie II

2.10. Dlaczego ten modu� nie dzia�a? � 57

2.10. Dlaczego ten modu� nie dzia�a?

ProblemPomimo próby zainstalowania modu�u pochodz�cego od dostawcy zewn�trznego serwer WWWApache nie rozpoznaje go.

Rozwi�zanieNale�y sprawdzi kod �ród�owy modu�u, jego dokumentacj� albo zwróci si� bezpo�redniodo autora modu�u, aby ustali wersj� serwera Apache obs�ugiwan� przez modu�.

AnalizaW 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 serweraWWW, 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óbujeza�adowa modu� DSO, najpierw porówna numer wersji w module z w�asnym numerem wersjizapisanym na serwerze. Je�eli oka�e si�, �e numery wersji s� niezgodne, serwer nie za�adujemodu�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 dlaserwera 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�� Rejestr modu�ów serwera Apache pod adresem http://modules.apache.org.