Vous êtes sur la page 1sur 33

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE

Apache. Rozmwki
Autorzy: Daniel Lopez, Jesus Blanco
Tumaczenie: Grzegorz Werner
ISBN: 83-246-0669-6
Tytu oryginau: Apache Phrasebook
Format: B6, stron: 272

ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Apache to jeden z najpopularniejszych serwerw WWW. Dostpny nieodpatnie na


licencji open source jest motorem napdowym ponad 70% witryn WWW w internecie.
W miar rozwoju serwera Apache jego moliwoci i zoono wzrosy do tego stopnia,
e pocztkujcy uytkownicy mog czu si przytoczeni sam koniecznoci jego
skonfigurowania. Waciwe dostrojenie dziaania serwera wymaga modyfikowania
plikw konfiguracyjnych i odpowiedniego dobrania parametrw dyrektyw w nich
zawartych. Na szczcie wikszo typowych funkcji realizuje si w podobny sposb
na wszystkich platformach systemowych.
Ksika Apache. Rozmwki to zestawienie najistotniejszych wiadomoci dotyczcych
konfigurowania serwera Apache i administrowania nim. Mona tam znale take wiele
przykadw i konkretnych wskazwek. Przeczytaj, a dowiesz si, jak zainstalowa
serwer Apache w rnych systemach operacyjnych oraz jak uruchomi go i zatrzyma.
Nauczysz si diagnozowa przyczyny niewaciwego dziaania serwera i korzysta
z dziennikw. Poznasz sposoby czenia katalogw zawierajcych pliki stron WWW
z odpowiednimi adresami URL, zabezpieczania serwera i zestawiania pocze
szyfrowanych SSL/TLS. Proste stanie si dla Ciebie take maksymalizowanie
wydajnoci serwera.
Ksika zawiera omwienie takich oto zagadnie:

Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl

instalowanie Apachea w systemach Windows i Linux


wczanie i wyczanie serwera oraz jego pojedynczych moduw
struktura plikw konfiguracyjnych
analiza dziennikw serwera
odwzorowywanie adresw URL
metody uwierzytelniania uytkownikw
stosowanie certyfikatw SSL
korzystanie z protokou WebDAV
poprawa wydajnoci Apachea
Dziki niej szybko skonfigurujesz serwer Apache, a kilkusetstronicowe instrukcje
obsugi przestan Ci by potrzebne.

O autorach ......................................................................... 13
Wstp ................................................................................ 15
1 Apache podstawy ......................................................... 17
Podstawowe informacje o serwerze Apache ........................... 17
Sprawdzanie, czy Apache jest ju zainstalowany .................... 19
Instalowanie serwera Apache 1.3 w Linuksie i Uniksie ........... 21
Instalowanie serwera Apache 2.0 w Linuksie i Uniksie ........... 22
Instalowanie serwera Apache w Windows ............................. 23
Podstawowe informacje o pliku konfiguracyjnym ................... 24
Uywanie wielu plikw konfiguracyjnych ............................... 26
Uruchamianie, zatrzymywanie i restartowanie serwera Apache ... 27
Zmiana adresu i portu uywanego przez serwer Apache ........ 29
Zmiana uytkownika, z ktrego przywilejami
dziaa serwer Apache ........................................................... 30
Okrelanie nazwy serwera ..................................................... 31
Okrelanie ikony strony WWW ............................................... 32
Ustalanie dostpnych moduw serwera ................................ 32
Wczanie i wyczanie pojedynczych moduw ..................... 33
Dodawanie moduw bez rekompilowania serwera Apache ... 34
Publikowanie treci ................................................................ 36

Spis treci

2 Rozwizywanie problemw ..............................................41


Pomocy! Mj serwer nie dziaa! ............................................. 41
Dziennik bdw .................................................................... 42
Rejestrowanie zdarze przez syslog ........................................ 43
Kontrolowanie iloci rejestrowanych informacji ...................... 43
Testowanie konfiguracji serwera Apache ................................ 45
Testowanie serwera Apache z wiersza polece ...................... 45
Sprawdzanie, czy serwer Apache dziaa .................................. 47
Inne sposoby zatrzymywania serwera Apache ........................ 48
Diagnozowanie serwera Apache za pomoc moduw ........... 50
Bdy podczas uruchamiania serwera ..................................... 51
Bdy odmowy dostpu .......................................................... 54
Wewntrzne bdy serwera .................................................... 55
Dodatkowe pliki dziennika bdw ......................................... 57
Przekierowania nie dziaaj .................................................... 58
Lista diagnostyczna ................................................................ 58
3 Dzienniki i monitorowanie ................................................65
Rejestrowanie da w serwerze Apache ............................... 65
Domylne pliki dziennika serwera Apache .............................. 66
Tworzenie formatw dziennika .............................................. 66
Tworzenie wasnego pliku dziennika ...................................... 68
Przekierowywanie dziennikw do zewntrznego programu .... 69
Warunkowe rejestrowanie da ........................................... 70
Monitorowanie stron wskazujcych witryn ........................... 71
Monitorowanie serwera Apache za pomoc moduu mod_status ..71
Monitorowanie serwera Apache za pomoc SNMP ................. 72
Analizowanie dziennikw za pomoc narzdzi open source ... 74
Monitorowanie dziennikw w czasie rzeczywistym ................ 74
Rejestrowanie da w bazie danych ..................................... 75
Rotacja i archiwizowanie dziennikw ...................................... 76
4

Spis treci

Odwzorowywanie adresw IP ................................................ 77


Przetwarzanie zarejestrowanych adresw IP .......................... 78
Automatyczne restartowanie serwera Apache w razie awarii .... 79
Scalanie i dzielenie plikw dziennika ...................................... 80
Prowadzenie oddzielnego dziennika
dla kadego hosta wirtualnego ............................................ 81
Czsto spotykane wpisy dziennika ......................................... 82
4 Odwzorowywanie adresw URL i tre dynamiczna ......... 85
Odwzorowywanie adresw URL .............................................. 85
Odwzorowywanie adresw URL
na pliki za pomoc dyrektywy Alias ...................................... 86
Odwzorowywanie wzorcw URL
na pliki za pomoc dyrektywy AliasMatch ............................ 87
Przekierowywanie da do innej lokacji ............................... 87
Przekierowywanie da do najnowszej wersji pliku ............... 88
Przekierowywanie nieudanych lub nieautoryzowanych da ... 89
Definiowanie procedur obsugi treci ..................................... 90
Typy MIME ............................................................................ 91
Konfigurowanie typw MIME ................................................ 92
Zasady wykonywania skryptw CGI ....................................... 92
Oznaczanie zasobw jako wykonywalnych skryptw CGI ....... 93
Wizanie skryptw z metodami HTTP i typami MIME ............. 94
Rozwizywanie problemw z wykonywaniem skryptw CGI .. 95
Zwikszanie wydajnoci skryptw CGI ................................... 96
Server Side Includes ............................................................... 97
Konfigurowanie SSI ................................................................ 97
Ustawianie zmiennych rodowiskowych ................................ 98
Dynamiczne ustawianie zmiennych rodowiskowych ............. 99
Specjalne zmienne rodowiskowe ........................................ 101
Negocjacja treci .................................................................. 101
5

Spis treci

Konfigurowanie negocjacji treci .......................................... 103


Okrelanie domylnych zestaww znakw i priorytetu jzykw . 104
Zaawansowane odwzorowywanie adresw URL
za pomoc moduu mod_rewrite ............................................ 105
Problem kocowego ukonika ............................................ 106
Poprawianie pomyek w pisowni .......................................... 107
Rozwizywanie problemw z wielkoci liter ....................... 108
Weryfikowanie stron za pomoc programu Tidy ................... 109
5 Hosting wirtualny ............................................................111
Co to jest hosting wirtualny? ................................................ 111
Co to jest hosting wirtualny oparty na adresach IP? .............. 112
Konfigurowanie hostingu wirtualnego opartego na adresach IP ..113
Co to jest hosting wirtualny oparty na nazwach? .................. 114
Konfigurowanie hostingu wirtualnego opartego na nazwach ..... 115
Co si dzieje, kiedy danie
nie pasuje do adnego hosta wirtualnego? ........................ 116
Konfigurowanie domylnego
hosta wirtualnego opartego na nazwie .............................. 117
Konfigurowanie domylnego
hosta wirtualnego opartego na adresie IP .......................... 118
czenie hostw wirtualnych opartych
na nazwach i na adresach IP ................................................ 119
Diagnozowanie konfiguracji hostw wirtualnych .................. 120
Uywanie SSL w poczeniu
z hostami wirtualnymi opartymi na nazwach ...................... 121
Inna metoda hostingu wirtualnego ...................................... 121
Inne moduy do hostingu wirtualnego .................................. 123
Pliki konfigurujce poszczeglne katalogi ............................. 124
Okrelanie zasigu plikw konfigurujcych
poszczeglne katalogi ........................................................ 125
Wyczanie plikw konfigurujcych poszczeglne katalogi ... 126
6

Spis treci

6 Bezpieczestwo i kontrola dostpu ................................. 127


Stosowanie kontroli dostpu ................................................ 127
Rnice midzy wersjami serwera Apache ........................... 128
Uwierzytelnianie podstawowe i ze skrtem komunikatu ...... 129
Kontrola dostpu do serwera Apache ................................... 131
Konfiguracja autoryzacji i uwierzytelniania
w serwerze Apache ............................................................ 132
Tworzenie bazy uytkownikw ............................................ 133
Autoryzowanie uytkownikw
i grup za pomoc dyrektywy Require ................................. 134
Obsuga wielu kont uytkownikw ...................................... 135
Zezwalanie na dostp tylko spod okrelonych adresw IP .... 136
Blokowanie dostpu spod okrelonych adresw IP .............. 137
czenie metod kontroli dostpu .......................................... 138
Dostosowywanie strony odmowy dostpu ........................... 138
Oddawanie kontroli w rce uytkownikw ........................... 140
Blokowanie dostpu do plikw systemowych i poufnych ..... 141
Ograniczanie wykonywania programw .............................. 142
Zapobieganie naduyciom ................................................... 143
Wyczanie listingw katalogw .......................................... 144
Zmiana nagwka Server: ..................................................... 145
Zapobieganie tworzeniu zewntrznych czy do obrazw ...... 145
Ograniczanie wybranych metod HTTP .................................. 146
Ograniczanie dostpu na podstawie typu przegldarki ......... 148
Korzystanie z sekcji Location i Directory ................................ 149
Dodatkowe moduy uwierzytelniajce .................................. 149
Apache 2.2 .......................................................................... 151
Aktualizowanie zabezpiecze serwera Apache ..................... 152
Procedura zabezpieczania serwera ....................................... 153

Spis treci

7 SSL/TLS..............................................................................159
Co to jest SSL? ...................................................................... 159
Jak dziaa SSL? ..................................................................... 160
Kompilowanie pakietu OpenSSL ........................................... 162
Klucze szyfrowania ............................................................... 163
Tworzenie pary kluczy .......................................................... 163
Tworzenie pary kluczy chronionych hasem .......................... 164
Usuwanie hasa z klucza ....................................................... 165
Certyfikaty ............................................................................ 165
Tworzenie wniosku o podpisanie certyfikatu ........................ 166
Wywietlanie zawartoci wniosku o podpisanie certyfikatu .. 168
Tworzenie samodzielnie podpisanego certyfikatu ................. 168
Kompilowanie serwera Apache 1.3 z obsug SSL ................ 169
Kompilowanie serwera Apache 2.x z obsug SSL ................. 171
Minimalna konfiguracja serwera Apache .............................. 171
Uruchamianie serwera Apache z obsug SSL ....................... 172
SSLPassPhraseDialog ............................................................ 173
Zwikszanie wydajnoci SSL ................................................. 174
Realizacja wszystkich da z wykorzystaniem SSL ............... 175
SSL i hosty wirtualne oparte na nazwach .............................. 176
Uywanie moduw uwierzytelniajcych w poczeniu z SSL 177
Komunikaty ostrzegawcze wywietlane
podczas dostpu do witryny obsugujcej SSL .................... 177
Tworzenie certyfikatw klienta ............................................. 178
Uwierzytelnianie z wykorzystaniem certyfikatw klienta ....... 179
Rozwizania alternatywne ................................................... 180
Testowanie witryn SSL z wiersza polece ............................. 181
Rozwizywanie problemw
z nieprawidowymi implementacjami SSL ........................... 181

Spis treci

Zoona kontrola dostpu


z wykorzystaniem moduu mod_ssl .................................... 182
Powizane rozdziay ............................................................ 183
8 Publikowanie treci za pomoc DAV ................................ 185
Publikowanie treci w serwerze Apache ............................... 185
Wprowadzenie do WebDAV ................................................ 186
Korzyci zwizane z uyciem moduu mod_dav .................... 187
WebDAV i protok HTTP ..................................................... 188
Instalowanie moduu mod_dav w serwerze Apache 2.0 ....... 189
Instalowanie moduu mod_dav w serwerze Apache 1.3 ....... 190
Podstawowa konfiguracja WebDAV ..................................... 191
Zabezpieczanie konfiguracji WebDAV .................................. 191
Dostp do zasobw DAV z programw Microsoft Office ....... 193
Dostp do zasobw DAV z systemu Microsoft Windows ...... 194
Dostp do zasobw DAV z przegldarki Firefox .................... 196
Dostp do zasobw DAV z wiersza polece ......................... 197
Obsuga bdnie dziaajcych klientw ................................. 198
Modu mod_spelling i DAV .................................................. 199
Tre dynamiczna i DAV ....................................................... 199
Wczanie stron uytkownikw ............................................ 200
Inny sposb obsugi stron uytkownikw ............................. 202
Rozwizywanie problemw z plikiem DAVLockDB ................ 202
9 Wydajno i skalowalno ............................................... 205
Dostrajanie serwera Apache ................................................. 205
Wydajno i skalowalno ................................................... 206
Dostrajanie sprztu .............................................................. 206
Zwikszanie limitw systemu operacyjnego ......................... 207
Zwikszanie liczby procesw ................................................ 208
Zwikszanie liczby deskryptorw plikw .............................. 209
9

Spis treci

Kontrolowanie zewntrznych procesw ................................ 210


Zwikszanie wydajnoci systemu plikw .............................. 211
Dostrajanie ustawie sieci i ledzenia stanu serwera ............ 214
Zapobieganie naduyciom .................................................... 217
Ograniczanie pasma i liczby pocze ................................... 218
Blokowanie robotw ............................................................ 220
Poredniki odwrotne i urzdzenia
do rwnowaenia obcienia ..................................................221
Buforowanie i kompresja ...................................................... 222
Optymalizacje specyficznych moduw ................................. 223
Alternatywne serwery .......................................................... 223
10 Obsuga poredniczenia
i buforowania w serwerze Apache ................................225
Zastosowanie buforowania i poredniczenia ........................ 225
Poredniki zwyke i odwrotne ............................................... 226
Rnice midzy wersjami 1.3, 2.0 i 2.2 serwera Apache ....... 226
Wczanie obsugi moduu mod_proxy ................................. 227
Wczanie obsugi poredniczenia zwykego ......................... 228
Unifikowanie przestrzeni URL
za pomoc porednika odwrotnego .................................... 229
Ukrywanie serwerw zaplecza ............................................. 230
Blokowanie poredniczenia odwrotnego
w przypadku wybranych adresw URL ............................... 231
Zwikszanie wydajnoci ....................................................... 232
Wspomaganie przetwarzania SSL ......................................... 233
Przekazywanie informacji o poredniczeniu w nagwkach ..... 234
Manipulowanie nagwkami ................................................ 235
Konfigurowanie porednika buforujcego ............................ 236
Buforowanie w serwerze Apache 2 ...................................... 237
Rwnowaenie obcienia ................................................... 238
10

Spis treci

czenie si z serwerem Tomcat ............................................. 239


Inne poredniki .................................................................... 240
Przezroczyste poredniki HTTP .............................................. 241
11 Moduy wieloprocesowe i protokoowe .......................... 243
Ewolucja architektury serwera Apache ................................. 243
Wybr moduu MPM ............................................................ 244
Procesowe moduy MPM ..................................................... 245
Konfigurowanie moduu MPM prefork ................................. 246
Wtkowe i hybrydowe moduy MPM ................................... 247
Konfigurowanie moduu MPM worker .................................. 248
Inne moduy MPM ............................................................... 249
Filtry w serwerze Apache 2 .................................................. 250
Apache jako serwer FTP ....................................................... 251
Apache jako serwer POP3 .................................................... 252
Kompresowanie treci w locie ........................................... 253
Skorowidz ....................................................................... 255

11

tym rozdziale zostan szczegowo opisane najczciej spotykane problemy na przykad bdne ustawienia
praw dostpu do plikw i brak moliwoci powizania
serwera z okrelonym portem oraz ich rozwizania.
Omwionych zostanie te kilka narzdzi i zasobw pozwalajcych zidentyfikowa przyczyny problemw.

Pomocy! Mj serwer nie dziaa!


Wiadomo, e nie ma nic bardziej frustrujcego, ni przerwa
w lekturze technicznej ksiki wymuszona zmaganiami
z bdnie dziaajcym oprogramowaniem. Nie chcemy,
aby bya to jedna z takich ksiek! Wanie dlatego poruszamy te kwestie na samym pocztku. Z tej przyczyny
niniejszy rozdzia opisuje zarwno zagadnienia podstawowe, jak i zaawansowane; pocztkujcy uytkownicy
Apachea mog opuci te, ktre ich nie dotycz.

ROZDZIA 2

Dziennik bdw

Dziennik bdw
ErrorLog logs/error_log

ROZWIZYWANIE PROBLEMW

Plik dziennika bdw przechowuje informacje o wanych


zdarzeniach, w tym o uruchomieniach, restartach, bdach
w dziaaniu serwera oraz zabronionych albo nieprawidowych daniach. Jest to pierwsze miejsce, w ktre naley
zajrze podczas rozwizywania problemw z serwerem.
W systemach uniksowych plik error_log jest umieszczany
domylnie w podkatalogu logs/ katalogu instalacyjnego
Apachea. Jeli instalacja Apachea stanowi cz dystrybucji systemu, plik moe znajdowa si w innym miejscu,
najczciej var/log/httpd.
W Windows plik nosi nazw error.log i rwnie znajduje si w podkatalogu logs.
Za pomoc dyrektywy ErrorLog mona okreli ciek do
pliku dziennika. Mona rwnie poda ciek do programu i poprzedzi j symbolem potoku (|), aby bdy
byy wysyane do innego programu. T czsto uywan
technik opisano w rozdziale 3.
Zwrmy uwag, e plik dziennika bdw zostanie utworzony dopiero po pierwszym uruchomieniu Apachea!

42

Rejestrowanie zdarze
przez syslog

ROZDZIA 2

Rejestrowanie zdarze przez syslog

ErrorLog syslog
ErrorLog syslog:local7

Kontrolowanie iloci
rejestrowanych informacji

ROZWIZYWANIE PROBLEMW

W systemach uniksowych mona okreli syslog jako


argument dyrektywy ErrorLog, aby Apache rejestrowa
bdy za pomoc demona syslog. Pokazano to w powyszym przykadzie. Opcjonalnie mona doczy kana
(domylnie local7). Kana syslog to pole informacyjne
zwizane z komunikatem syslog, ktre wskazuje rdo
komunikatu. Kanay od local0 do local10 s zarezerwowane na uytek administratora i aplikacji takich jak
Apache.

LogLevel notice

Informacje o zdarzeniach generowane przez Apachea


maj rne stopnie wanoci. Dyrektywa LogLevel w poczeniu z argumentami wymienionymi w tabeli 2.1 pozwala
wybra rodzaj rejestrowanych komunikatw. Rejestrowane bd tylko bdy o okrelonym i wyszym poziomie
wanoci.

43

ROZDZIA 2

Kontrolowanie iloci rejestrowanych informacji

Tabela 2.1. Opcje dyrektywy LogLevel wedug dokumentacji


serwera Apache
Ustawienie

Opis

Przykad

emerg

Powane bdy
system nie nadaje
si do uytku
Konieczna jest
natychmiastowa
reakcja
Zdarzenia
krytyczne

Child cannot open


lock file. Exiting.

error

Bdy

Premature end of
script headers.

warn

Ostrzeenia

Child process 1234


did not exit,
sending another
SIGHUP.

notice

Zwyke, ale
istotne
informacje
Informacje

httpd: caught
SIGBUS, attempting
to dump core in...

Komunikaty
diagnostyczne

Opening config
file...

ROZWIZYWANIE PROBLEMW

alert

crit

info

debug

getpwuid: couldn't
determine user name
from uid
socket: Failed to
get socket, exiting
child.

Server seems busy.


(You may need to
increase
StartServers, or
Min/MaxSpareServers)
...

Domylny poziom bdw warn jest odpowiedni w wikszoci instalacji Apachea. Jeli jednak konieczne jest zdiagnozowanie specyficznej konfiguracji, mona obniy poziom bdw a do debug, aby uzyska znacznie bardziej
szczegowe informacje.
44

Testowanie konfiguracji
serwera Apache

ROZDZIA 2

Testowanie konfiguracji serwera Apache

# apachectl configtest

Testowanie serwera Apache


z wiersza polece
$ telnet www.apache.org 80
Trying 192.87.106.226...
Connected to ajax-l.apache.org (192.87.106.226).
Escape character is '^]'.
HEAD / HTTP/1.0

ROZWIZYWANIE PROBLEMW

Polecenie to pozwala zbada plik konfiguracyjny Apachea


pod ktem problemw przed zastosowaniem go w aktywnym serwerze. Apache uywa tej samej procedury do
przetestowania konfiguracji za kadym razem, kiedy uytkownik wydaje mu polecenie restartu za porednictwem
skryptu apachectl. Gwarantuje to, e dziaajcy serwer
uruchomi si prawidowo z nowym plikiem konfiguracyjnym.

HTTP/1.1 200 OK
Date: Sun, 04 Sep 2005 20:42:02 GMT
Server: Apache/2.0.54 (Unix) mod_ssl/2.0.54
OpenSSL/0.9.7a DAV/2 SVN/1.2.0-dev
Last-Modified: Sat, 03 Sep 2005 11:35:42 GMT
ETag: "203a8-2de2-3ffdc7a6d3f80"
Accept-Ranges: bytes
Content-Length: 11746
Cache-Control: max-age=86400

45

ROZDZIA 2

ROZWIZYWANIE PROBLEMW

Testowanie serwera Apache z wiersza polece

Expires: Mon, 05 Sep 2005 20:42:02 GMT


Connection: close
Content-Type: text/html; charset=ISO-8859-1
Connection closed by foreign host.

HTTP jest prostym protokoem tekstowym, wic mona


uy klienta Telnetu programu, ktry pozwala poczy si bezporednio ze wskazanym komputerem i portem do sprawdzenia obecnoci serwera w zdalnym
hocie. Jeli serwer nie odpowie, a wiadomo, e sie jest
prawidowo skonfigurowana, oznacza to, e Apache nie
nasuchuje pod okrelonym adresem i w okrelonym porcie. Technika ta bywa przydatna w rodowiskach, w ktrych niedostpna jest przegldarka WWW, na przykad
podczas zdalnego dostpu do serwera przez SSH. Jeli na
przykad mona uzyska dostp do Apachea w zdalnym
komputerze przez adres localhost, ale nie za pomoc
zdalnej przegldarki, moe to oznacza problemy z zapor
sieciow albo nieprawidowe ustawienie dyrektywy Listen.
Naley poczy si przez Telnet z adresem www.apache.
org (albo inn witryn WWW) w porcie 80. i wpisa:
HEAD / HTTP/1.0

albo:
GET / HTTP/1.0

a nastpnie dwukrotnie nacisn klawisz Enter. Pojawi si


odpowied podobna do pokazanej w powyszym przykadzie.
Jeli w systemie zainstalowana jest tekstowa przegldarka
WWW lynx, mona uzyska podobny wynik za pomoc
poniszego polecenia:
46

lynx -head -dump http://www.apache.org

W rozdziale 7. zostanie opisany modu mod_ssl, a Czytelnicy poznaj sposb czenia si z serwerem obsugujcym SSL za pomoc narzdzia openssl.

ROZDZIA 2

Sprawdzanie, czy serwer Apache dziaa

Sprawdzanie,
czy serwer Apache dziaa
0:00 /usr/local/www/bin/httpd
0:06 /usr/local/www/bin/httpd
0:02 /usr/local/www/bin/httpd

/usr/sbin/lsof | grep httpd |grep IPv


httpd
14441 nobody
3u IPv4
136524
TCP www.example.com:http (LISTEN)
httpd
25297
root
3u IPv4
136524
TCP www.example.com:http (LISTEN)
httpd
30277 nobody
3u IPv4
136524
TCP www.example.com:http (LISTEN)
...
netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address
Foreign
Address
State
PID/Program name
tcp
0
0 192.168.1.151:80
0.0.0.0:
*
LISTEN
25297/httpd
tcp
0
0 0.0.0.0:22
0.0.0.0:
*
LISTEN
1038/sshd

ROZWIZYWANIE PROBLEMW

ps -aux | grep httpd


25297 ?
S
-k start
15974 ?
S
-k start
14441 ?
S
-k start
...

47

ROZDZIA 2

Inne sposoby zatrzymywania serwera Apache

Czasem nie mona poczy si z serwerem, ale nie wiadomo, czy to serwer nie dziaa, czy moe wystpi jaki
problem z sieci. W systemach uniksowych dostpnych
jest kilka narzdzi, ktre pozwalaj ustali przyczyn problemu. Niektre z nich pokazano w powyszym przykadzie.

ROZWIZYWANIE PROBLEMW

Narzdzie ps pokazuje, czy w systemie dziaa proces


httpd.
Narzdzia netstat oraz lsof pokazuj adresy i porty,
w ktrych nasuchuje serwer Apache.
W systemie Windows mona uy Menedera zada Windows (uruchamianego przez jednoczesne nacinicie klawiszy Alt+Ctrl+Delete), aby sprawdzi, czy dziaa proces
Apache.exe. Stan serwera mona rwnie sprawdzi za
pomoc programu monitorujcego doczanego do nowszych dystrybucji i dziaajcego w zasobniku systemowym.

Inne sposoby zatrzymywania


serwera Apache
# kill -HUP 25297
# kill -9 25297

Czasem wygodniej jest bezporednio wysa sygna do


serwera za pomoc narzdzia kill zamiast uywa skryptu
apachectl. W tym celu naley najpierw ustali identyfikator procesu dziaajcego serwera z wykorzystaniem programw ps lub lsof. Nastpnie mona zakoczy proces
48

za pomoc polecenia kill, ktre przyjmuje dwa argumenty: wysyany sygna oraz identyfikator procesu serwera Apache (w tym przykadzie 25297). Sygna KILL
(albo TERM) zatrzymuje serwer, a sygna HUP uruchamia
go ponownie. Mona rwnie zastpi nazw sygnau jej
liczbowym odpowiednikiem, jak pokazano w powyszym
przykadzie. Wicej informacji mona znale w podrczniku systemowym pod hasem kill.

# killall -KILL httpd

Naley jednak zachowa ostrono, poniewa jeli w systemie dziaa kilka egzemplarzy Apachea, powysze polecenie usunie je wszystkie!
Aby powysze polecenia zadziaay, uytkownik musi mie
odpowiednie uprawnienia. W niemal wszystkich przypadkach trzeba by albo superuytkownikiem, albo wacicielem procesu Apachea, eby go zatrzyma lub uruchomi ponownie.

ROZWIZYWANIE PROBLEMW

W Linuksie mona rwnie wysa sygna do wszystkich


procesw o nazwie httpd za pomoc polecenia killall.
Aby na przykad usun wszystkie procesy httpd, naley
wyda polecenie:

ROZDZIA 2

Inne sposoby zatrzymywania serwera Apache

W systemach Windows mona wymusi zamknicie Apachea za pomoc przycisku Zakocz proces w Menederze
zada Windows.

49

ROZDZIA 2

Diagnozowanie serwera Apache za pomoc moduw

Diagnozowanie serwera
Apache za pomoc moduw

ROZWIZYWANIE PROBLEMW

Istnieje kilka moduw Apachea, ktre mog pomc podczas rozwizywania problemw z konfiguracj serwera albo
aplikacj WWW.
Modu mod_loopback, narzdzie do diagnozowania klientw WWW, po prostu odsya do przegldarki wszystkie
odebrane informacje dotyczce dania HTTP, w tym
dane POST lub PUT. Modu jest dostpny pod adresem:
http://www.snert.com/Software/mod_loopback/
index.shtml
Moduy mod_tee oraz mod_trace_output zapisuj tre
wysyan przez serwer. Mona je znale pod nastpujcymi adresami:
http://apache.webthing.com/mod_tee/
http://trace-output.sourceforge.net/
Modu mod_logio wchodzcy w skad Apachea 2 zapisuje wszystkie dane odebrane lub zwrcone przez serwer
w dzienniku bdw.
Wszystkie te moduy zmniejszaj wydajno serwera, ale
bywaj bardzo przydatne, na przykad podczas analizowania problemw z nagwkami albo plikami cookie.

50

Bdy podczas uruchamiania


serwera

ROZDZIA 2

Bdy podczas uruchamiania serwera

W tym podrozdziale zostan opisane problemy, ktre mog


zapobiec uruchomieniu Apachea, oraz zwizane z nimi
komunikaty o bdach.

Syntax error on line xxx of /etc/http/httpd.conf:


Invalid command 'PiidFile', perhaps misspelled or
defined by a module not included in the server
configuration

Bd skadni oznacza, e uytkownik pomyli si podczas


wpisywania dyrektywy (w tym przykadzie PidFile) albo e zastosowa dyrektyw obsugiwan przez modu,
ktry nie zosta dodany do serwera. Naley sprawdzi
skadni pliku konfiguracyjnego w miejscu wskazanym
przez komunikat o bdzie. W rozdziale 1. wyjaniono,
jak uy dyrektywy <ifModule> do warunkowego wyczania dyrektyw, aby plik konfiguracyjny mg zosta
przetworzony nawet wtedy, gdy pewien modu jest niedostpny.

ROZWIZYWANIE PROBLEMW

Bd skadni

Zajty adres
Address already in use: make_sock: could not bind to
port

51

ROZDZIA 2

ROZWIZYWANIE PROBLEMW
52

Bdy podczas uruchamiania serwera

Powyszy bd oznacza, e inny program uywa ju


portu, z ktrym Apache prbuje si zwiza. Aby rozwiza problem, naley zatrzyma ten program przed uruchomieniem Apachea albo otworzy plik konfiguracyjny
httpd.conf i zmieni port, w ktrym Apache nasuchuje
przychodzcych da (dyrektywy Listen i Port).
W wikszoci przypadkw bd ten wystpuje dlatego, e
w systemie dziaa ju inny egzemplarz serwera Apache.
W Windows zdarza si, e port Apachea jest zajty przez
program Internet Information Server albo Microsoft Personal Web Server. Port 80. bywa rwnie uywany przez
inne popularne programy, na przykad Skype.

Niewystarczajce uprawnienia
[Mon Jan 9 20:09:50 2005] [crit] (13)Permission
denied: make_sock: could not bind to port 80

Powyszy komunikat wskazuje, e uytkownik nie ma


wystarczajcych uprawnie, aby nakaza Apacheowi zwizanie si z portem okrelonym w pliku konfiguracyjnym.
W Uniksie tylko uytkownicy uprzywilejowani mog wiza si z portami z zakresu 1 1024. Aby rozwiza ten
problem, naley zalogowa si jako superuytkownik albo wyda polecenie su i ponownie sprbowa uruchomi serwer. Ci, ktrzy nie maj dostpu do konta superuytkownika, mog otworzy plik httpd.conf i zmieni
port uywany przez Apachea na wyszy ni 1024.

Niezgodny modu
module xxx is not compatible with this version of
Apache

Odwzorowywanie nazw
Cannot determine hostname

Kilka dyrektyw Apachea, w tym ServerName i Listen,


przyjmuje argumenty w postaci nazw hostw. Jeli jednak podczas rozruchu Apache nie zdoa przetumaczy
nazwy hosta na adres z wykorzystaniem Domain Name
System (DNS) albo systemowej listy hostw, wystpi powyszy bd. Aby rozwiza problem, naley zweryfikowa ustawienia DNS i /etc/hosts oraz pisowni nazw
hostw w pliku httpd.conf. Jeli to moliwe, w dyrektywach takich jak Listen oraz <VirtualHost> naley
uywa adresw IP zamiast nazw hostw.

ROZWIZYWANIE PROBLEMW

Powyszy bd wystpuje wtedy, gdy Apache prbuje


wczyta modu skompilowany pod ktem nowszej (lub starszej) wersji serwera ni obecnie zainstalowana w systemie. Uytkownicy, ktrzy dysponuj kodem rdowym
moduu, mog zrekompilowa go na uytek odpowiedniej
wersji w sposb opisany w rozdziale 1. Ci, ktrzy nie
maj kodu rdowego albo nie mog zrekompilowa moduu, a potrzebuj oferowanych przez niego funkcji, mog
zainstalowa nowsz (albo starsz) wersj serwera zgodn
z moduem.

ROZDZIA 2

Bdy podczas uruchamiania serwera

53

ROZDZIA 2

Bdy odmowy dostpu

Bd podczas otwierania dziennika albo pliku


konfiguracyjnego
(13)Permission denied: httpd: could not open error
log file /usr/local/apache/logs/error_log.

ROZWIZYWANIE PROBLEMW

Powyszy bd wskazuje, e uytkownik nie ma wystarczajcych uprawnie, aby odczyta plik konfiguracyjny Apachea albo zapisa dane w plikach dziennika.
Problem ten czsto pojawia si, kiedy serwer jest uruchamiany przez uytkownika innego ni ten, ktry go
skompilowa i zainstalowa. Naley albo uruchomi Apachea z konta superuytkownika, albo uy polecenia
chmod, aby zmieni waciciela pliku podanego w komunikacie o bdzie.

Bdy odmowy dostpu


Forbidden/You don't have permission to access /xxx
on this server

Jeli przegldarka zwraca bd 403 Forbidden/Access


Denied podczas prby wczytania strony z serwera Apa-

che, oznacza to, e dany adres URL podlega ograniczeniom


dostpu, a danie nie spenia okrelonych warunkw. Aby
rozwiza problem, naley zmieni prawa dostpu do treci WWW albo plikw i upewni si, e waciciel procesu
Apachea ma uprawnienia do odczytu i wykonania we
wszystkich katalogach prowadzcych do dokumentu.
54

W systemach uniksowych uprawnienia te mona ustawi


za pomoc polecenia chmod.
Komunikat Client denied by server configuration
w dzienniku bdw wskazuje, e dostpu odmwiono ze
wzgldu na dyrektywy kontrolne (takie jak Allow i Deny)
w sekcjach <Directory> lub <Location> odnoszcych si
do danego adresu URL.

Options ExecCGI is off in this directory

Jeli podczas prby wykonania skryptu CGI pojawi si


komunikat Options ExecCGI is off in this directory,
oznacza to, e skrypt nie zosta zaznaczony jako wykonywalny w pliku konfiguracyjnym Apachea albo e w danym katalogu nie mona wykonywa skryptw. Wicej informacji mona znale w opisie dyrektyw ScriptAlias
lub Options.

ROZWIZYWANIE PROBLEMW

Komunikat Directory index forbidden by rule wskazuje, e uytkownik prbowa uzyska dostp do katalogu,
w ktrym nie ma pliku indeksu. Informacje o indeksowaniu katalogw i plikach indeksu mona znale w opisie
opcji Indexes dyrektywy Options w rozdziale 6.

ROZDZIA 2

Wewntrzne bdy serwera

Wewntrzne bdy serwera


Wewntrzne bdy serwera to bdy, ktre uniemoliwiaj
Apacheowi realizacj dania.

55

ROZDZIA 2

ROZWIZYWANIE PROBLEMW

Wewntrzne bdy serwera

Bdy segmentacji
child pid exit signal Segmentation Fault (11)

Bd segmentacji wystpuje, gdy Apache prbuje uzyska


dostp do obszarw pamici nalecych do innych procesw albo gdy w kodzie Apachea pojawi si bdnie
uformowana albo nielegalna instrukcja. Moe to wynika z usterek w le napisanych albo eksperymentalnych
bibliotekach lub moduach, a take z bdw sprztowych,
zwykle w systemowej pamici, chipsecie, magistrali lub
procesorze.

Przedwczesny koniec nagwkw skryptu


[error] [client 192.168.200.3] Premature end of
script headers:
/usr/local/aoache/cgi-bin/test-cgi

Bd ten jest spowodowany niekompletnym wykonaniem


skryptu CGI. Naley upewni si, e skrypt ma ustawione prawo do wykonania i e jego pierwszy wiersz wskazuje prawidowy program interpretera. Bd ten moe
wystpi na przykad wtedy, gdy skrypt zaczyna si od
wiersza #!/usr/local/bin/perl, a w rzeczywistoci interpreter Perla znajduje si w pliku /usr/bin/perl.
Bdy przedwczesnego koca nagwkw zazwyczaj pojawiaj si wtedy, gdy dziaanie skryptu zostanie przerwane, zanim zwrci on jakiekolwiek dane. Moe to wynika z wielu przyczyn, na przykad z bdw w kodzie

56

albo braku bibliotek, z ktrymi skonsolidowany jest program. Jak wyjaniono w rozdziale 9., w niektrych przypadkach proces moe zosta przerwany przez system operacyjny albo przez Apachea, jeli zuycie zasobw (pamici,
czasu procesora) przekroczy pewien limit.

ROZDZIA 2

Dodatkowe pliki dziennika bdw

le uformowane nagwki

Ten bd wystpuje wtedy, gdy nagwki generowane przez


skrypt maj nieprawidowy format (zwykle z powodu bdu
programisty). Odpowied skryptu powinna zaczyna si
od nagwkw (zera lub wicej), po ktrych nastpuje
pusty wiersz.

Dodatkowe pliki
dziennika bdw

ROZWIZYWANIE PROBLEMW

[error] [client 192.168.200.3] malformed header from


script. Bad header=xxx:
/usr/local/apache/cgi-bin/example.cgi

RewriteLog /usr/local/apache/logs/rewrite_log
RewriteLogLevel warn
SSLLog /usr/local/apache/logs/ssl_log
SSLLogLevel warn
ScriptLog logs/cgi_log

Kilka moduw w tym modu SSL Apachea 1.3, mod_


rewrite oraz mod_cgi udostpnia wasne dyrektywy do
rejestrowania danych specyficznych dla moduu w oddzielnym pliku.
57

ROZDZIA 2

Przekierowania nie dziaaj

Przekierowania nie dziaaj


UseCanonicalName off

ROZWIZYWANIE PROBLEMW

Jeli serwer Apache staje si niedostpny, kiedy przekierowuje danie do innej strony, moe to oznacza, e
kanoniczna nazwa hosta jest nieprawidowa albo niedostpna na zewntrz sieci.
Jeli na przykad dyrektywa ServerName jest ustawiona
na localhost, 127.0.0.1 albo prywatny adres, serwer bdzie niedostpny, gdy przekieruje uytkownika pod adres
URL oparty na tych wartociach.
eby rozwiza ten problem, naley poda prawidow
warto ServerName albo ustawi dyrektyw UseCanonicalName na off, aby samoreferencyjne adresy URL byy
konstruowane na podstawie nazwy hosta podanej przez
klienta. Problem ten wystpuje czsto w przypadku komputerw znajdujcych si za odwrotnym porednikiem
(co opisano w rozdziale 10.).

Lista diagnostyczna
W tym rozdziale podsumowano najczciej wystpujce
problemy z serwerem Apache.

58

Uruchamianie serwera
Jeli serwer nie uruchamia si, naley sprawdzi w pliku
dziennika, czym jest to spowodowane.

ROZDZIA 2

Lista diagnostyczna

Jeli pod okrelonym adresem dziaa inny serwer, naley


wybra inn kombinacj adresu i portu dla nowego serwera.

Jeli Apache nie moe otworzy pliku konfiguracyjnego


albo dziennika, naley sprawdzi, czy pliki nale do
uytkownika, ktry zainstalowa Apachea, i czy ma on
prawo do zapisywania tych plikw.

czenie si z serwerem
Jeli prba dostpu do strony koczy si niepowodzeniem, najpierw trzeba ustali, czy problem jest spowodowany przez serwer, sie czy te przez przegldark.

ROZWIZYWANIE PROBLEMW

Jeli uytkownik nie ma wystarczajcych uprawnie, aby


powiza serwer z danym portem, powinien uruchomi Apachea z konta superuytkownika (root), aby uzyska dostp do uprzywilejowanych portw.

Najpierw naley sprawdzi, czy Apache dziaa. W tym


celu naley wyda polecenie ps lub netstat albo skorzysta z Menedera zada (w Windows). Moe si okaza,
e serwer w ogle nie zosta uruchomiony.
Nastpnie naley sprawdzi, czy mona poczy si z Apacheem z lokalnego komputera. W tym celu naley bezporednio poczy si z serwerem za pomoc programu
telnet i wpisa proste danie.
59

ROZDZIA 2

ROZWIZYWANIE PROBLEMW

Lista diagnostyczna

Nastpnie naley sprawdzi, czy Apache uywa prawidowej kombinacji adresu i portu. Jeli mona uzyska
dostp do serwera lokalnie, ale nie zdalnie, prawdopodobnie Apache nasuchuje pod lokalnym adresem albo w porcie niedostpnym zdalnie. Za pomoc polece netstat
lub lsof naley ustali, pod jakimi adresami nasuchuje
Apache i czy s one poprawne.
Naley te sprawdzi, czy prawidowo skonfigurowana
jest zapora sieciowa lub router. Jeli Apache nasuchuje
pod prawidowym adresem, ale jest niedostpny na zewntrz sieci, moe to oznacza, e ruch do serwera jest
blokowany. czno midzy hostami mona sprawdzi
za pomoc polecenia traceroute (tracert w Windows).
Wiele systemw operacyjnych domylnie blokuje dostp
z zewntrz z wyjtkiem kilku wybranych portw. Sposb
rozwizania tego problemu zaley od dystrybucji. Na przykad w systemach Fedora mona uy narzdzia systemconfig-securitylevel, a w Windows programu Zapora systemu Windows znajdujcego si w Panelu sterowania.
Wreszcie jeli poczenie z serwerem jest nawizywane za
porednictwem Secure Sockets Layer (SSL rozdzia 7.),
a uytkownik korzysta ze starszej przegldarki albo nietypowej konfiguracji, naley poszuka w dzienniku bdw
komunikatw wiadczcych o problemach z szyfrowaniem
danych SSL.

60

Nie znaleziono dokumentu


Jeli mona uzyska dostp do serwera, ale pojawia si
bd Document not found, naley sprawdzi, czy dokument
rzeczywicie istnieje w systemie plikw.

Potem naley sprawdzi, czy dyrektywy Alias wskazuj


waciw lokacj to znaczy katalog, w ktrym przechowywany jest docelowy dokument. Naley upewni si,
czy nazwa katalogu zostaa wpisana prawidowo i czy nie
zosta on przypadkowo usunity.
Wreszcie naley zbada nieprawidowe przekierowania,
w tym kocowe ukoniki oraz problemy z dyrektyw
ServerName opisane wczeniej w tym rozdziale.

ROZWIZYWANIE PROBLEMW

Nastpnie naley sprawdzi, czy danie dotaro do serwera. W tym celu naley wyszuka w pliku access_log
dania pochodzce od okrelonego hosta. Jeli w systemie jednoczenie dziaa kilka egzemplarzy Apachea, klient
mg nawiza poczenie z niewaciwym serwerem.

ROZDZIA 2

Lista diagnostyczna

Zabroniony dostp
Jeli dokument istnieje, ale dostp do niego jest zabroniony, moe to wynika z kilku czsto popenianych pomyek.
Naley sprawdzi, czy Apache ma uprawnienia do odczytu
pliku.
Naley sprawdzi, czy waciciel procesu Apachea ma
uprawnienia do odczytu i wywietlania zawartoci wszystkich katalogw na ciece wiodcej do pliku.
61

ROZDZIA 2

Lista diagnostyczna

Naley sprawdzi, czy uytkownik prbuje uzyska dostp do katalogu bez pliku indeksu, a tworzenie indeksw katalogw jest zabronione w pliku konfiguracyjnym
Apachea.

ROZWIZYWANIE PROBLEMW

Naley upewni si, e spenione s wszystkie wymagania okrelone przez dyrektywy kontroli dostpu w pliku
konfiguracyjnym Apachea.
Jeli uytkownik prbuje uzyska dostp do skryptu CGI,
naley sprawdzi, czy skrypt ma ustawione prawa do odczytu i wykonania.

Wewntrzne bdy serwera


Jeli podczas prby wczytania strony w przegldarce pojawia si komunikat Internal server error, naley poszuka przyczyny w pliku error_log.
Naley zada sobie nastpujce pytania: Czy uytkownik
prbuje uzyska dostp do skryptu CGI? Czy skrypt ma
waciwe prawa do odczytu i wykonania? Czy cieka do
interpretera w pierwszym wierszu skryptu jest prawidowa? Czy jest on oznaczony jako skrypt CGI przez dyrektyw ScriptAlias lub podobn?

Jeli wszystko inne zawiedzie...


W niniejszym rozdziale omwiono tylko najczstsze problemy, z ktrymi maj do czynienia uytkownicy Apachea. Jeli kto napotka inny problem, pierwszym krokiem
62

powinno by poszukanie informacji w dziennikach bdw.


Aby uzyska wicej wskazwek, mona zwikszy poziom LogLevel. Nastpnie naley przeszuka dokumentacj Apachea, listy dyskusyjne oraz baz usterek. Wreszcie
mona wysa pytanie na list dyskusyjn uytkownikw
Apachea, przestrzegajc dwch regu najpierw naley
samemu odrobi zadanie domowe, a nastpnie poda
wystarczajco duo informacji, aby inni mogli pomc.
Na list mona zapisa si pod adresem:

ROZWIZYWANIE PROBLEMW

http://httpd.apache.org/lists.html#http-users

ROZDZIA 2

Lista diagnostyczna

63

Vous aimerez peut-être aussi