background image

Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63

e-mail: helion@helion.pl

Apache. Receptury.
Wydanie II 

Autor: Rich Bowen, Ken Coar 
ISBN: 978-83-246-1549-0
Tytu³ orygina³u:

 Apache Cookbook:

Solutions and Examples for Apache
Administration (Cookbook) 

Format: 168x237, stron: 328

Czy wiesz, jaki serwer HTTP jest najpopularniejszy w sieci? 

W³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!  

background image

3

Spis tre%ci

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

  1.  Instalacja serwera  ....................................................................................................... 19

1.1. 

Instalacja serwera z pakietów dystrybucji Red Hat Linux 

20

1.2. 

Instalacja serwera z pakietów dystrybucji Debian 

21

1.3. 

Instalacja serwera Apache w systemie Windows 

22

1.4. 

Pobieranie plików "ród#owych serwera Apache 

27

1.5. 

Budowa serwera Apache z kodu "ród#owego 

29

1.6. 

Instalacja serwera Apache za pomoc% programu ApacheToolbox 

30

1.7. 

Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera Apache 

32

1.8. 

Usuni'cie serwera Apache 

34

1.9. 

Której wersji serwera Apache u(y) 

35

1.10.  Uaktualnienie serwera przy u(yciu config.nice 

37

1.11.  Uruchamianie serwera Apache w momencie startu systemu operacyjnego 

38

1.12.  Przydatne opcje konfiguracyjne 

39

1.13.  Odnajdywanie plików serwera Apache 

41

  2.  Instalacja modu1ów  .....................................................................................................43

2.1. 

Instalacja typowego modu#u 

44

2.2. 

Instalacja modu#u mod_dav w systemie uniksowym 

45

2.3. 

Instalacja modu#u mod_dav w systemie Windows 

47

2.4. 

Instalacja modu#u mod_perl w systemie uniksowym 

49

2.5.

Instalacja modu#u mod_php w systemie uniksowym 

51

2.6. 

Instalacja modu#u mod_php w systemie Windows 

52

2.7. 

Instalacja modu#u mod_ssl 

53

2.8. 

Wyszukiwanie modu#ów na witrynie modules.apache.org 

54

2.9. 

Instalacja modu#u mod_security 

55

2.10.  Dlaczego ten modu# nie dzia#a? 

57

background image

4

 

 Spis tre%ci

  3.  Rejestracja zdarze4  .....................................................................................................59

3.1. 

Zwi'kszenie szczegó#owo/ci zapisów dziennika zdarze: 

62

3.2. 

Zwi'kszenie liczby komunikatów o b#'dach 

63

3.3. 

Rejestracja zawarto/ci POST 

65

3.4. 

Rejestracja adresu IP klienta #%cz%cego si' poprzez serwer proxy 

66

3.5. 

Rejestracja adresu MAC klienta 

67

3.6. 

Rejestracja Cookies 

67

3.7.  Zaniechanie rejestracji (%da: pobierania obrazów pochodz%cych

ze stron lokalnych 

69

3.8. 

Zmiana pliku dziennika zdarze: o okre/lonej porze 

70

3.9. 

Zmiana pliku dziennika zdarze: pierwszego dnia miesi%ca 

71

3.10.  Rejestracja nazw komputerów zamiast ich adresów IP 

72

3.11.  Oddzielne pliki dzienników zdarze: serwerów wirtualnych 

73

3.12.  Rejestracja (%da: proxy 

75

3.13.  Rejestracja komunikatów o b#'dach

ró(nych serwerów wirtualnych w ró(nych plikach

76

3.14.  Rejestracja adresu IP serwera 

77

3.15.  Rejestracja stron, z których nadchodz% (%dania 

78

3.16.  Rejestracja nazw u(ywanych przegl%darek 

79

3.17.  Rejestracja dowolnych pól nag#ówka (%dania 

79

3.18.  Rejestracja dowolnych pól nag#ówka odpowiedzi 

80

3.19.  Rejestracja aktywno/ci serwera w bazie danych MySQL 

81

3.20.  Rejestracja zdarze: w dzienniku systemowym 

82

3.21.  Rejestracja katalogów u(ytkowników 

84

  4.  Serwery wirtualne ....................................................................................................... 87

4.1. 

Konfiguracja serwerów wirtualnych opartych na nazwach 

88

4.2.

Konfiguracja jednego z serwerów wirtualnych
opartych na nazwach jako serwera domy/lnego 

90

4.3. 

Konfiguracja serwerów wirtualnych opartych na adresach 

91

4.4. 

Konfiguracja jednego z serwerów wirtualnych
opartych na adresach jako serwera domy/lnego 

92

4.5. 

Jednoczesne u(ycie serwerów wirtualnych
opartych na adresach oraz na nazwach 

93

4.6. 

Liczne serwery wirtualne obs#ugiwane
za pomoc% modu#u mod_vhost_alias 

94

4.7. 

Liczne serwery wirtualne obs#ugiwane za pomoc% regu# przepisania 

96

4.8. 

Rejestracja zdarze: wszystkich serwerów wirtualnych 

97

4.9. 

Podzia# pliku dziennika zdarze: 

98

4.10.  Serwery wirtualne oparte na portach 

98

4.11.  Ta sama zawarto/) dost'pna pod kilkoma adresami IP 

99

4.12.  Definiowanie serwerów wirtualnych w bazie danych 

100

background image

Spis tre%ci

 

5

  5.   Aliasy, przekierowania oraz przepisania ................................................................. 103

5.1. 

Przyporz%dkowanie adresu URL do katalogu 

103

5.2. 

Tworzenie dodatkowego adresu URL dla istniej%cej zawarto/ci 

105

5.3. 

Przydzielenie u(ytkownikom ich w#asnych adresów URL 

106

5.4. 

Uto(samienie kilku adresów URL za pomoc% pojedynczej dyrektywy 

109

5.5. 

Przyporz%dkowanie kilku adresów URL do tego samego katalogu CGI 

110

5.6. 

Tworzenie katalogów CGI dla ka(dego u(ytkownika 

110

5.7. 

Przekierowanie do innego miejsca 

111

5.8. 

Przekierowanie kilku adresów URL w to samo miejsce 

113

5.9. 

Nierozró(nianie wielko/ci liter w adresach URL 

114

5.10.  Wyró(nianie sk#adni kodu "ród#owego PHP

bez u(ycia dowi%za: symbolicznych 

115

5.11.  Wymiana ci%gów znaków w (%danych adresach URL 

117

5.12.  Zamiana informacji o /cie(ce na argumenty CGI 

117

5.13.  Odmowa dost'pu (%daniom pochodz%cym z obcych stron 

118

5.14.  Przekierowanie (%da: pochodz%cych z obcych stron do strony z informacjami 

119

5.15.  Przepisanie na podstawie #a:cucha zapytania 

120

5.16.  Przekierowanie ca#ego lub cz'/ci serwera do SSL 

121

5.17.  Zamiana nazw katalogów na nazwy serwerów 

122

5.18.  Przekierowanie wszystkich (%da: do jednego serwera 

123

5.19.  Zamiana nazw dokumentów na argumenty programu 

123

5.20.  Przepisywanie elementów /cie(ki do ci%gu zapytania i odwrotnie 

124

5.21.  Przepisywanie nazwy serwera na nazw' katalogu 

125

5.22.  Przekszta#canie segmentów adresu URL w argumenty zapytania 

126

5.23.  U(ywanie dyrektyw AliasMatch, ScriptAliasMatch i RedirectMatch 

126

   6.  Bezpiecze4stwo ......................................................................................................... 129

6.1. 

Wykorzystanie kont u(ytkowników
do uwierzytelnienia dost'pu do zasobów WWW 

130

6.2. 

Konfiguracja hase# jednorazowych 

132

6.3. 

Wygasaj%ce has#a 

133

6.4. 

Ograniczanie wielko/ci umieszczanych na serwerze plików 

135

6.5. 

Ograniczenie pobierania obrazków ze stron znajduj%cych si'
na innych serwerach 

137

6.6. 

<%danie zarówno s#abego, jak i silnego uwierzytelnienia 

138

6.7. 

Zarz%dzanie plikami .htpasswd 

139

6.8. 

Przygotowanie plików hase# uwierzytelniania typu Digest 

141

6.9. 

Rozlu"nienie ochrony w podkatalogu 

142

6.10.  Wybiórcze zniesienie ochrony 

144

6.11.  Autoryzacja za pomoc% informacji o w#a/cicielu pliku 

146

6.12.  Przechowywanie po/wiadcze: u(ytkownika w bazie danych MySQL 

147

background image

6

 

 Spis tre%ci

6.13.  Dost'p do nazwy u(ytkownika uwierzytelnionego 

148

6.14.  Uzyskanie has#a u(ytego do uwierzytelnienia 

149

6.15.  Ochrona przed atakami na has#a typu brute-force 

150

6.16.  Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic 

151

6.17.  Dost'p do po/wiadcze: osadzonych w adresach URL 

153

6.18.  Zabezpieczenie us#ugi WebDAV 

153

6.19.  Uruchomienie us#ugi WebDAV bez udzielenia zezwolenia na zapisywanie

do plików u(ytkownikowi, z uprawnieniami którego dzia#a serwer 

154

6.20.  Ograniczanie dost'pu poprzez proxy do okre/lonych adresów URL 

156

6.21.  Ochrona plików za pomoc% os#ony 

157

6.22.  Ochrona plików serwera przed z#o/liwymi skryptami 

159

6.23.  Nadanie prawid#owych uprawnie: do plików 

160

6.24.  Uruchomienie serwera z minimaln% liczb% modu#ów 

163

6.25.  Ograniczenie dost'pu do plików znajduj%cych si'

poza katalogiem g#ównym WWW 

165

6.26.  Ograniczenie metod dost'pnych dla u(ytkowników 

166

6.27.  Ograniczanie (%da: zakresów 

167

6.28.  Obrona przed atakami DoS przy u(yciu modu#u mod_evasive 

168

6.29.  Zmiana katalogu g#ównego serwera Apache

przy u(yciu modu#u mod_security 

170

6.30.  Migracja do mechanizmów uwierzytelniania w wersji 2.2 

171

6.31.  Blokowanie dzia#ania robaków przy u(yciu modu#u mod_security 

172

6.32.  Uprawnienia tylko do odczytu i do zapisu w repozytorium Subversion 

173

6.33.  U(ywanie sta#ych przekierowa: do ukrywania zablokowanych adresów URL 

174

  7.  SSL  ...............................................................................................................................177

7.1. 

Instalacja SSL 

177

7.2. 

Instalacja SSL w systemie Windows 

179

7.3. 

Tworzenie samodzielnie podpisanych certyfikatów SSL 

179

7.4. 

Tworzenie zaufanego o/rodka certyfikacyjnego 

183

7.5. 

Udost'pnianie cz'/ci witryny WWW poprzez SSL 

185

7.6. 

Uwierzytelnianie za pomoc% certyfikatów klientów 

187

7.7. 

Wirtualne serwery SSL 

188

7.8. 

Certyfikaty wieloznaczne 

189

   8.  Tre%? dynamiczna  .......................................................................................................191

8.1. 

Uaktywnienie katalogu CGI 

191

8.2. 

Uaktywnienie skryptów CGI w katalogach niewyznaczonych
za pomoc% dyrektywy ScriptAlias 

193

8.3. 

Wskazywanie dokumentu domy/lnego w katalogu CGI 

194

8.4.  Wykorzystanie rozszerze: plików systemu Windows

do uruchamiana skryptów CGI 

195

background image

Spis tre%ci

 

7

8.5. 

Identyfikacja skryptów CGI na podstawie ich rozszerze: 

197

8.6. 

Sprawdzenie, czy obs#uga programów CGI
jest skonfigurowana poprawnie 

198

8.7. 

Odczyt warto/ci z formularza 

200

8.8. 

Uruchamianie programu CGI dla pewnych rodzajów tre/ci 

203

8.9. 

U(ycie SSI 

204

8.10.  Przedstawienie daty ostatniej modyfikacji 

206

8.11.  Do#%czenie standardowego nag#ówka 

207

8.12.  Do#%czanie wyniku dzia#ania programu CGI 

208

8.13.  Uruchamianie za pomoc% programu suexec skryptów CGI

z uprawnieniami innego u(ytkownika 

208

8.14.  Instalacja programu obs#ugi modu#u mod_perl z serwisu CPAN 

210

8.15.  Pisanie programów obs#ugi modu#u mod_perl 

212

8.16.  Uruchomienie obs#ugi skryptów PHP 

213

8.17.  Weryfikacja instalacji PHP 

214

8.18.  Parsowanie danych wynikowych CGI

z uwzgl'dnieniem dyrektyw Server Side Includes 

215

8.19.  Parsowanie danych wynikowych skryptów ScriptAlias

z uwzgl'dnieniem dyrektyw Server Side Includes 

216

8.20.  Wyznaczenie mod_perl do obs#ugi wszystkich skryptów w j'zyku Perl 

216

8.21.  W#%czenie obs#ugi skryptów j'zyka Python 

217

  9.  Obs1uga b1Ddów  ........................................................................................................ 219

9.1. 

Obs#uga przypadku brakuj%cego pola Host 

219

9.2.  Zmiana kodu stanu odpowiedzi za pomoc% skryptu CGI 

220

9.3. 

W#asne komunikaty o b#'dach 

221

9.4. 

Komunikaty o b#'dach w ró(nych j'zykach 

222

9.5. 

Przekierowanie odwo#a:
do niepoprawnych adresów URL do innych stron 

223

9.6. 

Prawid#owa strona komunikatu o b#'dzie w programie Internet Explorer 

224

9.7. 

Powiadamianie o b#'dach 

225

  10.  Proxy  .......................................................................................................................... 227

10.1.  Zabezpieczenie serwera proxy 

227

10.2.  Zabezpieczenie serwera proxy przed u(yciem

go jako otwartego przeka"nika poczty 

229

10.3.  Przekazywanie (%da: do innego serwera 

230

10.4.  Blokowanie (%da: proxy do okre/lonych miejsc 

231

10.5.  Przeniesienie (%da: obs#ugiwanych przez mod_perl na inny serwer 

232

10.6.  Konfiguracja buforuj%cego serwera proxy 

233

10.7.  Filtrowanie tre/ci przekazywanych przez serwer proxy 

234

10.8.  Wymaganie uwierzytelnienia si' na serwerze dost'pnym poprzez proxy 

235

background image

8

 

 Spis tre%ci

10.9.  Równowa(enie obci%(enia przy u(yciu mod_proxy_balancer 

235

10.10.  Przekazywanie wywo#a: z serwera wirtualnego 

237

10.11.  Blokowanie przekazywania wywo#a: FTP 

237

   11.  Wydajno%? ..................................................................................................................239

11.1. Okre/lenie ilo/ci potrzebnej pami'ci RAM 

239

11.2.  Testowanie wydajno/ci serwera Apache za pomoc% programu ab 

240

11.3.  Dobór ustawie: dost'pu keepalive 

242

11.4.  Okre/lenie stanu aktywno/ci witryny WWW 

243

11.5.  Unikanie wyszukiwania w DNS 

244

11.6.  Optymalizacja dowi%za: symbolicznych 

246

11.7.  Ograniczanie wp#ywu u(ycia plików .htaccess na wydajno/) serwera 

247

11.8.  Wy#%czenie negocjacji tre/ci 

249

11.9.  Optymalizacja tworzenia procesów 

250

11.10.  Dobór parametrów tworzenia w%tków 

251

11.11.  Buforowanie najcz'/ciej przegl%danych plików 

253

11.12.  Równomierne roz#o(enie obci%(enia mi'dzy kilka serwerów 

254

11.13.  Buforowanie list zawarto/ci katalogu 

256

11.14.  Przy/pieszenie pracy programów Perl CGI za pomoc% modu#u mod_perl 

257

11.15.  Buforowanie tre/ci dynamicznych 

258

  12.  Zawarto%? katalogów ................................................................................................ 261

12.1.  Generowanie listy zawarto/ci katalogu lub folderu 

261

12.2.  Wy/wietlanie standardowego nag#ówka i stopki dla listy zawarto/ci katalogu  263
12.3.  Wykorzystanie arkusza stylów 

263

12.4.  Ukrywanie wybranych elementów na li/cie zawarto/ci 

264

12.5.  Wyszukiwanie konkretnych plików na li/cie zawarto/ci katalogu 

265

12.6.  Sortowanie listy zawarto/ci 

265

12.7.  Sortowanie listy zawarto/ci w sposób wskazany przez klienta 

266

12.8.  Definiowanie sposobu formatowania listy zawarto/ci 

268

12.9.  Definiowanie sposobu formatowania przez klienta 

268

12.10.  Dodawanie opisów plików 

269

12.11. Automatyczne generowanie tytu#ów dokumentów 

270

12.12.  Zmiana ikon listy zawarto/ci 

270

12.13.  Wy/wietlanie katalogów na pocz%tku listy 

271

12.14.  Porz%dkowanie wzgl'dem numeru wersji 

272

12.15.  W#%czanie sortowania wzgl'dem numeru wersji przez u(ytkownika 

273

12.16.  Przydzielenie u(ytkownikowi pe#nej kontroli nad formatem listy zawarto/ci  273
12.17.  Wy#%czenie mo(liwo/ci modyfikowania listy zawarto/ci przez u(ytkownika  274
12.18.  Pomijanie wybranych kolumn na li/cie zawarto/ci 

275

12.19.  Wy/wietlanie plików chronionych has#em 

276

12.20.  Wy/wietlanie aliasów na li/cie zawarto/ci 

277

background image

Spis tre%ci

 

9

  13.  Pozosta1e zagadnienia  .............................................................................................. 279

13.1.  Poprawne umieszczanie dyrektyw 

279

13.2.  Zmiana nazw plików .htaccess 

281

13.3.  Tworzenie listy zawarto/ci katalogu 

282

13.4.  Rozwi%zanie „problemu ko:cowego uko/nika” 

283

13.5.  Ustalenie zawarto/ci pola Content-Type

w zale(no/ci od mo(liwo/ci przegl%darki 

285

13.6.  Obs#uga brakuj%cego pola Host nag#ówka 

285

13.7.  Inny domy/lny dokument 

286

13.8.  Konfiguracja domy/lnej „ulubionej ikony” 

287

13.9.  Wy/wietlanie listy zawarto/ci katalogów ScriptAlias 

287

13.10.  W#%czanie obs#ugi plików .htaccess 

289

13.11.  Przekszta#canie dyrektyw Server Side Includes

z serwerów IBM lub Lotus do serwera Apache 

290

  A   UHycie wyraHe4 regularnych ..................................................................................... 291

 

B   RozwiJzywanie problemów  ..................................................................................... 297

Skorowidz   ............................................................................................................................ 307

background image

43

ROZDZIAL 2.

Instalacja modu1ów

W pakiecie podstawowej dystrybucji serwera WWW Apache nie ma bardzo wielu popular-
nych modu#ów. Wi'kszo/) z nich nie trafi#a do dystrybucji podstawowej z powodów licen-
cyjnych lub z powodów zwi%zanych z obs#ug% techniczn%, inne nie s% dystrybuowane przez
Apache Software Foundation, gdy( tak% decyzj' podj'li twórcy serwera, a jeszcze inne s% in-
tegraln% cz'/ci% innych projektów. Na przyk#ad modu# mod_ssl dla serwera  Apache  1.3  jest
tworzony i rozwijany oddzielnie, nie tylko z powodu ameryka:skich ogranicze: eksportowych
(które  by#y znacznie bardziej rygorystyczne  w  czasie,  gdy  pakiet  powstawa#),  ale  g#ównie
dlatego, (e wymaga on wprowadzenia zmian do j%dra serwera, na które nie zdecydowali si'
jego twórcy.

W  niniejszym  rozdziale  przedstawiono  receptury  omawiaj%ce  instalacj'  niektórych  najbar-
dziej popularnych modu#ów pochodz%cych spoza oficjalnej dystrybucji. Je(eli zachodzi taka
potrzeba, przedstawione s% osobne receptury omawiaj%ce instalacj' modu#ów w systemach
uniksowych i instalacj' w systemie Windows.

Najbardziej kompletna lista modu#ów innych producentów znajduje si' na stronie Apache Mo-
dule Registry pod adresem http://modules.apache.org/. Niektóre modu#y s% tak  popularne  lub
s% tak z#o(one, (e po/wi'cono im ca#e strony internetowe. Tak jest na przyk#ad w przypadku
modu#ów omówionych w tym rozdziale.

Wielu twórców modu#ów zajmuje si' tworzeniem tylko jednego modu#u. Oznacza to, (e poten-
cjalnie mo(e istnie) tyle sposobów instalacji modu#ów, ile jest samych modu#ów. Pierwsza re-
ceptura tego rozdzia#u opisuje proces instalacji, który powinien by) odpowiedni dla wielu
modu#ów wersji 1.3 serwera Apache. Jednak w przypadku ka(dego modu#u, nale(y sprawdzi)
w jego dokumentacji, czy jego instalacja nie przebiega w inny sposób.

Wiele  z  tych  modu#ów  mo(na  otrzyma)  od  firm,  które  tworz%  pakiety  i  dystrybuuj%  opro-
gramowanie Apache — na przyk#ad w postaci modu#ów RPM firm Mandrake czy Red Hat.
Jednak takie pakiety budowane s% przy pewnych za#o(eniach poczynionych przez tworz%c%
je firm'. Mówi%c inaczej — je(eli serwer zosta# zbudowany z plików "ród#owych, a jego pliki
znajduj% si' w miejscach innych ni( standardowe, nie nale(y si' dziwi), gdy instalacja jakie-
go/ modu#u si' nie powiedzie.

background image

44

 

Rozdzia1 2. Instalacja modu1ów

Wszystkie modu#y opisane w tym rozdziale s% obs#ugiwane przez wersj' 1.3 serwera Apache
dzia#aj%c%  w  systemach  uniksowych.  Informacje  na  temat  modu#ów  dla  wersji  2.0  serwera
oraz w przypadku systemu Windows zebrano w tabeli 2.1.

Tabela 2.1. Obs-uga modu-ów w systemie Windows oraz przez wersj7 2.0 serwera Apache

Nazwa modu1u

Obs1uga w systemie Windows

Obs1uga przez serwer Apache 2.0

mod_dav

Tak

Modu  do #czony do serwera
— nie ma potrzeby instalowania.

mod_perl

Tak

Tak

mod_php

Tak

Tak

mod_ssl

Nie

Modu  do #czony do serwera
— nie ma potrzeby instalowania.

2.1. Instalacja typowego modu1u

Problem

Nale(y zainstalowa) posiadany modu#, którego instalacja nie zosta#a omówiona osobno w tym
rozdziale.

RozwiJzanie

W katalogu, w którym znajduje si' plik "ród#owy modu#u, nale(y wyda) polecenie:

/)cie*ka/do/serwera/apache/bin/apxs -cia modu+.c

Analiza

Gdy modu# sk#ada si' z pojedynczego pliku o rozszerzeniu .c, istnieje du(e prawdopodobie:-
stwo, (e modu# uda si' zbudowa) i zainstalowa) za pomoc% powy(szego rozwi%zania. Mo-
du#om sk#adaj%cym si' z kilku plików "ród#owych powinny towarzyszy) instrukcje instalacji.

Opcje 

-cia

 powoduj% kolejno kompilacj', instalacj', a nast'pnie aktywacj' modu#u. Pierwsza

czynno/) jest oczywista, instalacja polega na umieszczeniu pliku .so w miejscu, w którym b'dzie
go poszukiwa# serwer Apache, a aktywacja polega na umieszczeniu odpowiedniego wpisu
w pliku httpd.conf.

Zobacz równieH

"  Strony podr'cznika man dotycz%ce programu apxs, przewa(nie ServerRoot/man/man8/apxs.8.

background image

2.2. Instalacja modu1u mod_dav w systemie uniksowym

 

45

2.2. Instalacja modu1u mod_dav

w systemie uniksowym

Problem

Na serwerze WWW nale(y uruchomi) us#ug' WebDAV. Dzi'ki us#udze WebDAV zdalni u(yt-
kownicy mog% dodawa), usuwa) i uaktualnia) pliki znajduj%ce si' na serwerze w sposób
niezawodny i bezpieczny, bez potrzeby korzystania z us#ugi FTP.

RozwiJzanie

Modu# mod_dav jest do#%czony do wersji 2.0 serwera Apache, wystarczy go tylko uaktywni) za
pomoc% opcji kompilacji 

--enable-dav

.

W przypadku serwera Apache 1.3 pakiet "ród#owy modu#u mod_dav nale(y pobra) ze strony
http://webdav.org/mod_dav/

, rozpakowa), a nast'pnie wyda) polecenia:

cd mod_dav-1.0.3-1.3.6
./configure --with-apxs=/usr/local/apache/bin/apxs
make
make install

Nast'pnie nale(y zatrzyma) i uruchomi) serwer ponownie oraz zapozna) si' z receptur% 6.18.

Analiza

Modu# mod_dav zachowuje si' poprawnie i #atwo daje si' zbudowa) i w#%czy) do dzia#aj%ce-
go serwera. Aby sprawdzi), czy modu# zosta# zainstalowany poprawnie, trzeba na potrzeby
us#ugi WebDAV przeznaczy) na serwerze jaki/ katalog i sprawdzi) dost'p do niego za po-
moc% narz'dzia wspomagaj%cego WebDAV. Polecamy u(ycie do tego celu programu cadaver
— korzystaj%cego z wiersza polece: narz'dzia typu open source. (Adres strony, z której mo(-
na pobra) program cadaver, znajduje si' na ko:cu receptury).

Aby  uaktywni)  na  serwerze  WWW  us#ug'  WebDAV,  nale(y  do  pliku  httpd.conf  doda)  co
najmniej  dwie  dyrektywy.  Pierwsza  wskazuje  po#o(enie  bazy  blokad  plików,  wykorzysty-
wanej przez mod_dav po to, by operacje wykonywane przez WebDAV wzajemnie ze sob% nie
kolidowa#y.  Baza  musi  znajdowa)  si'  katalogu,  do  którego  serwer  ma  prawo  zapisu.  Na
przyk#ad:

cd /usr/local/apache
mkdir var
chgrp nobody var
chmod g+w var

Nast'pnie w pliku httpd.conf, poza wszystkimi kontenerami, nale(y umie/ci) wiersze:

<IfModule mod_dav.c>
    DAVLockDB /usr/local/apache/var/DAVlock
</IfModule>

background image

46

 

Rozdzia1 2. Instalacja modu1ów

Baza  DAVLockDB  nie  mo@e  znajdowa)  si'  w  systemie  plików  typu  NFS,  gdy(  NFS
nie  obs#uguje  wymaganego  przez  modu#  mod_dav  sposobu  blokowania  plików.
Umieszczenie bazy blokad plików w systemie plików typu NFS mo(e doprowadzi)
do nieprzewidywalnych skutków.

Nast'pnie nale(y utworzy) tymczasowy katalog s#u(%cy do przetestowania dzia#ania us#ugi
WebDAV:

cd /usr/local/apache
mkdir htdocs/dav-test
chgrp nobody htdocs/dav-test
chmod g+w htdocs/dav-test

Teraz do pliku httpd.conf nale(y doda) sekcj' przeznaczaj%c% utworzony katalog na potrzeby
us#ugi WebDAV:

<Directory "/usr/local/apache/htdocs/dav-test">
    DAV On
</Directory>

Nast'pnie nale(y zatrzyma) i ponownie uruchomi) serwer, który po uruchomieniu powinien
rozpocz%)  obs#ug'  operacji  WebDAV  kierowanych  pod  lokalny  identyfikator  URI  /dav-test.
Aby przetestowa) dzia#anie WebDAV za pomoc% programu cadaver, nale(y wyda) przedsta-
wione polecenia, w wyniku czego powinno si' otrzyma) wyniki podobne do poni(szych:

cd /tmp
echo "Zwyk+y tekst" > dav-test.txt
cadaver
dav:!> open http://localhost/dav-test
Looking up hostname... Connecting to server... connected.
dav:/dav-test/> put dav-test.txt
Uploading dav-test.txt to '/dav-test/dav-test.txt': (reconnecting...done)
Progress: [= == == == == == == == == == == == == == ==>] 100.0% of 11 bytes succeeded.
dav:/dav-test/> propset dav-test.txt MyProp 1023
Setting property on 'dav-test.txt': (reconnecting...done) succeeded.
dav:/dav-test/> propget dav-test.txt MyProp
Fetching properties for 'dav-test.txt':
Value of MyProp is: 1023
dav:/dav-test/> propdel dav-test.txt MyProp
Deleting property on 'dav-test.txt': succeeded.
dav:/dav-test/> close
Connection to 'localhost' closed.
dav:!> exit
rm dav-test.txt

W tym przypadku w#a/ciwo/ci (ang. properties) s% atrybutami zasobów WebDAV. Niektóry-
mi z nich (na przyk#ad rozmiarem zasobu) zarz%dza system, a inne mog% by) dowolnie do-
dawane, zmieniane i usuwane przez u(ytkownika.

Po  sprawdzeniu  poprawno/ci  dzia#ania  modu#u  mod_dav  katalog  htdocs/dav-test  nale(y  usun%),
podobnie jak zwi%zan% z nim sekcj' 

<Directory>

 pliku httpd.conf, a nast'pnie nale(y zapo-

zna) si' z receptur% 6.18.

Zobacz równieH

"  Receptura 6.18.

"  http://webdav.org/mod_dav/.

"  http://webdav.org/cadaver/.

background image

2.3. Instalacja modu1u mod_dav w systemie Windows

 

47

2.3. Instalacja modu1u mod_dav w systemie Windows

Problem

Na serwerze WWW Apache 1.3 dzia#aj%cym w systemie Windows nale(y za pomoc% modu#u
mod_dav

 uruchomi) us#ug' WebDAV.

RozwiJzanie

Modu# mod_dav w wersji 2.0 serwera Apache znajduje si' standardowo, nie  ma  wi'c w takim
przypadku konieczno/ci pobierania go i instalowania.

Ze  strony  http://webdav.org/mod_dav/win32/  nale(y  pobra)  i  rozpakowa)  pakiet  modu#u  mod_dav
przeznaczony dla systemu Windows. Nast'pnie nale(y sprawdzi), czy w katalogu 

ServerRoot

(w katalogu g#ównym serwera Apache) znajduj% si' pliki xmlparse.dll oraz xmltok.dll. Je(eli ich
tam nie ma, nale(y odnale") je w innych katalogach serwera Apache, a nast'pnie skopiowa)
je  do  katalogu 

ServerRoot

.  Do  pracy  modu#  mod_dav  potrzebuje  pakietu  Expat,  który  jest

do#%czany do serwera Apache pocz%wszy od wersji 1.3.9. Poszukiwane pliki pochodz% z pa-
kietu Expat.

Plik DLL modu#u mod_dav nale(y przekopiowa) do katalogu, w którym znajduj% si' modu#y
serwera Apache:

C:\>cd mod_dav-1.0.3-dev
C:\mod_dav-1.0.3-dev>copy mod_dav.dll C:\Apache\modules
C:\mod_dav-1.0.3-dev>cd \Apache

W pliku httpd.conf nale(y umie/ci) nast'puj%cy wiersz:

LoadModule dav_module modules/mod_dav.dll

Je(eli plik httpd.conf zawiera dyrektyw' 

ClearModuleList 

i dodaje wszystkie modu#y, nale(y

równie( doda) wiersz 

AddModule

. Mo(na te( wiersz 

LoadModule

 dotycz%cy modu#u mod_dav

umie/ci) po dyrektywie 

ClearModuleList

.

Analiza

Modu# mod_dav zachowuje si' poprawnie i #atwo daje si' zbudowa) i w#%czy) do dzia#aj%ce-
go serwera. Aby sprawdzi), czy modu# zosta# zainstalowany poprawnie, trzeba na potrzeby
us#ugi WebDAV przeznaczy) na serwerze jaki/ katalog i sprawdzi) dost'p do niego za po-
moc% narz'dzia wspomagaj%cego WebDAV lub otworzy) go programem Eksplorator Windows
(pocz%wszy od systemu Windows 2000). Mo(na te( uzyska) do niego dost'p z innego kom-
putera za pomoc% programu cadaver lub innego narz'dzia wspomagaj%cego WebDAV.

Aby uaktywni) na serwerze WWW us#ug' WebDAV, nale(y do pliku ServerRoot/conf/httpd.conf
doda) co najmniej dwie dyrektywy. Pierwsza wskazuje po#o(enie bazy blokad plików wyko-
rzystywanej przez mod_dav po to, by operacje wykonywane  przez WebDAV wzajemnie nie
kolidowa#y ze sob%. Baza musi znajdowa) si' w katalogu, do którego serwer ma prawo do za-
pisu. Na przyk#ad:

C:\Apache-1.3>mkdir var

background image

48

 

Rozdzia1 2. Instalacja modu1ów

<eby uruchomi) us#ug' WebDAV, do pliku httpd.conf nale(y doda) nast'puj%ce wiersze:

<IfModule mod_dav.c>
    DAVLockDB "C:/Apache-1.3/var/dav-lock"
</IfModule>

<eby przetestowa) prac' modu#u mod_dav, nale(y utworzy) tymczasowy katalog:

C:\Apache-1.3>mkdir htdocs\dav-test

Nast'pnie, po to, by us#uga WebDAV rozpocz'#a udost'pnianie katalogu testowego, nale(y
zmieni) zawarto/) kontenera 

<IfModule>

:

<IfModule mod_dav.c>
    DAVLockDB "C:/Apache-1.3/var/dav-lock"
    <Directory "C:/Apache-1.3/htdocs/dav-test">
        DAV On
    </Directory>
</IfModule>

Teraz nale(y zatrzyma) serwer i uruchomi) go ponownie, a nast'pnie spróbowa) otworzy)
katalog /dav-test za pomoc% klienta WebDAV. W przypadku zastosowania jako klienta Web-
DAV dzia#aj%cego w innym komputerze programu cadaver, przyk#ad jego u(ycia mo(na znale")
w recepturze 2.2. Poni(ej przedstawiono sposób testowania pracy modu#u mod_dav za pomoc%
programu Eksplorator Windows.

Testowania pracy modu1u mod_dav za pomocJ programu Eksplorator Windows

Po przeznaczeniu katalogu htdocs\dav-test na potrzeby us#ugi WebDAV i ponownym urucho-
mieniu serwera WWW Apache nale(y uruchomi) program Eksplorator Windows. Aby uzyska)
dost'p do katalogu us#ugi WebDAV, nale(y wykona) ni(ej opisane czynno/ci. Mo(na to zrobi)
na komputerze, na którym uruchomiono us#ug' WebDAV lub na innym komputerze z systemem
Windows, który ma dost'p do tego komputera.

 

1. 

W programie Eksplorator Windows nale(y klikn%) pozycj' Moje miejsca sieciowe

1

.

 

2. 

Nast'pnie  w  prawym  oknie  programu  Eksplorator  Windows  nale(y  klikn%)  dwukrotnie
ikon' Dodaj miejsce sieciowe.

 

3. 

Jako lokalizacj' nowego miejsca sieciowego nale(y wpisa):

http://127.0.0.1/dav-test/

Gdy czynno/ci te wykonywane s% w innym komputerze ni( ten, w którym uruchomiono
us#ug'  WebDAV,  zamiast  adresu 

127.0.0.1

  nale(y  wpisa)  nazw' serwera,  w  którym

uruchomiono modu# mod_dav.

 

4. 

Po naci/ni'ciu przycisku Dalej nale(y nada) utworzonemu miejscu sieciowemu now% na-
zw' lub pozosta) przy proponowanej.

 

5. 

Program Eksplorator Windows powinien teraz otworzy) okno o nazwie zdefiniowanej w po-
przednim kroku. Zawarto/) okna powinna by) pusta, gdy( otwarty zosta# pusty katalog.

 

6. 

W g#ównym oknie programu Eksplorator Windows nale(y przej/) do dowolnego katalogu
zawieraj%cego pliki.

                                                       

1

Poni(sza  procedura  dotyczy  systemów  Windows  2000  lub  Windows  Me.  W  systemie  Windows  XP  nale(y
klikn%) dwukrotnie znajduj%c% si' na pulpicie ikon' Moje miejsca sieciowe, a nast'pnie ze znajduj%cego si'
po lewej stronie panela Zadania sieciowe wybra) Dodaj miejsce sieciowe — przyp. t-um.

background image

2.4. Instalacja modu1u mod_perl w systemie uniksowym

 

49

 

7. 

Przytrzymuj%c wci/ni'ty przycisk Ctrl, nale(y przeci%gn%) do okna otwartego w punkcie 5.
dowolny plik lub pliki.

 

8. 

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

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

Po zako:czeniu testowania nale(y usun%) katalog htdocs\dav-test, a tak(e usun%) z pliku konfigu-
racyjnego wiersz 

<Directory "C:/Apache-1.3/htdocs/dav-test">

. W przeciwnym razie swoje

pliki b'dzie móg# umieszcza) tam ka(dy.

Zobacz równieH

"  Receptura 6.18.

"  http://webdav.org/mod_dav/.

2.4. Instalacja modu1u mod_perl

w systemie uniksowym

Problem

Aby skrypty Perla by#y wykonywane szybciej i by#y lepiej obs#ugiwane przez serwer WWW,
nale(y zainstalowa) modu# mod_perl.

RozwiJzanie

W  przypadku  serwera  Apache  1.3  ze  strony  http://perl.apache.org/  nale(y  pobra)  pakiet  "ró-
d#owy modu#u mod_perl 1.0, rozpakowa) go, a nast'pnie wyda) nast'puj%ce polecenia:

perl Makefile.PL \
>     USE_APXS=1 \
>     WITH_APXS=/usr/local/apache/bin/apxs \
>     EVERYTHING=1 \
>     PERL_USELARGEFILES=0
make
make install

Nast'pnie nale(y uruchomi) serwer ponownie.

Dla serwera Apache 2.0 i wersji pó"niejszych proces przebiega analogicznie. Nale(y pobra)
i rozpakowa) pakiet "ród#owy mod_perl 2.0, a nast'pnie wykona) nast'puj%ce polecenie:

perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs

Analiza

Modu# mod_perl jest modu#em do/) z#o(onym. Na serwerze Apache mo(na zainstalowa) go na
kilka sposobów. W recepturze przedstawiono sposób najszybszy i najprostszy. Je(eli z jakich/
powodów sposób ten jest nieodpowiedni, nale(y zapozna) si' z ró(nymi plikami README.*

background image

50

 

Rozdzia1 2. Instalacja modu1ów

znajduj%cymi si' w katalogu pakietu. Poniewa( podstawowym j'zykiem modu#u jest Perl,
a nie C, instrukcja instalacji ró(ni si' zdecydowanie od stosowanych w przypadku wi'kszo/ci
innych modu#ów.

Gdy po instalacji modu#u serwer uruchomi si' poprawnie, modu# mod_perl rozpoczyna dzia#a-
nie i jest skonfigurowany. Dzia#anie modu#u mo(na przetestowa), dokonuj%c  zmian w pliku
httpd.conf

, dodaj%c kilka skryptów i obserwuj%c, czy serwer obs#uguje je poprawnie. Oto

przyk#ad testowania dzia#ania modu#u mod_perl.

 

1. 

Na potrzeby skryptów modu#u mod_perl nale(y utworzy) nowy folder:

cd ServerRoot
mkdir lib lib/perl lib/perl/Apache

 

2. 

W katalogu conf/ serwera nale(y utworzy) plik startup.pl zawieraj%cy instrukcje urucho-
mieniowe dla modu#u mod_perl:

#!/usr/bin/perl
BEGIN {
    use Apache ( );
    use lib Apache->server_root_relative('lib/perl');
}
use Apache::Registry ( );
use Apache::Constants ( );
use CGI qw(-compile :all);
use CGI::Carp ( );
1;

 

3. 

Nast'pnie nale(y utworzy) wykorzystywany w te/cie plik lib/perl/Apache/HelloWorld.pm:

package Apache::HelloWorld;
use strict;
use Apache::Constants qw(:common);
sub handler {
    my $r = shift;
    $r->content_type('text/plain; charset=ISO-8859-2');
    $r->send_http_header;
    $r->print("Witaj Ywiecie! Pozdrowienia od moduZu mod_perl.\n");
    return OK;
}
1;

 

4. 

Teraz trzeba otworzy) do edycji plik konfiguracyjny serwera i umie/ci) w nim dyrekty-
wy umo(liwiaj%ce modu#owi mod_perl odnalezienie potrzebnych mu sk#adników oraz in-
formuj%ce go, kiedy ma uruchomi) skrypt testowy. Do pliku httpd.conf nale(y doda) na-
st'puj%ce wiersze:

<IfModule mod_perl.c>
    PerlRequire conf/startup.pl
    <Location /mod_perl/howdy>
        SetHandler perl-script
        PerlHandler Apache::HelloWorld
    </Location>
</IfModule>

 

5. 

Teraz  nale(y  uruchomi)  serwer  ponownie,  a  nast'pnie  uruchomi)  skrypt,  wpisuj%c:
http://localhost/mod_perl/howdy

.

Je(eli  konfiguracja  jest  poprawna,  pojawi  si'  strona  zawieraj%ce  zdanie:  „Witaj  /wiecie!  Po-
zdrowienia od modu#u mod_perl.”.

background image

2.5. Instalacja modu1u mod_php w systemie uniksowym

 

51

Zobacz równieH

"  http://perl.apache.org/.

"  Ksi%(ka Writing Apache Modules with Perl and C, autorzy Doug MacEachern oraz Lincoln

Stein, wydawnictwo O'Reilly.

"  Ksi%(ka mod_perl Developer's Cookbook, autorzy Geoffrey Young, Paul Lindner oraz Randy

Kobes wydawnictwo Sams

2

.

2.5. Instalacja modu1u mod_php

w systemie uniksowym

Problem

Do dzia#aj%cego serwera WWW Apache nale(y doda) modu# obs#ugi skryptów mod_php.

RozwiJzanie

Pakiet "ród#owy modu#u mod_php nale(y pobra) ze strony http://php.net/, rozpakowa) go, a na-
st'pnie wyda) nast'puj%ce polecenia:

cd php-5.2.3
./configure \
>     --with-apxs=/usr/local/apache/bin/apxs
make
make install

Nast'pnie nale(y uruchomi) serwer ponownie.

Analiza

Aby przekona) si', (e instalacja zako:czy#a si' powodzeniem, w katalogu 

DocumentRoot

 ser-

wera WWW nale(y utworzy) sk#adaj%cy si' z jednego wiersza plik info.php:

<?php phpinfo( ); ?>

Do pliku konfiguracyjnego httpd.conf nale(y doda) poni(sze wiersze:

<IfModule mod_php4.c>
    AddHandler application/x-httpd-php .php
</IfModule>

Po  ponownym  uruchomieniu  serwera  WWW  nale(y  za  pomoc%  przegl%darki  spróbowa)
otworzy) dokument info.php. W wyniku tego powinien pojawi) si' szczegó#owy opis aktyw-
nych opcji PHP. Je(eli opis rzeczywi/cie si' pojawi, b'dzie to wskazywa), (e instalacja zako:-
czy#a si' pomy/lnie i plik info.php mo(na usun%).

Podczas instalacji PHP mo(na zastosowa) wiele opcji i rozszerze:, w tej recepturze omówio-
no tylko najprostszy sposób instalacji modu#u.
                                                       

2

Polskie wydanie: mod_perl. Podr'cznik programisty, Helion 2003 — przyp. red.

background image

52

 

Rozdzia1 2. Instalacja modu1ów

Zobacz równieH

"  Receptura 8.16.

"  Receptura 8.17.

"  http://php.net/.

2.6. Instalacja modu1u mod_php w systemie Windows

Problem

Do dzia#aj%cego w systemie Windows serwera  WWW Apache nale(y  doda)  modu#  obs#ugi
skryptów mod_php.

RozwiJzanie

W tej recepturze zamiast podawania szczegó#owych polece: czynno/ci, które nale(y wyko-
na), przedstawione zostan% w sposób opisowy.

 

1. 

Ze strony http://php.net/ nale(y pobra) plik binarny .zip (a nie plik .exe) PHP dla systemu
Windows zawieraj%cego rozszerzenia API.

 

2. 

Plik  .zip  nale(y  rozpakowa)  do  katalogu,  w  którym  zawarto/)  pliku  mo(e  pozosta)  na
zawsze (na przyk#ad do katalogu C:\PHP4). W przypadku u(ycia programu WinZip na-
le(y zaznaczy) pole wyboru Use folder names, aby utworzona zosta#a taka struktura pli-
ków jak umieszczona w pliku .zip.

 

3. 

Do katalogu \modules\ znajduj%cego si' w katalogu 

ServerRoot

 serwera Apache nale(y

przekopiowa) plik PHP4\SAPI\php4apache.dll.

 

4. 

W oknie wiersza polecenia nale(y przej/) do katalogu PHP4, do którego zosta# rozpako-
wany plik .zip, a nast'pnie wyda) polecenia:

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

(W  przypadku  systemów  Windows  95  oraz  Windows  98  zamiast 

%SYSTEMROOT%

  nale(y

u(y) 

%WINDOWS%

).

 

5. 

Nast'pnie  nale(y  otworzy)  do  edycji  plik  %SYSTEMROOT%\php.ini,  odnale")  w nim
wiersz zaczynaj%cy si' od 

extension_dir

 i zmieni) jego warto/) tak, by wskazywa#a na

katalog  PHP4\extensions.  Gdy,  na  przyk#ad,  plik  .zip  zosta#  rozpakowany  do  katalogu
C:\PHP4

, wiersz ten powinien wygl%da) nast'puj%co:

extension_dir = C:\PHP4\extensions

 

6. 

Nast'pnie trzeba otworzy) do edycji plik conf\httpd.conf znajduj%cy si' w katalogu 

ServerRoot

i w pobli(u innych wierszy 

LoadModule

 nale(y doda) wiersz:

LoadModule php4_module modules/php4apache.dll

W pobli(u nale(y umie/ci) równie( wiersze dotycz%ce plików .php:

<IfModule mod_php4.c>
    AddType application/x-httpd-php .php
</IfModule>

background image

2.7. Instalacja modu1u mod_ssl

 

53

 

7. 

Na koniec nale(y zrestartowa) serwer Apache, w wyniku czego modu# PHP powinien si'
uaktywni).

Analiza

Aby zainstalowa) modu# PHP w systemie Windows, nale(y wykona) wiele drobiazgowych
czynno/ci. <eby przekona) si', (e proces instalacji zako:czy# si' powodzeniem, w katalogu

DocumentRoot

 serwera nale(y utworzy) sk#adaj%cy si' z jednego wiersza plik info.php:

<?php phpinfo( ); ?>

Po ponownym uruchomieniu si' serwera WWW nale(y za pomoc% przegl%darki spróbowa)
otworzy) dokument info.php. W wyniku tego powinien pojawi) si' szczegó#owy opis aktyw-
nych opcji PHP.

W  czasie  instalacji  PHP  mo(na  zastosowa)  wiele  opcji  i  rozszerze:,  w  tej  recepturze  omó-
wiono  tylko  najprostszy  sposób  instalacji  modu#u.  Wi'cej  szczegó#ów  na  ten  temat  mo(na
znale") w pliku install.txt znajduj%cym si' w katalogu PHP4 oraz w dokumentacji znajduj%cej
si' na stronach WWW.

Zobacz równieH

"  http://php.net/.

2.7. Instalacja modu1u mod_ssl

Problem

Do dzia#aj%cego serwera WWW Apache nale(y doda) obs#ug' SSL, instaluj%c w nim mod_ssl
— modu# bezpiecznego HTTP.

RozwiJzanie

Windows

Sposób instalacji protoko#u SSL w systemie Windows jest tematem receptury 7.2. Mówi%c
w najwi'kszym skrócie, najlepiej jest pobra) XAMPP z witryny ApacheFriends.org, chyba
(e posiada si' odpowiednie do/wiadczenie w budowaniu kodu "ród#owego w systemie
Microsoft Windows.

Apache 2.0

Modu# mod_ssl zosta# w#%czony do wersji 2.0 serwera  Apache,  ale  w  przypadku  budowy
serwera  z  kodu  "ród#owego,  modu#  nie  jest  automatycznie  kompilowany  ani  instalowany.
Aby w takim przypadku zainstalowa) modu# mod_ssl, nale(y w poleceniu 

./configure

zastosowa)  opcj' 

--enable-ssl

  oraz  uaktywni)  modu#  dyrektywami 

LoadModule

  oraz

AddModule

.

Apache 1.3

Aby zainstalowa) modu# mod_ssl w systemie uniksowym, ze strony http://www.modssl. org/
nale(y pobra) i rozpakowa) archiwum tar modu#u, a nast'pnie wyda) polecenia:

background image

54

 

Rozdzia1 2. Instalacja modu1ów

cd mod_ssl-2.8.14-1.3.27

3

./configure \
>    --with-apache=../apache_1.3.27 \
>    --with-ssl=SYSTEM \
>    --prefix=/usr/local/apache
cd ../apache_1.3.27
make
make certificate

Analiza

<eby modu# mod_ssl móg# dzia#a), kod "ród#owy serwera Apache musi zosta) zmodyfikowany.
Dzi'ki temu mo(na zainstalowa) tylko tak% wersj' pakietu mod_ssl, która odpowiada wersji po-
siadanej dystrybucji serwera Apache. Je(eli instalacja serwera  Apache nie zawiera plików "ró-
d#owych (co ma miejsce na przyk#ad w przypadku instalacji serwera z pakietu RPM czy z innej
tego typu dystrybucji) — instalacja modu#u mod_ssl nie powiedzie si'.

Poza kodami "ród#owymi serwera Apache do zainstalowania modu#u mod_ssl potrzebne s%
jeszcze Perl oraz biblioteki OpenSSL. Ich po#o(enie okre/la si' za pomoc% opcji 

--with-ssl

.

Je(eli  biblioteki  znajduj%  si'  w  katalogu  utworzonym  przez  ich  dostawc',  s#owo  kluczowe

SYSTEM

  poinformuje,  (e  nale(y  ich  szuka)  w#a/nie  tam,  dzi'ki  czemu  nie  trzeba  b'dzie  ich

szuka) samemu.

W przeciwie:stwie do wi'kszo/ci innych modu#ów serwera Apache, aby zainstalowa) modu#
mod_ssl

, nale(y uruchomi) skrypt ./configure znajduj%cy si' w katalogu modu#u mod_ssl, a nie

w  katalogu  plików  "ród#owych  serwera  Apache.  Skrypt  modu#u  wprowadza  odpowiednie
zmiany do skryptu serwera, a nast'pnie uruchamia go.

W tej recepturze omówiono jedynie podstawowy sposób instalacji modu#u mod_ssl. W czasie
konfiguracji  modu#u  mod_ssl  mo(na  zleci)  modu#owi  wykorzystanie  wielu  dodatkowych
sk#adników oraz funkcji. Wi'cej informacji na ten temat mo(na znale") w plikach README
oraz  INSTALL  znajduj%cych  w  katalogu  plików  "ród#owych  modu#u  mod_ssl  lub  na  stronie
WWW http://www.modssl.org/.

Zobacz równieH

"  Receptura 7.3.

"  http://www.modssl.org/.

2.8. Wyszukiwanie modu1ów

na witrynie modules.apache.org

Problem

Trzeba znale") modu#y serwera Apache udost'pniaj%ce okre/lone funkcje lub nosz%ce okre-
/lone nazwy. Wiadomo jednocze/nie, (e istnieje rejestr modu#ów serwera Apache.

                                                       

3

Nazwa katalogu zale(na jest od instalowanej wersji mod_ssl. — przyp. red.

background image

Czytaj dalej...

2.9. Instalacja modu1u mod_security

 

55

RozwiJzanie

Na witrynie http://modules.apache.org nale(y poda) s#owa kluczowe odnosz%ce si' do poszu-
kiwanych funkcji lub fragment nazwy modu#u i przeprowadzi) wyszukiwanie.

Analiza

Rejestr modu#ów serwera Apache to nieoficjalna witryna internetowa, na której autorzy mo-
du#ów z w#asnej inicjatywy mog% zarejestrowa) efekty swoich prac, aby udost'pni) je innym
u(ytkownikom.

Wspomniana witryna w (adnym wypadku nie zawiera wszystkich modu#ów serwe-
ra Apache; wiele z nich jest dost'pnych na witrynie SourceForge albo na domowych
witrynach  ich  autorów.  Je(eli  poszukiwany  modu#  nie  zostanie  znaleziony  na
http://modules.apache.org

,  mo(na  spróbowa)  go  poszuka)  na  witrynie  SourceForge

(pod adresem http://sourceforge.net), FreshMeat (http://freshmeat.net) albo po prostu
przeszuka) internet przy u(yciu Google lub innej wyszukiwarki internetowej.

Zobacz równieH

"  http://sourceforge.net.

"  http://freshmeat.net.

2.9. Instalacja modu1u mod_security

Problem

Trzeba zainstalowa) modu# mod_security, aby skorzysta) z udost'pnianych przez niego pro-
stych, a jednocze/nie rozbudowanych mechanizmów filtruj%cych.

RozwiJzanie

Nale(y wykona) nast'puj%ce czynno/ci:

 

1. 

Pobra) modu# mod_security oraz g#ówne regu#y modu#u z witryny http://modules.apache.org.
Aby znale") modu# do pobrania na podanej stronie WWW, nale(y skorzysta) z pozycji
menu Browse lub Search.

Po pobraniu modu#u warto sprawdzi) jego sygnatur' PGP, aby upewni) si', (e plik
nie uleg# zmianie. Wi'cej informacji na ten temat znajduje si' na witrynie internetowej
modu#u mod_security.

 

2. 

Rozpakowa) zestaw (bez regu#) do katalogu roboczego:

cd /usr/local/build
tar xzf /usr/local/kits/modsecurity-apache_2.1.1