Apache. Receptury. Wydanie II

23
Wydawnictwo Helion ul. Kociuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: [email protected] Apache. Receptury. Wydanie II Autor: Rich Bowen, Ken Coar ISBN: 978-83-246-1549-0 Tytu‡ orygina‡u: Apache Cookbook: Solutions and Examples for Apache Administration (Cookbook) Format: 168x237, stron: 328 Czy wiesz, jaki serwer HTTP jest najpopularniejszy w sieci? W‡anie tak, jest to Apache! W lipcu 2008 roku jego udzia‡ w rynku wynosi‡ blisko 50% (wed‡ug Netcraft). Historia tego serwera siŒga roku 1995, kiedy ukaza‡a siŒ jego pierwsza oficjalna wersja, oznaczona numerem 0.6.2. Cechy, ktre zadecydowa‡y o sukcesie tego rozwi„zania, to bezpieczeæstwo, skalowalno, wielow„tkowo i obs‡uga r¿norodnych jŒzykw skryptowych. DziŒki ksi„¿ce Apache. Receptury zapoznasz siŒ z gotowymi przepisami na rozwi„zanie ciekawych, specyficznych oraz intryguj„cych problemw. Nauczysz siŒ instalowa serwer z r¿nych rde‡ oraz na r¿nych platformach. Dowiesz siŒ, w jaki sposb zwiŒkszy jego bezpieczeæstwo, jak uruchomi serwery wirtualne oraz poprawi wydajno Apache. Autorzy ksi„¿ki poka¿„ Ci, jak uruchomi obs‡ugŒ jŒzykw skryptowych, tak aby serwowane strony sta‡y siŒ dynamiczne. Ca‡a wiedza zostanie przedstawiona w sprawdzony w tej serii sposb: problem rozwi„zanie analiza. Sposoby instalacji serwera Apache Dodawanie funkcjonalnoci dziŒki modu‡om Mo¿liwoci rejestracji zdarzeæ Konfiguracja serwerw wirtualnych Wykorzystanie aliasw, przekierowaæ oraz przepisaæ (mod_rewrite) Zarz„dzanie dostŒpem do serwowanych zasobw Bezpieczeæstwo serwera Apache Wykorzystanie szyfrowanej transmisji - protok‡ SSL Zapewnienie wydajnoci Wykorzystanie jŒzykw skryptowychOto ksi„¿ka z najlepszymi przepisami na Apache!

description

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!

Transcript of Apache. Receptury. Wydanie II

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.