You are on page 1of 62

Fedora 7.

Ksiga eksperta
Autor: Andrew Hudson, Paul Hudson
Tumaczenie: Przemysaw Szeremiota
ISBN: 978-83-246-1480-6
Tytu oryginau: Fedora 7 Unleashed
Format: 172x245, stron: 1088

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

Kompleksowe omwienie jednej z najpopularniejszych dystrybucji Linuksa


Jak zainstalowa i skonfigurowa Fedor?
W jaki sposb korzysta z konsoli tekstowej i rodowiska graficznego?
Jakie aplikacje doczono do dystrybucji Fedory?
Jak uruchomi serwer internetowy w oparciu o Fedor?
Fedora to rozwijana przez firm Red Hat dostpna bezpatnie dystrybucja systemu
Linux. W odpowiedzi na ogromn popularno dystrybucji Red Hat Linux jej producent
zdecydowa si na opublikowanie dwch wersji komercyjnej i nieodpatnej. Fedora
jest wic nastpc znanego od dawna Red Hat Linuksa. O moliwociach, stabilnoci
i wszechstronnoci Linuksa napisano ju setki artykuw i ksiek. Chyba nawet jego
twrca nie spodziewa si, e napisany przez niego w ramach studenckich wicze
system operacyjny zrewolucjonizuje wspczesn informatyk, a jego wersje rozwojowe
bd wykorzystywane nawet przez ogromne korporacje.
Ksika Fedora 7. Ksiga eksperta to kompleksowe opracowanie powicone
najnowszej wersji dystrybucji Fedora. Czytajc j, dowiesz si, jak zainstalowa Fedor,
skonfigurowa j i uruchomi. Poznasz graficzny interfejs uytkownika i konsol
tekstow, nauczysz si korzysta z oprogramowania doczonego do dystrybucji
i czy z internetem. Opanujesz kwestie pocze sieciowych i zadania administratora
systemu. Przeczytasz take o uruchamianiu w Fedorze usug sieciowych,
programowaniu w Linuksie i optymalizacji wydajnoci systemu.
Instalacja Fedory
rodowiska graficzne GNOME i KDE
Praca z wierszem polece
Korzystanie z poczty elektronicznej i WWW
Pakiet OpenOffice.org
Gry i multimedia
Automatyzacja pracy
Zarzdzanie kontami uytkownikw
Tworzenie kopii zapasowych
Konfiguracja sieci
Uruchamianie serwera WWW, FTP i poczty elektronicznej
Administrowanie bazami danych MySQL i PostgreSQL
Programowanie w Linuksie Perl, Python, PHP i Mono
Ochrona systemu przed atakami z sieci
Strojenie wydajnoci
Poznaj Fedor i korzystaj z niesamowitych moliwoci systemw linuksowych

Spis treci
Wprowadzenie ................................................................................................................... 29

CZ I
Rozdzia 1.

INSTALACJA I KONFIGURACJA .............................................. 37


Instalacja systemu Fedora ......................................................................... 39
Nim rozpoczniesz instalacj ...................................................................................................... 40
Planowanie strategii podziau dyskw na partycje .......................................................... 41
Wybr sposobu instalacji Fedory .............................................................................................. 46
Instalacja z dysku CD lub DVD ......................................................................................... 46
Instalacja z wykorzystaniem sieci komputerowej ............................................................ 47
Instalacja krok po kroku ............................................................................................................. 48
Rozpoczcie instalacji .......................................................................................................... 49
Podzia dysku twardego na partycje .................................................................................. 54
Wybr, konfiguracja i instalacja programu rozruchowego .............................................. 57
Konfiguracja pocze sieciowych ..................................................................................... 59
Ustawienia strefy czasowej .................................................................................................. 60
Ustawienia hasa dla uytkownika root ............................................................................. 61
Wybr i instalacja oprogramowania ................................................................................. 64
Zakoczenie instalacji .......................................................................................................... 66
Konfiguracja pierwszego uruchomienia ........................................................................... 67
Logowanie i zamykanie systemu ............................................................................................... 72
Warto zajrze ............................................................................................................................... 72

Rozdzia 2. Fedora pierwszy kontakt ....................................................................... 73


Pulpit Fedory ................................................................................................................................ 74
Ogldziny ...................................................................................................................................... 76
Opcje menu ........................................................................................................................... 76
Lista okien .............................................................................................................................. 77
Ikona Komputer ................................................................................................................... 78
Ikona Folder domowy .......................................................................................................... 78
Dostp do wiersza polece .................................................................................................. 79
Dostpne aplikacje ...................................................................................................................... 80
Pakiet biurowy ...................................................................................................................... 80
Aplikacje internetowe .......................................................................................................... 80
Multimedia ............................................................................................................................ 80
Gry .......................................................................................................................................... 81
Aktualno oprogramowania .................................................................................................... 81
Konfigurowanie sieci bezprzewodowej .................................................................................... 83

Spis treci

Rozdzia 3. Praca w GNOME ........................................................................................... 85


rodowisko GNOME .................................................................................................................. 87
AIGLX lukier na pulpit .......................................................................................................... 88
Podstawowe pojcia zwizane z systemem X Window ......................................................... 90
Korzystanie z systemu X ............................................................................................................. 91
Skadniki pliku konfiguracyjnego X.Org .......................................................................... 92
Konfiguracja systemu X Window ...................................................................................... 98
Uruchamianie systemu X ......................................................................................................... 101
Korzystanie z menedera logowania ............................................................................... 102
Uruchamianie systemu X z konsoli poleceniem startx ................................................. 105
Korzystanie z programu switchdesk ................................................................................ 106
Alternatywa: KDE ..................................................................................................................... 108
Xfce .............................................................................................................................................. 109
Warto zajrze ............................................................................................................................. 109

Rozdzia 4. Elementarz wiersza polece ..................................................................... 111


Wiersz polece podstawy .................................................................................................... 112
Poruszanie si po systemie plikw ................................................................................... 115
Zarzdzanie plikami ........................................................................................................... 118
Obsuga archiww i plikw skompresowanych ............................................................. 119
Podstawowe polecenia z katalogw /bin oraz /sbin ...................................................... 120
Wykorzystywanie i edycja plikw z katalogu /etc ......................................................... 120
Ochrona danych uytkownikw katalog /home ....................................................... 122
Interakcja z jdrem systemu poprzez katalog /proc ...................................................... 122
Oprogramowanie wsplne katalog /usr ..................................................................... 124
Pliki tymczasowe katalog /tmp .................................................................................... 124
Plik rne katalog /var .............................................................................................. 125
Logowanie i praca z systemem Linux ..................................................................................... 125
Logowanie w konsoli tekstowej ........................................................................................ 126
Wylogowanie si ................................................................................................................. 126
Logowanie i wylogowanie ze zdalnego komputera ....................................................... 126
Korzystanie ze zmiennych rodowiskowych .................................................................. 127
Korzystanie z edytorw tekstu ................................................................................................ 130
Obsuga edytora vi .............................................................................................................. 131
Obsuga edytora emacs ...................................................................................................... 133
Zarzdzanie prawami dostpu ................................................................................................. 135
Przydzielanie praw dostpu .............................................................................................. 136
Prawa dostpu do katalogu ............................................................................................... 137
Korzystanie z praw SUID (Set User ID) oraz SGID (Set Group ID) .......................... 139
Uytkownik root i jego zadania ............................................................................................... 141
Tworzenie kont uytkownikw ........................................................................................ 142
Usuwanie kont uytkownikw ......................................................................................... 143
Zamykanie systemu ............................................................................................................ 144
Ponowne uruchamianie systemu ..................................................................................... 145
Korzystanie z dokumentacji ..................................................................................................... 145
Podrcznik systemowy man .............................................................................................. 146
Warto zajrze ............................................................................................................................. 148

Spis treci

CZ II

FEDORA NA BIURKU ............................................................. 149

Rozdzia 5. W internecie ............................................................................................... 151


Przegldanie internetu .............................................................................................................. 152
Mozilla Firefox .................................................................................................................... 152
Konqueror ........................................................................................................................... 154
Wybr programu pocztowego ................................................................................................. 154
Program Evolution ............................................................................................................. 155
Mozilla Thunderbird ......................................................................................................... 157
Program KMail ................................................................................................................... 158
Pozostae programy pocztowe .......................................................................................... 158
Czytniki kanaw RSS ............................................................................................................... 159
Firefox .................................................................................................................................. 159
Liferea ................................................................................................................................... 159
Komunikator Pidgin ................................................................................................................. 161
IRC ............................................................................................................................................... 162
Grupy dyskusyjne sieci Usenet ................................................................................................ 164
Czytnik Pan ................................................................................................................................ 166
Wideokonferencje Ekiga ..................................................................................................... 168
Warto zajrze ............................................................................................................................. 169

Rozdzia 6. Aplikacje biurowe ...................................................................................... 171


Czym jest OpenOffice.org? ...................................................................................................... 173
Instalowanie i konfigurowanie pakietu OpenOffice.org .............................................. 175
Obsuga edytora OpenOffice.org Writer ........................................................................ 177
Obsuga arkusza kalkulacyjnego OpenOffice.org Calc ................................................. 180
Pakiety biurowe Fedory ............................................................................................................ 185
Gnome Office ...................................................................................................................... 186
Pakiet KOffice ..................................................................................................................... 189
Aplikacje biurowe dla systemu Microsoft Windows ........................................................... 191
Warto zajrze ............................................................................................................................. 192

Rozdzia 7. Aplikacje multimedialne ........................................................................... 193


Suchanie muzyki ...................................................................................................................... 194
Strumieniowe transmisje dwiku ................................................................................... 196
Prace graficzne ........................................................................................................................... 197
GIMP .................................................................................................................................... 197
Korzystanie ze skanerw ................................................................................................... 199
Obsuga formatw graficznych ........................................................................................ 200
Wykonywanie zrzutw ekranu ......................................................................................... 203
Fotografia cyfrowa ..................................................................................................................... 203
Cyfrowe aparaty fotograficzne .......................................................................................... 204
Program F-Spot .................................................................................................................. 205
Nagrywanie pyt CD i DVD ..................................................................................................... 206
Nagrywanie pyt CD i DVD w rodowisku graficznym ............................................... 207
Nagrywanie pyt CD w wierszu polece ......................................................................... 210
Nagrywanie pyt DVD w wierszu polece ...................................................................... 212

Spis treci

Dwik i urzdzenia dwikowe ............................................................................................. 215


Karty dwikowe ................................................................................................................ 215
Ustawienia gonoci .......................................................................................................... 216
Formaty dwiku ................................................................................................................ 217
Ogldanie telewizji i filmw ..................................................................................................... 219
Wymagany sprzt ............................................................................................................... 219
Formaty wideo .................................................................................................................... 221
Ogldanie filmw ............................................................................................................... 222
Cyfrowy magnetowid ......................................................................................................... 224
Odtwarzacze DVD i wideo ................................................................................................ 225
Warto zajrze ............................................................................................................................. 225

Rozdzia 8. Drukowanie ................................................................................................ 227


Podstawy mechanizmu drukowania w Fedorze ................................................................... 228
Konfiguracja i zarzdzanie usugami drukowania ............................................................... 231
Elementarz graficznej konfiguracji drukarki .................................................................. 231
Zarzdzanie usugami drukowania .................................................................................. 232
Definiowanie i konfiguracja drukarek lokalnych ................................................................. 236
Tworzenie kolejek wydrukw ........................................................................................... 236
Zmiana ustawie drukarki ................................................................................................ 240
Warto zajrze ............................................................................................................................. 241

Rozdzia 9. Gry ............................................................................................................... 243


Gry w Linuksie ........................................................................................................................... 244
Instalowanie zamknitych sterownikw kart graficznych ........................................... 245
Instalowanie popularnych gier ................................................................................................ 246
DOOM 3 .............................................................................................................................. 247
Unreal Tournament 2004 .................................................................................................. 248
Quake 4 ................................................................................................................................ 249
Wolfenstein: Enemy Territory ......................................................................................... 250
Battle for Wesnoth ............................................................................................................. 251
Gry edukacyjne KDE ................................................................................................................ 251
Cedega i gry dla Windows ........................................................................................................ 252
Warto zajrze ............................................................................................................................. 253

CZ III ZARZDZANIE SYSTEMEM FEDORA ................................... 255


Rozdzia 10. Konta uytkownikw ................................................................................ 257
Konta i kategorie uytkownikw ............................................................................................ 258
Dodawanie nowych uytkownikw ................................................................................. 261
Identyfikatory kont (UID) oraz identyfikatory grup (GID) ........................................ 263
Zarzdzanie grupami kont ....................................................................................................... 264
Narzdzia do zarzdzania grupami uytkownikw ...................................................... 265
Zarzdzanie kontami uytkownikw ..................................................................................... 267
Narzdzia do zarzdzania kontami uytkownikw ....................................................... 267
Monitorowanie poczyna uytkownikw systemu ....................................................... 269

Spis treci

Zarzdzanie prawami dostpu ................................................................................................. 271


Przydzielanie praw dostpu .............................................................................................. 272
Prawa dostpu do katalogu ............................................................................................... 273
Atrybuty SUID (Set User ID) oraz SGID (Set Group ID) ............................................ 276
Zarzdzanie systemem hase .................................................................................................... 277
Plik hase .............................................................................................................................. 278
Przesanianie hase (shadow passwords) ........................................................................ 279
Bezpieczestwo hase uytkownikw .............................................................................. 283
Wsadowa zmiana hase ...................................................................................................... 284
Nadawanie uytkownikom praw administratora systemu .................................................. 285
Tymczasowe przeczanie konta uytkownika przy uyciu polecenia su .................. 285
Nadawanie uytkownikom praw do wykonywania wybranych polece
z poziomu konta root polecenie sudo ...................................................................... 288
Limity dyskowe .......................................................................................................................... 292
Realizacja systemu limitw dyskowych ........................................................................... 293
Rczna konfiguracja limitw dyskowych ........................................................................ 294
Warto zajrze ............................................................................................................................. 296

Rozdzia 11. Automatyzacja pracy ................................................................................ 297


Uruchamianie usug przy rozruchu systemu ........................................................................ 298
Inicjalizacja procesu uruchamiania systemu .................................................................. 299
adowanie jdra systemu Linux ....................................................................................... 301
Usugi systemowe i poziomy uruchamiania ................................................................... 302
Definicje poziomw uruchamiania ................................................................................. 303
Uruchamianie systemu na domylnym poziomie uruchamiania ............................... 304
Uruchamianie systemu na wybranym poziomie uruchomieniowym
z wykorzystaniem programu rozruchowego GRUB .................................................. 307
Tajemnice skryptw init oraz kocowa faza inicjalizacji systemu .............................. 308
Sterowanie usugami podczas uruchamiania systemu operacyjnego ......................... 310
Uruchamianie usug systemowych przez demon xinetd .............................................. 313
Przeczanie poziomw uruchomieniowych .................................................................. 314
Rozwizywanie problemw z poziomami uruchomieniowymi ......................................... 315
Rczne zatrzymywanie i uruchamianie usug systemowych ............................................... 317
Planowe wykonywanie zada .................................................................................................. 319
Odkadanie wykonywania zada na pniej .................................................................. 319
Regularne wykonywanie zada za pomoc demona cron ............................................ 322
Elementarz programowania powoki ..................................................................................... 325
Wiersz polece powoki .................................................................................................... 326
Porwnywanie wzorcw w powoce ................................................................................ 328
Przekierowywanie wejcia i wyjcia programw ........................................................... 329
Potoki danych ..................................................................................................................... 330
Przetwarzanie w tle ............................................................................................................. 331
Warto zajrze ............................................................................................................................. 332

Rozdzia 12. Monitorowanie systemu ........................................................................... 333


Monitorowanie systemu w wierszu polece .......................................................................... 334
Korzystanie z polecenia kill do sterowania procesami ........................................................ 336

Spis treci

Korzystanie z priorytetw i sterowanie nimi ........................................................................ 337


Wywietlanie informacji o zajtej i dostpnej pamici za pomoc polecenia free .......... 339
Limitowanie dostpnej przestrzeni dyskowej ................................................................ 340
Graficzne narzdzia do zarzdzania procesami i systemem ............................................... 340
Narzdzia do monitorowania procesw i systemu dla rodowiska KDE ......................... 343
Warto zajrze ............................................................................................................................. 344

Rozdzia 13. Zabezpieczanie danych kopiami ............................................................. 345


Wybr strategii wykonywania kopii zapasowych ................................................................. 346
Dlaczego dochodzi do utraty danych? ............................................................................. 347
Ocena moliwoci i wymaganego zakresu kopii bezpieczestwa ............................... 348
Ocena strategii wykonywania kopii bezpieczestwa ..................................................... 352
Dokonaj waciwego wyboru ............................................................................................ 356
Wybr urzdze i nonika kopii zapasowych ....................................................................... 357
Wymienne noniki danych ............................................................................................... 357
Dyski sieciowe ..................................................................................................................... 359
Napdy tamowe ................................................................................................................. 359
Oprogramowanie do wykonywania kopii zapasowych ....................................................... 360
Podstawowe narzdzie archiwizacji polecenie tar .................................................... 361
Program File Roller w GNOME ....................................................................................... 364
Programy ark i kdat w KDE .............................................................................................. 365
Zastosowanie pakietu Amanda ........................................................................................ 366
Alternatywne pakiety oprogramowania do archiwizacji danych ................................ 368
Kopiowanie plikw ................................................................................................................... 369
Kopiowanie plikw przy uyciu polecenia tar ............................................................... 370
Pakowanie, szyfrowanie i wysyanie potokw tar .......................................................... 371
Kopiowanie plikw przy uyciu polecenia cp ................................................................ 371
Kopiowanie plikw przy uyciu programu mc .............................................................. 372
Odtwarzanie systemu ................................................................................................................ 373
Dysk awaryjny systemu Fedora ........................................................................................ 374
Tworzenie kopii i odtwarzanie gwnego sektora rozruchowego ............................... 374
Rczne odtwarzanie tablicy partycji ................................................................................ 375
Uruchamianie wasnego systemu z dysku ratunkowego .............................................. 377
Uruchamianie systemu z innego dysku rozruchowego ................................................ 377
Zastosowanie programu adujcego GRUB ................................................................... 377
Przywracanie systemu z dysku instalacyjnego ............................................................... 378
Warto zajrze ............................................................................................................................. 381

Rozdzia 14. Sieci komputerowe .................................................................................... 383


Narzdzia konfiguracji sieci ..................................................................................................... 384
Uywanie graficznych narzdzi konfiguracyjnych ........................................................ 385
Konfigurowanie interfejsw sieciowych w wierszu polece ........................................ 387
Pliki konfiguracji sieci ........................................................................................................ 392
Wylewanie fundamentw sieci: interfejs localhost .............................................................. 395
Sprawdzanie dostpnoci interfejsu lo ............................................................................ 395
Rczna konfiguracja interfejsu lo ..................................................................................... 396
Budowa sieci TCP/IP ................................................................................................................ 397

10

Spis treci

Sieci bezprzewodowe ................................................................................................................ 398


Obsuga sieci bezprzewodowych w Fedorze ................................................................... 399
Adresowanie TCP/IP ......................................................................................................... 401
Protok dynamicznej konfiguracji wza (DHCP) ............................................................. 402
Jak dziaa protok DHCP? ............................................................................................... 404
Instalowanie oprogramowania DHCP ............................................................................ 405
Konfigurowanie wzw sieci za pomoc protokou DHCP ....................................... 407
Inne zastosowania protokou DHCP ............................................................................... 409
Stosowanie maskarady IP w systemie Fedora ................................................................ 410
Porty ..................................................................................................................................... 411
Kurs na internet ......................................................................................................................... 411
Konfiguracja pocze informacje oglne ................................................................. 412
Konfiguracja pocze DSL ............................................................................................... 414
Protok PPPoE .................................................................................................................. 416
Rczna konfiguracja pocze PPPoE ............................................................................. 416
Konfiguracja pocze modemowych .................................................................................... 418
Manualna konfiguracja pocze typu dial-up .............................................................. 419
Zastosowanie kreatora pocze internetowych ............................................................ 423
Rozwizywanie problemw z poczeniami z internetem .................................................. 426
Warto zajrze ............................................................................................................................. 427
Zagadnienia oglne ............................................................................................................ 427
Protok DHCP .................................................................................................................. 427
Sieci bezprzewodowe ......................................................................................................... 428
Ksiki .................................................................................................................................. 428

Rozdzia 15. Dostp zdalny przez SSH i Telnet ............................................................. 431


Uruchamianie serwera usugi Telnet ...................................................................................... 432
Uruchamianie serwera SSH ..................................................................................................... 433
Narzdzia SSH ........................................................................................................................... 434
Kopiowanie pojedynczych plikw midzy komputerami za pomoc scp ................. 435
Kopiowanie wielu plikw pomidzy komputerami za pomoc sftp ........................... 436
Logowanie z wykorzystaniem klucza .............................................................................. 437
Zdalne sesje X ............................................................................................................................. 439
XDMCP ............................................................................................................................... 439
VNC ...................................................................................................................................... 440
Warto zajrze ............................................................................................................................. 441

Rozdzia 16. Xen .............................................................................................................. 443


Poytki z wirtualizacji ............................................................................................................... 444
Wirtualizacja kontra parawirtualizacja .................................................................................. 445
Jak dziaa Xen? ........................................................................................................................... 446
Instalowanie Xen ....................................................................................................................... 446
Tworzenie osadzonego systemu operacyjnego ..................................................................... 447
Konfiguracja bieca i sterowanie maszyn wirtualn ........................................................ 448
Warto zajrze ............................................................................................................................. 450

11

Spis treci

CZ IV FEDORA JAKO SERWER ..................................................................... 451


Rozdzia 17. Zarzdzanie serwerem WWW Apache ..................................................... 453
Serwer WWW Apache .............................................................................................................. 454
Instalowanie serwera Apache .................................................................................................. 456
Instalacja serwera przy uyciu programu pirut ............................................................. 456
Rczna instalacja serwera z pakietw RPM .................................................................... 457
Samodzielna kompilacja kodu rdowego serwera ..................................................... 459
Uruchamianie i zatrzymywanie serwera Apache ................................................................. 462
Rczne uruchamianie serwera Apache ............................................................................ 462
Skrypt startowy /etc/rc.d/init.d/httpd ............................................................................. 464
Sterowanie serwerem Apache polecenie service ....................................................... 466
Sterowanie serwerem Apache polecenie chkconfig ................................................. 466
Graficzny interfejs konfiguracji serwera Apache .................................................................. 467
Konfigurowanie wzw wirtualnych .............................................................................. 468
Konfigurowanie serwera ................................................................................................... 469
Konfigurowanie serwera pod ktem wydajnoci szczytowej ....................................... 470
Ustawienia konfiguracyjne serwera ........................................................................................ 470
Dyrektywy konfiguracyjne ................................................................................................ 471
Edycja pliku httpd.conf ...................................................................................................... 471
Moduy MPM ...................................................................................................................... 474
Pliki konfiguracyjne .htaccess ........................................................................................... 475
Uwierzytelnianie i kontrola dostpu ...................................................................................... 477
Ograniczanie dostpu dyrektywami Allow oraz Deny ................................................. 478
Uwierzytelnianie ................................................................................................................. 479
Kontrola dostpu raz jeszcze ............................................................................................ 481
Moduy serwera Apache ........................................................................................................... 482
mod_authz_host ................................................................................................................. 483
mod_alias ............................................................................................................................. 484
mod_asis .............................................................................................................................. 484
mod_auth_basic i mod_authn_file .................................................................................. 485
mod_authn_anon ............................................................................................................... 485
mod_authn_dbm ................................................................................................................ 485
mod_auth_digest ................................................................................................................ 485
mod_autoindex ................................................................................................................... 485
mod_cgi ............................................................................................................................... 486
mod_dir oraz mod_env ..................................................................................................... 486
mod_expires ........................................................................................................................ 486
mod_headers ....................................................................................................................... 486
mod_include ....................................................................................................................... 487
mod_info oraz mod_log_config ....................................................................................... 487
mod_mime oraz mod_mime_magic ............................................................................... 487
mod_negotiation ................................................................................................................ 487
mod_proxy .......................................................................................................................... 487
mod_rewrite ........................................................................................................................ 487
mod_setenvif ....................................................................................................................... 488
mod_speling ........................................................................................................................ 488

12

Spis treci

mod_status .......................................................................................................................... 488


mod_ssl ................................................................................................................................ 488
mod_unique_id .................................................................................................................. 488
mod_userdir ........................................................................................................................ 489
mod_usertrack .................................................................................................................... 489
mod_vhost_alias ................................................................................................................. 489
Serwery wirtualne ...................................................................................................................... 489
Wzy wirtualne rozrniane adresami IP ..................................................................... 490
Wzy wirtualne rozrniane nazwami ........................................................................... 490
Rejestrowanie ............................................................................................................................. 492
Warto zajrze ............................................................................................................................. 494

Rozdzia 18. Administrowanie usugami baz danych .................................................. 495


Krtkie wprowadzenie do baz danych ................................................................................... 497
Zasada dziaania relacyjnych baz danych ....................................................................... 498
Podstawy jzyka SQL ......................................................................................................... 500
Wybr bazy danych: MySQL kontra PostgreSQL ................................................................ 505
Szybko ............................................................................................................................... 505
Blokowanie danych ............................................................................................................ 505
Przetwarzanie transakcji a ochrona spjnoci danych reguy ACID .................... 506
Podzapytania SQL .............................................................................................................. 507
Jzyki proceduralne i wyzwalacze .................................................................................... 507
Konfigurowanie bazy danych MySQL ................................................................................... 508
Przypisywanie hasa do konta uytkownika gwnego bazy danych MySQL ........... 509
Tworzenie bazy danych ..................................................................................................... 510
Przyznawanie i odbieranie uprawnie w bazie danych MySQL ................................. 510
Konfigurowanie bazy danych PostgreSQL ............................................................................ 512
Inicjalizowanie katalogu danych bazy PostgreSQL ....................................................... 513
Tworzenie bazy danych ..................................................................................................... 514
Tworzenie kont uytkownikw bazy danych PostgreSQL ........................................... 515
Usuwanie kont uytkownikw bazy danych PostgreSQL ............................................ 516
Przyznawanie i odbieranie uprawnie uytkownikom bazy danych PostgreSQL ... 517
Programy-klienty baz danych .................................................................................................. 517
Dostp do bazy danych za porednictwem SSH ............................................................ 518
Dostp do serwera bazy danych za porednictwem klientw
z interfejsem graficznym ................................................................................................. 519
Dostp do serwera bazy danych za porednictwem interfejsu WWW ...................... 520
Program klienta bazy danych MySQL ............................................................................. 521
Program klienta bazy danych PostgreSQL ..................................................................... 523
Interfejsy graficzne ............................................................................................................. 523
Warto zajrze ............................................................................................................................. 524

Rozdzia 19. Pliki i drukarki ............................................................................................ 525


Uywanie sieciowego systemu plikw (NFS) ........................................................................ 526
Konfigurowanie serwera NFS ........................................................................................... 527
Konfigurowanie klienta NFS ............................................................................................ 529

13

Spis treci

Korzystanie z pakietu Samba ................................................................................................... 530


Konfigurowanie Samby za pomoc programu system-config-samba ........................ 531
Konfigurowanie Samby przy uyciu programu SWAT ................................................ 532
Rczne konfigurowanie Samby w pliku /etc/samba/smb.conf .................................... 537
Testowanie konfiguracji za pomoc polecenia testparm .............................................. 540
Uruchamianie demona smbd ........................................................................................... 541
Montowanie udziaw SMB .............................................................................................. 542
Sieciowe usugi wydruku w Fedorze ....................................................................................... 542
Dostosowanie uprawnie drukowania w sieci lokalnej ................................................ 543
Drukowanie za pomoc protokou SMB ........................................................................ 546
Konfiguracja i uywanie drukarek bezporednio podczonych do sieci .................. 547
Interfejs systemu CUPS oparty na WWW ............................................................................ 549
Sterowanie drukowaniem z poziomu konsoli ....................................................................... 552
Podstawowe polecenia drukowania ................................................................................. 552
Zarzdzanie zadaniami wydruku ..................................................................................... 552
Unikanie problemw z obsug drukarek .............................................................................. 554
Urzdzenia wielofunkcyjne ............................................................................................... 554
Uywanie drukarek USB i tradycyjnych ......................................................................... 555
Warto zajrze ............................................................................................................................. 555

Rozdzia 20. Zdalne udostpnianie plikw przez FTP ................................................. 557


Wybr serwera FTP .................................................................................................................. 558
Serwer z uwierzytelnianiem czy anonimowy? ................................................................ 559
Oprogramowanie serwera FTP dla systemu Fedora ..................................................... 559
Pozostae serwery FTP ....................................................................................................... 560
Instalowanie oprogramowania serwera FTP ......................................................................... 561
Uytkownik usugi FTP ............................................................................................................ 562
Uruchamianie serwera vsftpd .................................................................................................. 564
Konfigurowanie serwera vsftpd ............................................................................................... 565
Kontrola poczyna uytkownikw anonimowych ........................................................ 566
Pozostae pliki konfiguracyjne serwera vsftpd ............................................................... 566
Administrowanie serwerem ProFTPD ................................................................................... 570
Zestawienie aktywnych pocze ..................................................................................... 570
Licznik pocze ................................................................................................................. 571
Przygotowanie planowego zatrzymania serwera ........................................................... 571
Analiza pliku dziennika /var/log/xferlog serwera ProtFTPD ...................................... 573
Warto zajrze ............................................................................................................................. 575

Rozdzia 21. Obsuga poczty elektronicznej ................................................................ 577


Wysyanie i odbieranie poczty elektronicznej ....................................................................... 578
Oprogramowanie MTA ..................................................................................................... 579
Wybr oprogramowania MTA ........................................................................................ 583
Oprogramowanie MDA .................................................................................................... 583
Oprogramowanie MUA programy pocztowe ........................................................... 583
Podstawy konfigurowania i stosowania programu Sendmail ............................................. 584
Maskarada ........................................................................................................................... 586
Smart Hosts ......................................................................................................................... 586

14

Spis treci

Interwa czasowy kolejnych prb dostarczenia poczty ................................................. 587


Kompilowanie pliku sendmail.mc ................................................................................... 588
Przekazywanie poczty ........................................................................................................ 588
Aliasy adresw poczty elektronicznej .............................................................................. 589
Odrzucanie poczty przychodzcej z podejrzanych wzw ......................................... 590
Wstp do Postfiksa .................................................................................................................... 591
Przesiadka ............................................................................................................................ 591
Pobieranie poczty program Fetchmail .............................................................................. 593
Instalowanie programu Fetchmail ................................................................................... 593
Konfigurowanie programu Fetchmail ............................................................................. 594
Wybr oprogramowania MDA ............................................................................................... 597
Procmail ............................................................................................................................... 598
Spamassasin ......................................................................................................................... 599
Squirrelmail ......................................................................................................................... 599
Skanery antywirusowe ....................................................................................................... 599
Oprogramowanie specjalne MDA ................................................................................... 600
Demony pocztowe ..................................................................................................................... 601
Alternatywy dla Microsoft Exchange Server ......................................................................... 601
Microsoft Exchange Server i Outlook ............................................................................. 602
CommuniGate Pro ............................................................................................................. 602
Oracle Collaboration Suite ................................................................................................ 603
Open Xchange ..................................................................................................................... 603
Warto zajrze ............................................................................................................................. 603
Zasoby sieci WWW ............................................................................................................ 603
Ksiki .................................................................................................................................. 604

Rozdzia 22. Uruchamianie serwera proxy ................................................................... 605


Co to jest serwer proxy? ............................................................................................................ 606
Instalowanie Squida .................................................................................................................. 606
Konfigurowanie klientw ......................................................................................................... 607
Listy kontroli dostpu ............................................................................................................... 608
Okrelanie adresw IP klientw .............................................................................................. 613
Konfiguracje przykadowe ....................................................................................................... 615
Warto zajrze ............................................................................................................................. 616

Rozdzia 23. Zarzdzanie usugami DNS ....................................................................... 617


Konfiguracja systemu DNS strona klienta ........................................................................ 619
Plik /etc/host.conf ............................................................................................................... 620
Plik /etc/nsswitch.conf ....................................................................................................... 621
Plik /etc/hosts ...................................................................................................................... 621
Plik /etc/resolv.conf ............................................................................................................ 622
Zmiany wprowadzane przez system DHCP ................................................................... 623
Podstawowe pojcia zwizane z systemem DNS .................................................................. 623
Przechowywanie informacji o strukturze DNS na serwerze nazw .............................. 625
W jaki sposb system DNS dostarcza usug tumaczenia nazw? ............................... 625
Tumaczenie nazw w praktyce .......................................................................................... 626

15

Spis treci

Narzdzia DNS .......................................................................................................................... 627


Polecenie dig ....................................................................................................................... 627
Polecenie host ..................................................................................................................... 628
Polecenie nslookup ............................................................................................................. 629
Polecenie whois ................................................................................................................... 629
Konfiguracja lokalnego buforujcego serwera nazw ............................................................ 631
Wasna domena i serwery DNS ............................................................................................... 632
Konfiguracja serwera nazw domeny przy uyciu pakietu BIND ....................................... 633
Plik rndc.conf ...................................................................................................................... 635
Plik konfiguracyjny named.conf ...................................................................................... 636
Rejestracja zdarze ............................................................................................................. 642
Konfiguracja programu tumaczcego ............................................................................ 643
Uruchamianie demona serwera nazw named ................................................................ 644
Konfiguracja serwera DNS do obsugi domen rzeczywistych ............................................ 645
Strefa prosta ......................................................................................................................... 645
Strefa odwrotna ................................................................................................................... 647
Rejestracja domeny ............................................................................................................ 648
Rozwizywanie problemw z serwerem DNS ....................................................................... 648
Problemy zwizane z przekazywaniem odpowiedzialnoci (delegowaniem
domen) .............................................................................................................................. 649
Problemy zwizane z wyszukiwaniem w ty ................................................................... 650
Zapewnienie poprawnoci numerw seryjnych ............................................................ 650
Rozwizywanie problemw zwizanych z plikami strefy ............................................. 651
Narzdzia przydatne w diagnozowaniu problemw ..................................................... 652
Korzystanie z narzdzia konfiguracyjnego BIND ......................................................... 652
Zapewnienie bezpieczestwa serwerw DNS ....................................................................... 653
Zagadnienia bezpieczestwa w systemie UNIX ............................................................. 654
Zagadnienia bezpieczestwa systemu DNS .................................................................... 656
Rozszerzenia DNSSEC ....................................................................................................... 659
Rozdzielony DNS ............................................................................................................... 660
Warto zajrze ............................................................................................................................. 661

Rozdzia 24. LDAP ........................................................................................................... 663


Konfigurowanie serwera .......................................................................................................... 664
Wypenianie katalogu ........................................................................................................ 667
Konfigurowanie klientw ......................................................................................................... 670
Evolution .............................................................................................................................. 670
Thunderbird ........................................................................................................................ 671
Czynnoci administracyjne ...................................................................................................... 672
Warto zajrze ............................................................................................................................. 672

CZ V

PROGRAMOWANIE W LINUKSIE .......................................... 675

Rozdzia 25. Jzyk Perl .................................................................................................... 677


Perl w systemie Linux ............................................................................................................... 678
Wersje jzyka Perl .............................................................................................................. 679
Prosty program w jzyku Perl ........................................................................................... 679

16

Spis treci

Zmienne i struktury danych w Perlu ...................................................................................... 682


Typy zmiennych ................................................................................................................. 682
Zmienne specjalne .............................................................................................................. 683
Operatory .................................................................................................................................... 683
Operatory porwnania ...................................................................................................... 684
Operatory logiczne ............................................................................................................. 685
Operatory arytmetyczne .................................................................................................... 685
Inne operatory .................................................................................................................... 686
Specjalne stae znakowe ..................................................................................................... 686
Instrukcje warunkowe if oraz unless ...................................................................................... 686
Instrukcja if .......................................................................................................................... 687
unless .................................................................................................................................... 688
Ptle ............................................................................................................................................. 688
Instrukcja for ....................................................................................................................... 688
Instrukcja foreach ............................................................................................................... 689
Instrukcja while .................................................................................................................. 690
Instrukcja until .................................................................................................................... 690
Instrukcje last oraz next ..................................................................................................... 690
Instrukcje dowhile oraz dountil ............................................................................... 691
Wyraenia regularne ................................................................................................................. 691
Dostp do powoki .................................................................................................................... 692
Moduy Perla i CPAN ............................................................................................................... 693
Warto zajrze ............................................................................................................................. 695
Ksiki .................................................................................................................................. 695

Rozdzia 26. Praca z Pythonem ...................................................................................... 697


Python w Linuksie ..................................................................................................................... 698
Tryb interaktywny .............................................................................................................. 699
Podstawy jzyka Python ........................................................................................................... 699
Liczby ................................................................................................................................... 700
Jeszcze o cigach ................................................................................................................. 701
Listy ...................................................................................................................................... 704
Sowniki ............................................................................................................................... 706
Warunki i ptle ................................................................................................................... 707
Funkcje ........................................................................................................................................ 709
Ukierunkowanie obiektowe ..................................................................................................... 710
Zmienne obiektu i klasy .................................................................................................... 711
Konstruktory i destruktory ............................................................................................... 712
Dziedziczenie klas ............................................................................................................... 713
Dziedziczenie wielobazowe ............................................................................................... 715
Biblioteka standardowa oraz Vault of Parnassus .................................................................. 716
Warto zajrze ............................................................................................................................. 716

Rozdzia 27. Skrypty PHP ............................................................................................... 719


Wprowadzenie do PHP ............................................................................................................ 720
Wywoywanie i opuszczanie trybu PHP ......................................................................... 721
Zmienne ............................................................................................................................... 721

17

Spis treci

Tablice .................................................................................................................................. 723


Stae ...................................................................................................................................... 725
Referencje ............................................................................................................................ 725
Komentarze ......................................................................................................................... 726
Sekwencje sterujce ............................................................................................................ 727
Podstawianie zmiennych ................................................................................................... 728
Operatory ............................................................................................................................. 729
Instrukcje warunkowe ....................................................................................................... 731
Operatory specjalne ........................................................................................................... 732
Instrukcja wyboru .............................................................................................................. 733
Ptle ...................................................................................................................................... 735
Wczanie plikw zewntrznych ...................................................................................... 737
Podstawowe funkcje .................................................................................................................. 738
Cigi ...................................................................................................................................... 738
Tablice .................................................................................................................................. 742
Pliki ....................................................................................................................................... 744
Rne .................................................................................................................................... 746
Obsuga formularzy HTML ..................................................................................................... 750
Bazy danych ......................................................................................................................... 751
Wprowadzenie do PEAR::DB ........................................................................................... 751
Warto zajrze ............................................................................................................................. 753

Rozdzia 28. Narzdzia programistyczne jzykw C i C++ .......................................... 755


Linux a programowanie w jzyku C ....................................................................................... 756
Narzdzia zarzdzania projektami programistycznymi C i C++ w Fedorze .................... 757
Konfigurowanie kodu rdowego autoconf ............................................................. 760
Zarzdzanie projektami programistycznymi Subversion ........................................ 761
Narzdzia diagnostyczne ................................................................................................... 762
Stosowanie kompilatora GNU C ............................................................................................. 763
Narzdzia prototypowania graficznego ................................................................................. 764
Program KDevelop ............................................................................................................. 764
Programowanie w GNOME narzdzie Glade ........................................................... 765
Warto zajrze ............................................................................................................................. 766

Rozdzia 29. Mono ........................................................................................................... 769


Po co nam Mono? ...................................................................................................................... 770
Mono w konsoli ......................................................................................................................... 771
Struktura programu w C# ................................................................................................. 773
Wypisywanie wartoci argumentw wywoania ............................................................ 774
Tworzenie wasnych zmiennych ...................................................................................... 774
Kontrola bdw ................................................................................................................. 775
Kompilowanie programu z bibliotekami Mono ................................................................... 776
Wyszukiwanie z Beagle ...................................................................................................... 776
Tworzenie interfejsu uytkownika z Gtk# ...................................................................... 779
Warto zajrze ............................................................................................................................. 780

18

Spis treci

CZ VI KONSERWACJA SYSTEMU .................................................... 783


Rozdzia 30. Zabezpieczanie komputerw ................................................................... 785
Sowo o atakach komputerowych ........................................................................................... 786
Ocena wraliwoci i podatnoci na ataki ............................................................................... 788
Zabezpieczanie komputera ...................................................................................................... 790
Zabezpieczanie sieci bezprzewodowej ............................................................................. 790
Hasa i dostp fizyczny ...................................................................................................... 791
Konfiguracja i uycie programu Tripwire ...................................................................... 791
Urzdzenia ........................................................................................................................... 793
Wirusy ......................................................................................................................................... 794
Konfigurowanie zapory sieciowej ........................................................................................... 794
Plan awaryjny ............................................................................................................................. 796
ledzenie doniesie o bezpieczestwie systemu Linux ........................................................ 797
Wstp do SELinux ..................................................................................................................... 798
Warto zajrze ............................................................................................................................. 799

Rozdzia 31. Strojenie wydajnoci ................................................................................. 801


Dysk twardy ................................................................................................................................ 802
Strojenie dysku twardego BIOS oraz jdro systemu ................................................ 803
Strojenie systemu plikw ................................................................................................... 803
Polecenie tune2fs ................................................................................................................ 804
Polecenie e2fsck .................................................................................................................. 804
Polecenie badblocks ........................................................................................................... 805
Wyczanie rejestrowania czasu dostpu do plikw ..................................................... 805
Jdro ............................................................................................................................................ 805
Apache ......................................................................................................................................... 808
MySQL ........................................................................................................................................ 809
Pomiar wykorzystania bufora kluczy .............................................................................. 810
Stosowanie bufora zapyta ............................................................................................... 811
Rne .................................................................................................................................... 813
Optymalizowanie zapyta ................................................................................................. 814
Warto zajrze ............................................................................................................................. 814

Rozdzia 32. Zaawansowana obsuga wiersza polece ............................................... 815


Po co nam powoka? ................................................................................................................. 817
Podstawowe polecenia powoki ............................................................................................... 818
Wypisywanie zawartoci pliku poleceniem cat .............................................................. 819
Przechodzenie pomidzy katalogami poleceniem cd .................................................... 820
Zmiana uprawnie dostpu do plikw poleceniem chmod ........................................... 822
Kopiowanie plikw poleceniem cp .................................................................................. 823
Wypisywanie informacji o zajtoci dysku poleceniem du .......................................... 823
Wyszukiwanie plikw w systemie plikw poleceniem find ............................................ 824
Wyszukiwanie podcigw poleceniem grep ................................................................... 827
Stronicowanie danych tekstowych poleceniem less ...................................................... 829
Tworzenie dowiza do plikw poleceniem ln .............................................................. 831
Wyszukiwanie plikw w indeksie poleceniem locate .................................................... 833

19

Spis treci

Wypisywanie zawartoci katalogu poleceniem ls .......................................................... 833


Przegldanie podrcznika systemowego poleceniem man ............................................. 835
Tworzenie katalogw poleceniem mkdir ........................................................................ 836
Przenoszenie plikw poleceniem mv ............................................................................... 836
Wypisywanie wykazu uruchomionych procesw poleceniem ps ............................... 836
Usuwanie plikw i katalogw poleceniem rm ............................................................... 837
Wypisywanie kocwek plikw poleceniem tail ........................................................... 838
Wypisywanie informacji o zuyciu zasobw poleceniem top ..................................... 839
Wypisywanie pooenia programu poleceniem which ................................................. 840
czenie polece ........................................................................................................................ 841
Praca na wielu terminalach ...................................................................................................... 843
Data i godzina ............................................................................................................................ 845
Polecenie date ...................................................................................................................... 846
Polecenie hwclock .............................................................................................................. 846
Wykonywanie zrzutw ekranu ................................................................................................ 847
Warto zajrze ............................................................................................................................. 847
Ksiki .................................................................................................................................. 847

Rozdzia 33. Tworzenie i uruchamianie skryptw powoki ........................................ 849


Uruchamianie nowo utworzonego skryptu powoki ........................................................... 851
Wskazywanie powoki do interpretacji skryptw ................................................................ 853
Zmienne w skryptach powoki ................................................................................................ 855
Przypisywanie wartoci do zmiennych ........................................................................... 855
Odwoania do wartoci zmiennych ................................................................................. 856
Parametry pozycyjne .......................................................................................................... 856
Skryptowa automatyzacja zada ............................................................................................. 858
Zmienne wbudowane ............................................................................................................... 860
Znaki specjalne .......................................................................................................................... 861
Dziaanie znakw podwjnego cudzysowu ................................................................... 862
Dziaanie znakw pojedynczego cudzysowu ................................................................ 863
Dziaanie znaku lewego ukonika .................................................................................... 863
Dziaanie znaku pojedynczego cudzysowu otwierajcego .......................................... 864
Wyraenia porwnania w powokach mksh i bash .............................................................. 864
Porwnywanie cigw znakowych .................................................................................. 865
Porwnywanie wartoci liczbowych ................................................................................ 866
Operatory plikowe .............................................................................................................. 867
Operatory logiczne ............................................................................................................. 868
Instrukcje sterujce: for, while i inne ...................................................................................... 869
Instrukcja for ....................................................................................................................... 869
Instrukcja while .................................................................................................................. 870
Instrukcja until .................................................................................................................... 871
Instrukcja shift .................................................................................................................... 873
Instrukcja if .......................................................................................................................... 873
Instrukcja case ..................................................................................................................... 874
Instrukcje break oraz exit .................................................................................................. 875
Funkcje w skryptach powoki .................................................................................................. 876
Warto zajrze ............................................................................................................................. 877

20

Spis treci

Rozdzia 34. Zaawansowane zarzdzanie oprogramowaniem .................................. 879


Uywanie polecenia RPM do zarzdzania oprogramowaniem .......................................... 880
RPM w wierszu polece ..................................................................................................... 882
Dwie przydatne opcje ........................................................................................................ 882
Korzystanie z polecenia rpm z poziomu wiersza polece ............................................ 884
Wyodrbnianie jednego pliku z pakietu RPM ............................................................... 887
Zapoznanie z programem yum ............................................................................................... 888
Nieinteraktywne sesje yum ...................................................................................................... 890
Usuwanie pakietw ................................................................................................................... 891
Konserwacja yum ...................................................................................................................... 891
Zarzdzanie inwentarzem pakietw ....................................................................................... 892
Konfigurowanie programu yum ............................................................................................. 893
Zarzdzanie oprogramowaniem za pomoc piruta .............................................................. 895
Yum Extender ..................................................................................................................... 897
Lokalne repozytoria yum ......................................................................................................... 897
Warto zajrze ............................................................................................................................. 900

Rozdzia 35. Zarzdzanie systemem plikw ................................................................. 901


Podstawy systemu plikw w Fedorze ..................................................................................... 902
Fizyczna struktura systemu plikw na dysku ................................................................. 903
Partycje systemu plikw .................................................................................................... 905
Sieciowe i dyskowe systemy plikw ................................................................................. 906
Przegldanie systemw plikw komputera .................................................................... 907
System plikw ext3 .................................................................................................................... 908
Struktura systemu plikw ext3 ......................................................................................... 909
Opcje dziennika w systemie ext3 ..................................................................................... 910
Weryfikacja spjnoci systemu ext3 przy uyciu narzdzia fsck ................................. 911
Inne systemy plikw dostpne w systemie Fedora ............................................................... 912
System plikw Reiser ......................................................................................................... 913
Systemy plikw JFS oraz XFS ........................................................................................... 914
Systemy plikw MS-DOS .................................................................................................. 914
Systemy plikw CD-ROM ................................................................................................. 914
Tworzenie systemu plikw ....................................................................................................... 915
Dysk jako urzdzenie pamici masowej .......................................................................... 916
Tworzenie tablicy partycji ................................................................................................. 917
Tworzenie systemu plikw na partycjonowanym dysku .............................................. 920
Tworzenie systemu plikw DOS za pomoc polecenia mkdosfs ................................ 924
Montowanie systemu plikw ................................................................................................... 924
Polecenie mount ................................................................................................................. 925
Polecenie umount ............................................................................................................... 927
Automatyczne montowanie systemu plikw
przy uyciu pliku konfiguracyjnego /etc/fstab ............................................................ 927
Relokacja systemu plikw ........................................................................................................ 930
Instalacja nowego dysku .................................................................................................... 930
Tworzenie tablicy partycji i formatowanie dysku .......................................................... 931
Zamontowanie nowej partycji i przeniesienie danych .................................................. 931
LVM zarzdzanie wolumenami logicznymi ..................................................................... 932

21

Spis treci

Praca z systemem plikw .......................................................................................................... 933


Tworzenie testowego systemu plikw ............................................................................. 933
Montowanie systemu plikw w trybie tylko do odczytu .............................................. 935
Zawarto pliku obrazu initrd .......................................................................................... 936
Warto zajrze ............................................................................................................................. 937

Rozdzia 36. Zarzdzanie jdrem i jego moduami ...................................................... 941


Jdro systemu Linux ................................................................................................................. 942
Drzewo kodu rdowego Linuksa .................................................................................. 943
Rodzaje jder ....................................................................................................................... 946
Zarzdzanie moduami ............................................................................................................. 947
Kiedy kompilowa jdro? ......................................................................................................... 950
Wersje jdra ................................................................................................................................ 951
Pozyskiwanie kodu rdowego jdra .................................................................................... 952
Kod rdowy jdra z pakietu kernel-devel .................................................................... 952
Goy kod rdowy jdra ................................................................................................... 952
Dowizanie symboliczne /usr/src/linux .......................................................................... 953
atanie jdra ............................................................................................................................... 954
Konfiguracja jdra ..................................................................................................................... 956
Kompilacja jdra ........................................................................................................................ 956
Konfiguracja jdra za pomoc interfejsu xconfig .......................................................... 961
Tworzenie obrazu RAM-dysku pocztkowego .............................................................. 963
Przygotowywanie wasnego pakietu RPM z jdrem ..................................................... 963
Gdy co pjdzie nie tak ......................................................................................................... 966
Bdy kompilacji ................................................................................................................. 966
Bdy czasu wykonania, bdy programu rozruchowego i wyjtki jdra ................... 967
Warto zajrze ............................................................................................................................. 969

DODATKI ................................................................................................. 971


Dodatek A Historia Red Hata i Fedory ........................................................................ 973
Fedora? Co to takiego? .............................................................................................................. 976
System Fedora w zastosowaniach biznesowych .................................................................... 978
System Fedora w zastosowaniach domowych ....................................................................... 981
Fedora 64-bitowa ....................................................................................................................... 982
Fedora na platformie PPC ........................................................................................................ 982
Fedora na procesorach wielordzeniowych ............................................................................ 983

Dodatek B

Przygotowania do instalacji ..................................................................... 985


Planowanie instalacji systemu Fedora .................................................................................... 986
Wymagania sprztowe systemu Fedora ................................................................................. 994
Przygotowania do procesu instalacji .................................................................................... 1008
Podzia dysku na partycje przed instalacj i w jej trakcie .................................................. 1010
Przygotowanie instalacji na podstawie konfiguracji gotowego systemu
metoda kickstart .............................................................................................................. 1015
Warto zajrze ........................................................................................................................... 1018

22

Spis treci

Dodatek C

Fedora i Linux w internecie .................................................................... 1021


Witryny WWW i wyszukiwarki ............................................................................................ 1023
Grupy dyskusyjne .................................................................................................................... 1030
Listy dystrybucyjne poczty elektronicznej ........................................................................... 1032
IRC ............................................................................................................................................. 1033

Skorowidz ...................................................................................................................... 1035

23

Rozdzia 17.
Zarzdzanie
serwerem WWW Apache

Cz IV Fedora jako serwer

Biecy rozdzia powicony jest konfiguracji i zarzdzaniu serwerem WWW Apache. Omwienie obejmowa bdzie m.in. przegld podstawowych elementw serwera wraz z prezentacj
sposobw jego konfiguracji, rwnie za porednictwem interfejsw graficznych. Dowiesz si,
jak uruchomi serwer, jak go zatrzyma i przeadowa, korzystajc z narzdzi dostpnych
w dystrybucji Fedora. Wszystko to poprzedzone bdzie prezentacj jednego z najpopularniejszych
na wiece serwerw WWW.

Serwer WWW Apache


Apache to serwer WWW najszerzej wykorzystywany we wspczesnym internecie (jeli wierzy
statystykom publikowanym przez Netcraft, zamieszczonym czciowo w tabeli 17.1).
Tabela 17.1. Wyniki ankiety Netcraft (dane z wrzenia 2007 roku)1

Serwer WWW
Apache

Liczba witryn

Udzia w rynku (procentowy)

68 228 561

50,48

47 232 300

34,94

Google

6 616 713

4,90

SunONE

2 212 821

1,64

lighttpd

1 515 963

1,12

Microsoft

Trzeba zaznaczy, e te statystyki nie obejmuj serwerw Apache dziaajcych w izolowanych


sieciach lokalnych, czyli w intranecie.
Nazwa Apache pojawia si na wczesnych etapach rozwoju oprogramowania serwera; serwer
by wtedy zbiorem at aplikowanych do kodu rdowego serwera NCSA (wic by to atany
serwer, ang. a patchy server). Przez jaki czas po zarzuceniu projektu NCSA wielu programistw tworzyo jeszcze udoskonalajce serwer aty, nie tylko eliminujce wykryte bdy, ale rwnie uzupeniajce serwer o nowe funkcje. Tworzony w ten sposb kod programici wymieniali
midzy sob w sposb kompletnie niezorganizowany.
Nie trzeba byo dugo czeka, aby Bob Behlendorf i Cliff Skolnick udostpnili scentralizowane
repozytorium at serwera NCSA tak narodzi si projekt Apache. Dzi rdze projektu stanowi stosunkowo niewielka grupa programistw, cho mile widziane s rwnie propozycje i aty
pochodzce z zewntrz.

Ankieta obja 135 166 473 witryn.

cznie wszystkie wersje serwerw tej firmy.

454

Rozdzia 17. Zarzdzanie serwerem WWW Apache

W cigu ostatnich kilku lat serwer Apache zyska wielkie znaczenie komercyjne, co po czci
tylko wynika z popularnego modelu stosowania oprogramowania open-source w korporacyjnych systemach informacyjnych. Rwnie wan przyczyn jest niech do serwera IIS (ang.
Internet Information Server) firmy Microsoft, zawierajcego wiele luk (wci odkrywane s nowe) i podatnego na szereg atakw, jak rwnie do implementacji systemu operacyjnego Windows
i jego obsugi sieci, co razem tworzy rodowisko rozprzestrzeniania si robakw, takich jak Code
Red, Nimda czy Blaster. Jedn z pierwszych firm, ktre doceniy stabilno serwera WWW, bya
firma IBM, aktywnie wspomagajca projekt, a w zamian korzystajca ze stabilnego i uznanego
serwera WWW.
W poowie lat 90. ubiegego wieku powstaa (jako organizacja typu non profit) firma Apache
Software Foundation. Zarzdza ni wybierana corocznie spord czonkw ASF rada dyrektorska.
Firma stanowi matecznik wielu rnych otwartych projektw programowych, z serwerem Apache
na czele.
Najlepszym rdem informacji o serwerze Apache jest strona gwna przedsiwzicia Apache
Software Foundation pod adresem http://www.apache.org/ oraz witryna biuletynu Apache
Week (http://www.apacheweek.com/); ta druga prowadzi usug powiadamiania subskrybentw
o nowych elementach projektu serwera, pozwalajc na otrzymywanie najnowszych informacji
o niebezpiecznych lukach i dostpnych poprawkach.

Wskazwka
Dobrym rdem informacji o serwerze Apache jest dokument FAQ,
dostpny pod adresem http://httpd.apache.org/docs-2.2/faq/. Obok
dokumentacji dostpnej online uytkownicy serwera maj te do
dyspozycji dokumentacj w formacie HTML, instalowan w katalogu serwera Apache (z pakietu httpd-manual). Mona si do niej
odwoa za porednictwem samego serwera, nawizujc poczenie z serwerem lokalnym i przechodzc do strony http://localhost/
manual/index.html. Ale lektura tak udostpnianej dokumentacji
bdzie moliwa dopiero po uruchomieniu serwera!

Dystrybucja Fedora zawiera wersj 2.2 serwera Apache; pakiet serwera, znajdujcy si na pycie
instalacyjnej, nosi nazw httpd. Najnowsz wersj oprogramowania serwera w postaci pakietu
RPM mona pobra z serwera FTP projektu Fedora, dostpnego za porednictwem programu
yum. Mona te pobra ze strony serwera Apache najnowsz wersj kodu rdowego i zgodnie
z tradycj linuksow samodzielnie j skompilowa i zainstalowa w systemie.
Aby okreli, ktra z wersji serwera Apache zostaa zainstalowana w systemie, naley uruchomi
plik wykonywalny serwera z przecznikiem -V:

455

Cz IV Fedora jako serwer

# /usr/sbin/httpd -V | cat
Server version: Apache/2.2.6 (Unix)
Server built:
Sep 18 2007 09:40:44
Server's Module Magic Number: 20051115:5
Server loaded: APR 1.2.8, APR-Util 1.2.8
Compiled using: APR 1.2.8, APR-Util 1.2.8
Architecture:
32-bit
Server MPM:
Prefork
threaded:
no
forked:
yes (variable process count)
Server compiled with....
...

Wynikiem polecenia jest wydruk obejmujcy numer wersji serwera, dat i czas kompilacji oraz
list opcji wystosowanych przy kompilacji. Te same informacje, ale w wersji nieco okrojonej,
mona uzyska po umieszczeniu w wierszu wywoania serwera opcji -v.

Instalowanie serwera Apache


Oprogramowanie serwera Apache mona zainstalowa z pakietu RPM bd wykona kompilacj jego kodu rdowego. Kod rdowy powinien da si skompilowa w dowolnym systemie uniksowym, jak rwnie w rodowisku Win32. Jeeli przy instalacji dystrybucji Fedora
zaznaczono grup pakietw Serwer WWW, w systemie automatycznie zainstalowany zostanie
zarwno sam serwer Apache, jak i oprogramowanie z nim zwizane, w postaci kilkunastu
dodatkowych pakietw (z dokumentacj wcznie).
Przystpujc do instalacji nowszej wersji serwera, naley pamita o koniecznoci zatrzymania
serwera dziaajcego w tle. Co prawda, prawdopodobiestwo, e dziaanie serwera zakci proces
instalacji, jest niewielkie, to nie zaszkodzi zmniejszy je do zera. Procedura zatrzymywania serwera
opisana zostaa w podrozdziale Uruchamianie i zatrzymywanie serwera Apache.

Instalacja serwera przy uyciu programu pirut


Co prawda, kategoria Serwer WWW jest dostpna ju przy pierwotnej instalacji dystrybucji,
ale czsto na tym etapie lepiej powstrzyma si od instalacji jakichkolwiek nadmiarowych
usug, eby po prostu ograniczy liczb furtek do systemu, ktre przed szczegowym przygotowaniem konfiguracji trzeba uzna za potencjalnie otwarte. Jednak ju po instalacji i wstpnej
konfiguracji systemu Fedora mona zainstalowa serwer Apache z poziomu systemowej aplikacji dodawania i usuwania oprogramowania; w programie pirut (Aplikacje/Dodaj/usu oprogramowanie) wystarczy w grupie Serwery zaznaczy kategori Serwer WWW.
Warto take zajrze do szczegowej listy pakietw (zakadka Lista) i wybra z niej poszczeglne moduy serwera atwo je rozpozna, bo wszystkie zaczynaj si na mod_. W dystrybucji Fedora znajduje si mnstwo takich moduw, ale domylnie aktywowane s tylko niektre reszt moesz zainstalowa wybirczo na wasn rk, rwnie w programie pirut.

456

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Rczna instalacja serwera z pakietw RPM


Pakiet RPM z oprogramowaniem serwera Apache mona znale na jednej z pyt instalacyjnych
dystrybucji Fedora lub w repozytoriach serwera FTP projektu Fedora i wielu serwerw lustrzanych. Najnowsze wersje pakietu mona pobiera spod adresu http://download.fedora.redhat.com/
pub/fedora/linux/updates/7/; warto tam zaglda jak najczciej, aby zawsze dysponowa najnowsz wersj serwera. Aktualizowane pakiety RPM zawieraj zwykle wane poprawki, usuwajce znalezione bdy i eliminujce luki w zabezpieczeniach. Dlatego warto jak najszybciej
instalowa pojawiajce si uaktualnienia serwer bdzie odporniejszy na ataki.

Uwaga
Raportw o bezpieczestwie serwera naley szuka w witrynie projektu Apache. Trzeba w tym celu przej do strony http:// httpd.
apache.org/security_report.html, gdzie znajduj si odnoniki
do stron podsumowujcych wykryte luki w oprogramowaniu
serwera, osobno dla wersji 1.3, 2.0 i 2.2. Warto te przejrze archiwum artykuw rozsyanych przez listy dystrybucyjne witryny
serwera (http://httpd.apache.org/mail/). Interfejs WWW do tego archiwum znajduje si pod adresem http://httpd.apache.org/lists.html.
Wszyscy ciekawi dziaania najnowszych wersji pakietw mog
z serwera Fedory pobiera pakiety w wersji eksperymentalnej (http://
download.fedora.redhat.com/pub/fedora/linux/updates/testing/7/
oraz http://download.fedora.redhat.com/pub/fedora/linux/development/).
To dystrybucja rozwojowa, testowana jako baza dla kolejnego wydania dystrybucji Fedora. W przypadku serwera Apache instalacja
takiego eksperymentalnego pakietu moe by jednak uzaleniona
od zainstalowania sporej iloci pakietw dodatkowych, wymaganych do poprawnej instalacji serwera. W takim przypadku lepszym
wyjciem moe by pobranie pakietu zawierajcego kod rdowy
serwera (z podkatalogu SRPMS) i wykonanie samodzielnej kompilacji. W ten sposb eliminuje si zalenoci pomidzy pakietami.

Ostrzeenie
Naley unika instalowania pakietw nieprzetestowanych (eksperymentalnych) na serwerach produkcyjnych (to jest stanowicych podstaw dziaalnoci organizacji). Pakiety takie lepiej instalowa i testowa na wydzielonych z czci produkcyjnej wzach
systemu, najlepiej odczonych od sieci komputerowej!

457

Cz IV Fedora jako serwer

Po pobraniu pakietu RPM zawierajcego oprogramowanie serwera Apache mona pakiet w


zainstalowa, korzystajc z polecenia rpm:
# rpm -UvH httpd-nr_wersji.rpm

gdzie nr_wersji to numer pobranej wersji pakietu.


Do rcznej instalacji najprociej chyba jednak wykorzysta program yum i jego opcj instalacji
najnowszej wersji:
# yum update httpd

Pakiety RPM serwera Apache zawieraj pliki instalowane w nastpujcych katalogach:


/etc/httpd/conf/ katalog zawierajcy pliki konfiguracyjne serwera Apache, w tym

plik gwny, httpd.conf. Zawartoci tego pliku powicony bdzie punkt Konfigurowanie
serwera pod ktem wydajnoci szczytowej zamieszczony w dalszej czci rozdziau.
/etc/rc.d/ podkatalogi tego katalogu zawieraj skrypty uruchamiane w ramach rozru-

chu systemu. Pakiet serwera Apache zawiera instalowany w podkatalogu /etc/rc.d/init.d/


skrypt startowy o nazwie httpd, uruchamiajcy usug serwera WWW. Skrypt ten
wykorzystuje si do rcznego uruchamiania i zatrzymywania serwera z poziomu
wiersza polecenia. System wykorzystuje go za do automatycznego uruchomienia
usugi serwera WWW podczas rozruchu systemu.
/var/www/ tutaj instalowane s domylnie ikony i rysunki, programy CGI (ang.

Common Gateway Interface) oraz pliki HTML udostpniane przez serwer. Jeeli uytkownik zechce przechowywa udostpniane treci w innym katalogu, powinien wprowadzi
stosowne zmiany w konfiguracji serwera.
/var/www/manual/ w katalogu tym znajduje si kopia dokumentacji serwera

WWW w formacie HTML (instalowana z pakietu httpd-manual). Dokumentacj t


mona przeglda za porednictwem samego serwera, przechodzc na stron http://
localhost/manual/.
/usr/share/man/ rozprowadzany w dystrybucji Fedora pakiet RPM serwera Apache

zawiera rwnie dokumentacj w formacie podrcznika systemowego man. Strona


podrcznika dla polecenia httpd znajduje si np. w sekcji 8 podrcznika.
/usr/sbin/ w tym katalogu umieszczane s pliki wykonywalne serwera. Chodzi za-

rwno o plik wykonywalny programu serwera, jak i pliki programw pomocniczych.


/usr/bin/ tu instalowane s niektre z narzdzi wchodzcych w skad pakietu serwera;

jednym z takich narzdzi jest program htpasswd, sucy do generowania plikw hase
serwera.
/var/log/httpd/ katalog plikw dziennika serwera Apache. Domylnie wanie w tym

katalogu tworzone s dwa najwaniejsze dla administratora serwera pliki: access_log


oraz error_log. Zestaw plikw dziennika mona uzupeni o pliki, w ktrych umieszczane s dodatkowe informacje o dziaaniu serwera. Dodatkowe informacje znajduj si
w podrozdziale Rejestrowanie.

458

Rozdzia 17. Zarzdzanie serwerem WWW Apache

/usr/src/redhat/SOURCES/ katalog, w ktrym moe znajdowa si archiwum progra-

mu tar zawierajce kod rdowy serwera Apache wraz z ewentualnymi atami. Katalog
tworzony jest po zainstalowaniu pakietu kodu rdowego (SRPM) serwera Apache.
Uruchomiony serwer Apache tworzy te w podkatalogu /var/run/ plik httpd.pid, zawierajcy
identyfikator procesu serwera Apache.

Uwaga
Przy aktualizacji serwera polegajcej na instalacji nowszej wersji
pakietu RPM nie naley obawia si nadpisania plikw konfiguracyjnych biecej wersji. Pliki te s przez program instalacyjny
zachowywane z nazwami rozszerzonymi przyrostkiem .rpmnew
(np. plik httpd.conf otrzyma nazw httpd.conf.rpmnew).

Samodzielna kompilacja kodu rdowego serwera


Kod rdowy serwera Apache mona uzyska na kilka sposobw. W ramach dystrybucji Fedora dostpne s pakiety SRPM zawierajce kod rdowy Apache wraz z pakietami dostosowujcymi ten kod do specyfiki dystrybucji. Najnowsze, stabilne wersje kodu rdowego serwera Apache dla dystrybucji Fedora mona wic pobra z repozytorium dostpnego w witrynie
http://fedora.redhat.com po klikniciu odnonika Download. Po zainstalowaniu jednego z takich pakietw w podkatalogu /usr/src/redhat/SOURCES/ pojawi si archiwum programu tar
zawierajce kod rdowy serwera oraz zestaw at.
Kod rdowy mona te pobra bezporednio ze strony http://www.apache.org/. W czasie przygotowywania tego wydania najnowsza dostpna w ten sposb wersja oprogramowania serwera nosia
numer 2.2.6 i zajmowaa ok. 6 MB (spakowana jako .tar.gz; w archiwum .tar.bz2 zajmuje okoo
4,5 MB). W gazi 1.3 najnowsz wersj bya wersja 1.3.39 (2,4 MB), a ga 2.0 doczekaa si wydania 2.0.61 (5,8 MB). Co prawda, wiele witryn, gwnie ze wzgldu na zgodno oprogramowania,
wci uywa starszych wersji serwera, jednak wiele stron obsugiwanych jest przez wersje najnowsze.
Po zdobyciu pliku archiwum programu tar naley rozpakowa go do dowolnie wybranego katalogu tymczasowego, np. /tmp. Po rozpakowaniu archiwum w katalogu tymczasowym pojawi si
katalog o nazwie httpd-nr_wersji (bd apache_nr_wersji w przypadku wersji 1.3), np. httpd-2.2.6.

Wskazwka
Po rozpakowaniu archiwum kodu rdowego powstaje katalog zawierajcy kod rdowy, a w nim zwyczajowo ju znajduj si pliki
README oraz INSTALL. Warto zapozna si z treci tych plikw
przed prb kompilacji i instalacji oprogramowania.

459

Cz IV Fedora jako serwer

Konfiguracja kodu rdowego za pomoc skryptu configure


Aby uatwi sobie proces kompilacji kodu rdowego serwera Apache, mona skorzysta ze
znajdujcego si w katalogu gwnym kodu rdowego skryptu configure. Po okreleniu
w wierszu wywoania skryptu opcji --prefix mona okreli katalog docelowy instalacji; domylne jest to katalog /usr/local/apache/:
# ./configure --prefix=/sciezka_dostepu_do_katalogu

Wynikiem dziaania skryptu bdzie plik Makefile, ktry mona wykorzysta do kompilacji
kodu serwera.
Kolejnym krokiem jest wpisanie polecenia make, inicjujcego kompilacj. Po zakoczeniu kompilacji naley dysponujc uprawnieniami uytkownika root wpisa polecenie make install.
Spowoduje to zainstalowanie serwera w systemie. Po zakoczeniu instalacji mona ju przystpi
do edycji plikw konfiguracyjnych, patrz podrozdzia Ustawienia konfiguracyjne serwera.

Wskazwka
Bezpieczniejsz metod instalacji nowej wersji oprogramowania
serwera Apache jest skorzystanie z polecenia ln i utworzenie za
jego pomoc dowiza symbolicznych (wymienionych w punkcie
Rczna instalacja serwera z pakietw RPM) do nowo skompilowanych plikw. Chodzi o to, e domylne katalogi instalacyjne
przy samodzielnej kompilacji rni si od katalogw zdefiniowanych w pakiecie RPM. Rozbieno w pooeniu katalogw instalacji moe za uniemoliwi automatyczne uruchomienie serwera
za porednictwem skryptu startowego.
Warto te przed zainstalowaniem nowej wersji oprogramowania
serwera wykona kopie zapasowe wszystkich waniejszych plikw
konfiguracyjnych (np. caego katalogu /etc/httpd), a nastpnie skorzysta z polecenia rpm w celu usunicia z systemu oprogramowania serwera instalowanego z pakietu RPM. Wtedy mona bezpiecznie zainstalowa i przetestowa now wersj, a w razie
koniecznoci w prosty sposb przywrci poprzedni stan systemu
i poprzednie ustawienia konfiguracji serwera.
Przede wszystkim za warto korzysta z pakietw (czy to plikw
skompilowanych, czy te pakietw kodu rdowego) RPM
Warto pamita, e przy samodzielnej kompilacji i instalacji kodu
rdowego nie istnieje opcja usunicia instalacji serwera z poziomu
narzdzi zarzdzajcych pakietami!

460

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Jak szybko uruchomi serwer Apache?


W dystrybucji Fedora mona skonfigurowa i uruchomi serwer Apache, a nastpnie
przetestowa jego dziaanie, wykonujc tylko dwie czynnoci. Najpierw jednak trzeba
upewni si, czy serwer jest zainstalowany. Mona zaznaczy serwer do instalacji podczas instalowania systemu albo pniej zainstalowa serwer z odpowiedniego pakietu
RPM (w tym ostatnim przypadku warto zajrze do rozdziau 7., w ktrym opisalimy
m.in. sposb korzystania z polecenia rpm).
Nastpnie naley z uprawnieniami uytkownika root utworzy wasn stron domow,
umieszczajc plik index.html w podkatalogu /var/www/html/. Wczeniej warto wykona
kopi zapasow pierwotnej strony (najlepiej caego katalogu www), aby mona byo
przywrci poprzedni stan systemu, kiedy okae si to konieczne.
Dalej wystarczy uruchomi serwer (z uprawnieniami uytkownika uprzywilejowanego),
korzystajc z nastpujcego polecenia:
# service httpd start

Mona te skorzysta ze skryptu startowego serwera, umieszczonego w katalogu


/etc/rc.d/init.d:
# /etc/rc.d/init.d/httpd start

Nastpnie mona ju uruchomi dowoln przegldark WWW i sprawdzi, czy pod adresem localhost (albo innym, zgodnym z nazw wza danego komputera) albo adresem IP
danego komputera dostpna jest utworzona wczeniej strona HTML. Dla przykadu,
zakadajc wykorzystanie przegldarki links, uytkownik powinien wykona nastpujce polecenie:
# links http://localhost/

Ze wzgldw bezpieczestwa nie naley uruchamia serwera w imieniu uytkownika


root, jeli komputer jest podczony do internetu albo choby do sieci wewntrznej
(intranet) danej organizacji. Na szczcie, Apache dziaa, niezalenie od sposobu uruchomienia, w imieniu uytkownika i grupy apache (definiuje to ustawienie parametru
User oraz parametru Group pliku konfiguracyjnego serwera). Mimo tych rodkw
ostronoci, zarzdzanie i uruchamianie serwera powinno odbywa si w imieniu
uytkownika apache, zdefiniowanego w pliku /etc/passwd nastpujcym wpisem:
apache:x:48:48:Apache:/var/www:/sbin/nologin

Jeli w oknie przegldarki pojawia si odpowiednia strona, mona uaktywni na stae


usug Apache, korzystajc z narzdzia setup bd programu ntsysv. W obu tych
programach usuga serwera Apache wystpuje jako httpd.

461

Cz IV Fedora jako serwer

Pooenie plikw serwera Apache po skompilowaniu i zainstalowaniu


Pliki serwera, kiedy jest instalowany z pakietu kodu rdowego, umieszczane s w rozmaitych
podkatalogach domylnego katalogu instalacyjnego (/usr/local/apache) bd dowolnego katalogu wskazanego przez opcj --prefix. W wersjach poprzedzajcych 1.3.4 pliki byy domylnie
rozmieszczane w katalogu /usr/local/etc/httpd.
Oto lista podkatalogw (wraz z krtkim opisem zawartoci) katalogu instalacyjnego serwera
Apache kompilowanego samodzielnie z kodu rdowego.
/usr/local/apache/conf/ katalog zawierajcy rne pliki, a wrd nich plik konfi-

guracyjny serwera Apache, httpd.conf. O plikach konfiguracyjnych powiemy wicej


w podrozdziale Edycja pliku httpd.conf.
/usr/local/apache/ zawiera m.in. podkatalogi cgi-bin, icons oraz htdocs zawierajce

z kolei odpowiednio: programy CGI, standardowe ikony oraz domylnie instalowane dokumenty HTML.
/usr/local/apache/bin/ katalog plikw wykonywalnych serwera.
/usr/local/apache/logs/ katalog plikw dziennika. Domylnie serwer tworzy dwa

pliki dziennika: access_log oraz error_log, ale administrator moe zdefiniowa dowoln liczb wasnych plikw dziennika, zawierajcych rozmaite informacje (patrz
podrozdzia dotyczcy rejestrowania dziaania serwera). Domylna lokalizacja plikw
dziennika serwera Apache w dystrybucji Fedora to /var/log/httpd.

Uruchamianie i zatrzymywanie
serwera Apache
Zakadamy w tym momencie, e w systemie zainstalowany jest serwer Apache, dysponujcy
domyln konfiguracj. Serwer Apache powinien by uruchamiany w ramach rozruchu systemu,
jako jedna z usug systemowych, uruchamiana po zakoczeniu konfigurowania sieci i ewentualnych zapr sieciowych. Sposb konfigurowania rozruchu systemu opisany zosta w rozdziale 11.,
Automatyzacja pracy.
Czas na pierwsze uruchomienie serwera. W poniszych punktach pokazany jest zarwno sposb
rcznego uruchomienia i zatrzymania serwera Apache, jak i sposb skonfigurowania systemu
Fedora do automatycznego uruchamiania usugi serwera w fazie rozruchu systemu.

Rczne uruchamianie serwera Apache


Serwer Apache moe zosta uruchomiony rcznie, poleceniem wykonanym z poziomu konsoli
lub okna terminala i wymagajcym dysponowania uprawnieniami uytkownika root. Program
serwera, o nazwie httpd, rozpoznaje szereg opcji wywoania, za ktrych porednictwem mona

462

Rozdzia 17. Zarzdzanie serwerem WWW Apache

ustawia wartoci niektrych parametrw, np. okreli lokalizacj pliku konfiguracji. Plik
wykonywalny serwera Apache rozpoznaje rwnie opcje innego rodzaju, umoliwiajce selektywne interpretowanie pliku konfiguracyjnego, np. przez wskazanie innego ni zdefiniowany
w konfiguracji pliku dziennika. Opcja -v inicjuje wydruk wersji programu. Podobna opcja, -V,
pokazuje wydruk rozszerzony, uwzgldniajcy opcje, z jakimi skompilowany zosta plik wykonywalny serwera.
Sposb uruchamiania serwera i lista dostpnych opcji wywietlana jest po uruchomieniu serwera z opcj -h (przy zaoeniu, e polecenie uruchamiane jest przez uytkownika root):
# httpd -h
Usage: httpd [-D name] [-d directory] [-f file]
[-C "directive"] [-c "directive"]
[-k start|restart|graceful|graceful-stop|stop]
[-v] [-V] [-h] [-l] [-L] [-t] [-S]
Options:
-D name
: define a name for use in <IfDefine name> directives
-d directory
: specify an alternate initial ServerRoot
-f file
: specify an alternate ServerConfigFile
-C "directive"
: process directive before reading config files
-c "directive"
: process directive after reading config files
-e level
: show startup errors of level (see LogLevel)
-E file
: log startup errors to file
-v
: show version number
-V
: show compile settings
-h
: list available command line options (this page)
-l
: list compiled in modules
-L
: list available configuration directives
-t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings)
-S
: a synonym for -t -D DUMP_VHOSTS
-t -D DUMP_MODULES : show all loaded modules
-M
: a synonym for -t -D DUMP_MODULES
-t
: run syntax check for config files

Wrd pozostaych opcji znajduje si opcja wywietlania moduw, czyli wydzielonych elementw serwera. Opcje te zwane s dyrektywami konfiguracyjnymi i steruj dziaaniem poszczeglnych moduw. Serwer Apache dysponuje okoo pidziesicioma moduami dynamicznymi, czyli obiektami programowymi adowanymi przez serwer wtedy, kiedy potrzebny
jest zawarty w nich kod obsugujcy pewn funkcj serwera.
Niezwykle przydatna opcja -t pozwala na sprawdzenie poprawnoci skadniowej pliku konfiguracyjnego serwera. Zawsze po wprowadzeniu zmian w konfiguracji warto sprawdzi, czy nie
naruszyy one poprawnoci pliku. Kontrola taka jest tym waniejsza, e bd pliku konfiguracyjnego moe spowodowa zaamanie serwera lub jego bdne dziaanie.

463

Cz IV Fedora jako serwer

Uwaga
Przy kompilacji i instalacji Apache z kodu rdowego (a nie z rozprowadzanych z dystrybucj Fedora pakietw RPM) naley uruchamia serwer rcznie, z poziomu wiersza polece, korzystajc
z uprawnie uytkownika root (jak przy testowaniu serwera). Ma
to dwie przyczyny:
Serwer korzysta domylnie z portu o numerze 80 (domylny
port usugi HTTP), a tylko uytkownik uprzywilejowany moe
uruchamia aplikacje okupujce porty o numerach mniejszych od 1024.
Jedynie procesy bdce wasnoci uytkownika root mog
zmienia wasne identyfikatory UID i GID (za serwer Apache po uruchomieniu i zajciu portu nasuchu zmienia te
identyfikatory na okrelone w pliku konfiguracyjnym
serwera). Kiedy Apache zostanie uruchomiony przez innego
uytkownika, serwer nie bdzie mg odrzuci uprawnie
tego uytkownika przez zmian identyfikatora UID.
Naley te zauway, e cho wikszo prezentowanych dalej przykadw pokazuje uruchamianie serwera Apache w imieniu uytkownika root, to taki tryb uruchamiania naley stosowa wycznie w fazie testw. Waciwym trybem uruchamiania serwera jest
uruchamianie go w ramach rozruchu systemu.

Skrypt startowy /etc/rc.d/init.d/httpd


Dystrybucja Fedora steruje uruchamianiem i zatrzymywaniem usug, w tym usugi serwera
Apache za porednictwem skryptw znajdujcych si w katalogu /etc/rc.d/init.d. Gwny
skrypt sterujcy dziaaniem serwera Apache to /etc/rc.d/init.d/httpd; skrypt ten realizuje swoje
zadania za porednictwem programu apachectl, rozprowadzanego wraz z programem serwera
Apache.
Skrypt /etc/rc.d/init.d/httpd wykorzystuje do sterowania dziaaniem serwera nastpujce (m.in.)
opcje wywoania:
start opcja inicjujca uruchomienie serwera w czasie rozruchu systemu. Skrypt

z t opcj moe te wykorzystywa uytkownik root w celu rcznego uruchomienia


serwera.
stop opcja powodujca zatrzymanie serwera. Naley korzysta z niej zamiast po-

lecenia kill.

464

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Uwaga
Plik /etc/rc.d/init.d/httpd to skrypt powoki wykorzystywany do
uruchamiania i zatrzymywania serwera w ramach rozruchu
i zatrzymywania systemu; nie naley myli go z plikiem wykonywalnym serwera, instalowanym w katalogu /usr/sbin. Plik
/usr/sbin/httpd to plik wykonywalny programu serwera (czyli serwer
jako taki), a skrypt /etc/rc.d/init.d/httpd to jedynie skrypt powoki
odwoujcy si do programu sterujcego apachectl. Opis niektrych innych usug uruchamianych za porednictwem skryptw
katalogu /etc/rc.d/init.d znajduje si w rozdziale 11.

reload opcja inicjujca wysanie do procesu serwera sygnau HUP, co zmusza serwer

do ponownego odczytania zawartoci plikw konfiguracyjnych po ich modyfikacji.


restart opcja ta jest wygodn metod zatrzymywania i nastpnie bezzwocznego

uruchamiania procesu serwera WWW. Jeeli serwer nie dziaa, w wyniku tego polecenia
zostanie uruchomiony.
condrestart opcja dziaajca podobnie jak opcja restart, tyle e w przypadku,

kiedy serwer akurat nie dziaa, nie zostanie uruchomiony.


status skrypt po okreleniu tej opcji zwraca cig zawierajcy wykaz identyfikatorw

PID dziaajcych w systemie procesw serwera.


Aby np. sprawdzi biecy stan serwera, naley wykona polecenie:
# /etc/rc.d/init.d/httpd status

co spowoduje wywietlenie komunikatu podobnego do poniszego:


httpd (pid 16631 16630 16629 16628 16627 16626 16625 16624 16623) jest
uruchomiony...

Cig ten sygnalizuje, e serwer dziaa; w rzeczy samej, w pamici znajduje si 9 egzemplarzy
procesu serwera.
Poza wymienionymi wczeniej opcjami, skrypt httpd rozpoznaje jeszcze cztery:
help wywietla list opcji uruchomienia programu httpd (skrypt przekazuje wy-

woanie do programu /usr/sbin/httpd).


configtest prosty test konfiguracji serwera, ograniczajcy si do zwrcenia ko-

munikatu Syntax OK w przypadku poprawnoci konfiguracji; identyczny test mona


wykona, uruchamiajc program serwera z opcj -t:
# httpd -t

465

Cz IV Fedora jako serwer

fullstatus wywietla raport o stanie serwera.


graceful opcja podobna do parametru restart, ale zatrzymanie serwera z t

opcj nie powoduje zerwania bieco obsugiwanych pocze.

Wskazwka
Po wprowadzeniu dowolnych zmian w konfiguracji serwera naley
skorzysta z opcji reload skryptu. Pozwala to na zaoszczdzenie czasu potrzebnego na zatrzymanie i ponowne uruchomienie serwera.

Sterowanie serwerem Apache polecenie service


Zamiast wywoania skryptu /etc/rc.d/init.d/httpd mona zastosowa polecenie service i za
jego porednictwem uruchamia, zatrzymywa i przeadowywa usug Apache. Polecenie
service wykorzystuje si w poczeniu z nazw usugi (wedug nazw skryptw uruchomieniowych umieszczonych w katalogu /etc/rc.d/init.d) i ewentualnej opcji:
# service nazwa_usugi opcja

Aby np. przeadowa program serwera Apache za porednictwem polecenia service, naley
skonstruowa nastpujce polecenie:
# service httpd restart

Spowoduje to zatrzymanie i ponowne uruchomienie serwera, jeli ten by ju uruchomiony,


bd samo jego uruchomienie, jeli wczeniej nie dziaa.

Sterowanie serwerem Apache polecenie chkconfig


Polecenie chkconfig stanowi dostpny z poziomu wiersza powoki interfejs skryptw uruchomieniowych usug dystrybucji Fedora. Polecenie moe zosta wykorzystane do okrelania,
ktre z usug bd uruchamiane, przeadowywane i zatrzymywane w okrelonych stanach systemu
(przy rozruchu systemu, jego przeadowywaniu bd zatrzymywaniu) i poszczeglnych poziomach uruchomieniowych, np. w trybie pojedynczego uytkownika (poziom 0), trybie sieciowym
(poziom 3.) i trybie graficznym (poziom 5.).
Zatem w celu przejrzenia biecych ustawie systemu Fedora naley zajrze do pliku /etc/inittab
i odszuka w nim okrelenie domylnego poziomu uruchomieniowego:
# grep id: /etc/inittab
id:3:initdefault:

Taki wpis umieszczony w pliku /etc/inittab informuje, e system ma uruchamia si w trybie konsoli (bez uruchamiania serwera X), z penym dostpem do sieci (poziom uruchomieniowy 3.).

466

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Polecenie chkconfig mona wykorzysta do podejrzenia zdefiniowanego dziaania serwera


Apache na poszczeglnych poziomach uruchomieniowych systemu:
# chkconfig --list | grep httpd | sed -e 's/czone/./g'
httpd
0:wy.
1:wy.
2:wy.
3:wy.
4:wy.

5:wy.

6:wy.

Z powyszego wynika, e serwer Apache jest wyczony na wszystkich poziomach uruchomieniowych, w tym na poziomach 3. i 5. (to gwne poziomy uruchomieniowe innych raczej si nie
wykorzystuje; mona jeszcze korzysta z poziomu 4., dostosowujc go do wasnych potrzeb).
W celu uaktywnienia rozruchu usugi serwera Apache przy uruchamianiu systemu na 3. poziomie uruchomieniowym naley wykona nastpujce polecenie:
# chkconfig --level 3 httpd on

Do zweryfikowania nowych ustawie mona ponownie wykorzysta polecenie chkconfig:


# chkconfig --list | grep httpd | sed -e 's/czone/./g'
httpd
0:wy.
1:wy.
2:wy.
3:w.
4:wy.

5:wy.

6:wy.

Aby uaktywni uruchamianie serwera Apache rwnie wtedy, kiedy system wchodzi na 5.
poziom uruchomieniowy, czyli uytkownik loguje si do systemu za porednictwem interfejsu
graficznego, naley znw skorzysta z polecenia chkconfig, opcji level i on, ale tym razem
trzeba okreli poziom numer 5:
# chkconfig --level 5 httpd on

Ponowna weryfikacja stanu usug systemowych da nastpujce rezultaty:


# chkconfig --list | grep httpd | sed -e 's/czone/./g'
httpd
0:wy.
1:wy.
2:wy.
3:w.
4:wy.

5:w.

6:wy.

W celu wycofania usugi serwera Apache z danego poziomu uruchomieniowego naley skorzysta z opcji off polecenia chkconfig.

Graficzny interfejs konfiguracji


serwera Apache
Pewne podstawowe aspekty dziaania serwera Apache mona konfigurowa za porednictwem
narzdzia dziaajcego w rodowisku graficznym, a noszcego nazw system-config-httpd
(instalowanego z pakietu RPM o tej samej nazwie). Narzdzie to stanowi wygodny rodek konfiguracji elementw, takich jak nazwa uytkownika i grupy serwera Apache, pooenie pliku zawierajcego identyfikator procesu serwera czy ustawienia wpywajce na wydajno obsugi da
(np. maksymalna liczba wspbienych pocze) wszystko bez potrzeby rcznego wprowadzania dyrektyw do pliku konfiguracyjnego.

467

Cz IV Fedora jako serwer

Ostrzeenie
Korzystajc z narzdzia system-config-httpd, nie naley podejmowa prb rcznego ingerowania w zawarto pliku konfiguracyjnego httpd.conf. Wszelkie zmiany wprowadzone rcznie zostan
nadpisane przy nastpnym uruchomieniu graficznego programu
konfiguracji.

Program ten uruchamia si, wybierajc z menu GNOME pozycje System/Administracja/Ustawienia


serwera/HTTP; mona te uruchomi program rcznie, wpisujc w oknie terminala polecenie:
$ system-config-httpd &

Po naciniciu klawisza Enter (bd wybraniu stosownej pozycji menu) wywietlony zostanie monit
o podanie hasa. Po wprowadzeniu hasa na ekranie wywietlone zostanie okno gwne programu,
widoczne na rysunku 17.1.
Rysunek 17.1.
Gwne okno
programu
system-config-httpd,
dajcego moliwo
wygodnej
konfiguracji
podstawowych
elementw
serwera WWW

W ramach zakadki Gwne mona ustawi nazw serwera, poda adres administratora witryny
oraz zdefiniowa numer portu, pod ktrym Apache bdzie prowadzi nasuch w oczekiwaniu
na napywajce dania. Tutaj mona te ustawi nasuch na dodatkowych portach, dla potrzeb
serwerw wirtualnych.

Konfigurowanie wzw wirtualnych


W ramach zakadki Hosty wirtualne mona definiowa cechy waciwe dla kadego z serwerw
wirtualnych. Lista nazw owych serwerw wywietlana jest na licie w kolumnie Nazwa. Po
wskazaniu wza wirtualnego i naciniciu przycisku Edytuj wywouje si okno dialogowe
ustawie wza wirtualnego, prezentowane na rysunku 17.2. Najbardziej podstawowe ustawienia
wza wirtualnego zebrane s na zakadce Opcje oglne.

468

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Rysunek 17.2.
Okno dialogowe
Waciwoci
hosta wirtualnego
programu
system-config-httpd
daje dostp
do szeregu opcji
konfigurujcych
wzy wirtualne
serwera Apache

Po wywoaniu zakadki Ustawienia strony w panelu opcji wywietlane s charakterystyczne dla


danego wza wirtualnego parametry, takie jak lista plikw indeksu katalogu zwracanych do
klienta w obliczu braku w katalogu domylnego pliku indeksowego, index.html.
Zakadka SSL daje dostp do ustawie wczajcych i wyczajcych komunikacj za porednictwem protokou SSL, okrelajcych ustawienia certyfikatw i definiujcych nazwy i pooenie
plikw dziennikw moduu zawiadujcego komunikacj SSL. Zakadka Dziennik grupuje opcje
konfigurujce pooenie pliku dziennika bdw oraz dziennika odwoa i pozwala na zdefiniowanie poziomu rejestrowania, czyli iloci i rodzaju informacji trafiajcych do plikw dziennika.
Opcje kategorii rodowisko su do konfigurowania moduu mod_env, wykorzystywanego do
przekazywania zmiennych rodowiskowych do programw CGI.

Konfigurowanie serwera
Zakadka Serwer w oknie gwnym programu system-config-httpd, ktrej zawarto widoczna jest na rysunku 17.3, pozwala na konfigurowanie takich aspektw dziaania serwera jak
nazwa i pooenie pliku blokady oraz pliku identyfikatora procesu serwera. W obu przypadkach znakomicie sprawdzaj si ustawienia domylne. Zakadka pozwala poza tym na wskazanie
katalogu, w ktrym ewentualnie zostanie umieszczony zrzut pamici procesu serwera w przypadku
jego bdnego zakoczenia.
Na tej zakadce mona wreszcie wskaza uytkownika i grup, w ktrych imieniu uruchamiany
bdzie serwer Apache. Jak ju wspominalimy, ze wzgldw bezpieczestwa najlepiej uruchamia
serwer Apache w imieniu uytkownika apache i czonka grupy apache (tak, jak to jest ustawione
domylnie).

469

Cz IV Fedora jako serwer

Rysunek 17.3.
Zakadka Server
programu
system-config-httpd

Konfigurowanie serwera
pod ktem wydajnoci szczytowej
Opcje zakadki Dostrajanie wydajnoci su do takiego dostosowywania konfiguracji serwera,
ktre zapewni maksymaln wydajno. Opcje tej zakadki pozwalaj na ustawienie maksymalnej liczby pocze, limitu czasu podtrzymania poczenia oraz liczby da obsugiwanych
w ramach jednego poczenia. Ustawiajc ten ostatni parametr, naley pamita, e kade odebrane przez serwer poczenie obsugiwane jest za porednictwem oddzielnego egzemplarza procesu serwera. Kady z takich egzemplarzy zajmuje pewn ilo zasobw systemu, w tym zasobw
najcenniejszych, czyli czasu procesora i pamici operacyjnej. Kolejne podpowiedzi dotyczce
zwikszania wydajnoci serwera WWW zostay umieszczone w rozdziale 31., Strojenie wydajnoci.

Ustawienia konfiguracyjne serwera


W tym momencie, jeli, ledzc tekst, wykonujesz prezentowane w nim czynnoci, powiniene
dysponowa dziaajcym serwerem WWW; serwer ten nie musi jednak odpowiada w peni
Twoim wymaganiom. By moe nieodpowiednia jest np. lokalizacja plikw strony WWW
udostpnianej przez serwer. Std w tym podrozdziale pokazane zostan podstawy konfiguracji
serwera.
Konfiguracja sterujca dziaaniem serwera Apache zapisywana jest w pojedynczym pliku o nazwie httpd.conf, umieszczonym w podkatalogu /etc/httpd/conf/. Parametry zdefiniowane w tym
pliku steruj niemal wszystkimi aspektami dziaania serwera, pozwalajc na wskazanie katalogu
dokumentw serwera (domylnie /var/www), okrelenie nazwy pliku przechowujcego identyfikator procesu serwera (domylnie /etc/httpd/run/httpd.pid) czy nawet limitu czasu odpowiedzi
serwera (domylnie 300 sekund). Serwer odczytuje owe parametry przy uruchamianiu (albo
przeadowywaniu) usugi. Mona te wymusi rcznie ponowny odczyt pliku konfiguracyjnego,

470

Rozdzia 17. Zarzdzanie serwerem WWW Apache

korzystajc z polecenia /etc/rc.d/init.d/httpd reload. Moliwo ta przydaje si po


wprowadzeniu zmian w pliku konfiguracyjnym (sposb przeadowywania serwera omawiany
by w podrozdziale Uruchamianie i zatrzymywanie serwera Apache).

Dyrektywy konfiguracyjne
Konfiguracj dziaania serwera definiuje si za porednictwem dyrektyw konfiguracyjnych,
bdcych swego rodzaju poleceniami i opcjami dla procesu serwera. Dyrektywy instruuj serwer o koniecznoci uruchomienia okrelonych funkcji i o parametrach dziaania serwera (np.
wskazuj pooenie plikw wanych dla poprawnego dziaania serwera). Obecnie Apache rozpoznaje blisko 300 dyrektyw konfiguracyjnych; s one definiowane w pliku konfiguracji przy
uyciu nastpujcej skadni:
dyrektywa opcja opcja ...

Kada dyrektywa definiowana jest w osobnym wierszu pliku konfiguracyjnego. Niektre z dyrektyw jedynie definiuj wartoci pewnych parametrw, np. przypisuj nazw pliku, podczas gdy
inne pozwalaj na sterowanie dziaaniem funkcji serwera. Niektre z dyrektyw specjalnych,
zwanych blokowymi, zapisuje si podobnie jak znaczniki jzyka HTML. Dyrektywy blokowe
ujmowane s w znaki nawiasw ostrych, np.: <Dyrektywa>. Dyrektywa blokowa ogranicza
zwykle ca grup dyrektyw, stosowanych np. wycznie do wybranego, okrelonego w nagwku dyrektywy katalogu dokumentw serwera:
<Directory katalog/w/drzewie/dokumentw/serwera>
dyrektywa opcja opcja
dyrektywa opcja opcja
...
</Directory>

Dyrektywy blokowe ograniczane s znacznikami podobnymi do tych, ktre znamy z jzyka


HTML, wic kocz si wierszem </Directory>.

Wskazwka
Po zainstalowaniu i uruchomieniu serwera Apache (koniecznie
wraz z pakietem dokumentacji, httpd-manual) indeks dyrektyw
mona znale, odwoujc si do strony http://localhost//manual/
mod/directives.html.

Edycja pliku httpd.conf


Wikszo ustawie umieszczanych w domylnej wersji pliku konfiguracyjnego to ustawienia
dziaajce poprawnie zwaszcza wtedy, jeeli serwer zosta zainstalowany w domylnej lokalizacji i nie ma suy do obsugi zada niestandardowych. Mona wrcz przyj zasad, e jeeli
dana dyrektywa nie ma dla nas jasnego znaczenia, najlepiej zostawi j w postaci domylnej.

471

Cz IV Fedora jako serwer

W kolejnych podpunktach opisane zostan te dyrektywy pliku konfiguracyjnego, ktre niekiedy


warto dostosowa do wasnych potrzeb.

ServerRoot
Dyrektywa ServerRoot definiuje bezwzgldn ciek do gwnego katalogu serwera. Dyrektywa ta informuje serwer o pooeniu wszystkich plikw konfiguracyjnych i plikw zasobw.
Wiele z tych zasobw wskazywanych jest w plikach konfiguracyjnych znajdujcych si w podkatalogach katalogu ServerRoot.
W przypadku instalacji serwera z pakietu RPM dyrektywa ServerRoot powinna wskazywa
katalog /etc/httpd. W przypadku samodzielnej kompilacji serwera wartoci dyrektywy powinna
by cieka /usr/local/apache/ bd dowolna inna cieka zdefiniowana przy konfiguracji
kodu rdowego serwera.

Listen
Dyrektywa Listen okrela numer portu, pod ktrym serwer bdzie prowadzi nasuch w oczekiwaniu na dania nawizania poczenia. Domylnie portem tym jest port o numerze 80, standardowym numerze portu usugi HTTP. Mona jednak przypisa serwer do dowolnego innego numeru portu mona np. uruchomi serwer testowy, ktry nie powinien by dostpny
dla osb czcych si przypadkowo. Oczywicie, zmiana numeru portu nie ma nic wsplnego
z zabezpieczeniem serwera przed dostpem z zewntrz! O rzeczywistych metodach zabezpieczania serwera WWW mona poczyta w podrozdziale Uwierzytelnianie i kontrola dostpu.

User oraz Group


Dyrektywy User oraz Group powinny by ustawione na numer identyfikatora uytkownika
(UID) oraz grupy (GID), na ktrych rzecz uruchamiany jest serwer. W dystrybucji Fedora naley ow dyrektyw ustawi tak, aby serwer Apache nie dysponowa zbyt szerokimi uprawnieniami w sensie dostpu do systemu plikw. Domylnie dyrektywy te wskazuj uytkownika
apache, specjalnego uytkownika serwera Apache. Jeeli zachodzi potrzeba ustawienia innych
numerw UID i GID, naley pamita, e serwer dziaa z uprawnieniami wskazanego uytkownika, co oznacza, e w przypadku naruszenia bezpieczestwa czy to serwera, czy tworzonych
samodzielnie skryptw CGI, ewentualne szkody bd proporcjonalne do uprawnie procesu
serwera WWW. Jeli serwer dziaa w imieniu uytkownika root albo innego uytkownika
uprzywilejowanego, intruz, ktry, wykorzystujc luk w zabezpieczeniach, przejmie kontrol
nad serwerem, bdzie mia naprawd szerokie pole do popisu. Analizujc potencjalne ryzyko,
naley zawsze zakada zoliwo uytkownika i szkody, jakie powstan w wyniku wykonania
przez niego polecenia np. rm -rf /. Jeli uytkownik bdzie dysponowa uprawnieniami uytkownika root, polecenie to usunie wszystkie pliki systemu. Taka wizja powinna wystarczajco
przekona do ograniczania uprawnie serwera.
Zamiast okrela wartoci dyrektyw User i Group za porednictwem nazw uytkownika
i grupy, mona przypisa do nich wartoci liczbowe UID i GID. W takim przypadku naley si

472

Rozdzia 17. Zarzdzanie serwerem WWW Apache

upewni, czy podane numery odpowiadaj dokadnie wybranemu uytkownikowi i grupie; naley
te pamita o poprzedzeniu numeru znakiem kratki (#).
Oto przykad okrelania uytkownika i grupy serwera za porednictwem nazwy:
User apache
Group apache

Identyczny efekt mona osign, okrelajc wprost numery UID i GID:


User #48
Group #48

Wskazwka
Jeeli w systemie znajduje si wpis uytkownika innego ni root,
o numerach UID i GID rwnych 0, oznacza to, e system jest naduywany przez zoliwego, a moe wrcz gronego uytkownika.

ServerAdmin
Dyrektywa ServerAdmin powinna wskazywa adres poczty elektronicznej administratora
serwera WWW; warto, aby by to prawdziwy, poprawny adres poczty elektronicznej (np.
webmaster@gnulix.org), poniewa bdzie udostpniany odwiedzajcym stron w przypadku
bdu dziaania serwera.

ServerName
Dyrektywa ServerName okrela nazw wza zwracan przez serwer. Naley ustawi j na
pen, kwalifikowan nazw domenow, np. www.moja.domena, a nie po prostu www. Ma to
szczeglne znaczenie, kiedy serwer dostpny jest spoza sieci lokalnej.
Dyrektywy tej nie trzeba ustawia, jeli serwer ma zwraca nazw zgodn z nazw domenow
wza, na ktrym dziaa. Kiedy brakuje wartoci tej dyrektywy, serwer okreli nazw samodzielnie,
realizujc zapytanie odwrotnego DNS. Czsto jednak lepiej prezentowa odwiedzajcym przyjazn wersj nazwy domenowej, np. www.moja.domena. Tak czy inaczej warto ServerName
powinna by prawidow nazw z punktu widzenia DNS danej sieci. Jeeli wic zarzdzanie serwerem DNS realizowane jest przez osoby trzecie, naley je poprosi o uzupenienie bazy o nazw okrelon w dyrektywie ServerName.

DocumentRoot
Jest to dyrektywa wskazujca ciek (bezwzgldn) do drzewa dokumentw serwera, czyli do
gwnego katalogu, z ktrego pochodz udostpniane przez serwer pliki. Domylnie katalogiem tym jest /var/www/html. W przypadku samodzielnej kompilacji i instalacji kodu rdowego serwera dyrektywa ta ma warto /usr/local/apache/htdocs (chyba e przy konfigurowaniu

473

Cz IV Fedora jako serwer

kodu rdowego podano inny katalog docelowy instalacji). Przed wersj 1.3.4 dyrektywa ta
bya definiowana w pliku srm.conf.

UserDir
Dyrektywa UserDir wcza lub wycza i definiuje katalog (okrelany wzgldem katalogu
domowego uytkownika), w ktrym serwer Apache ma szuka dokumentw HTML publikowanych przez uytkownikw. Katalog ten jest okrelany wzgldem katalogu domowego, poniewa
kady uytkownik systemu moe mie moliwo publikowania wasnych stron. Domylnie
dyrektywa ta jest nieaktywna (oznaczona symbolem komentarza #).
Domyln wartoci dla tej dyrektywy jest public_html. Po uaktywnieniu dyrektywy z tak wartoci kady uytkownik moe utworzy w swoim katalogu domowym podkatalog public_html
i umieci w nim dokumenty HTML tworzce jego prywatn stron WWW. Strona ta bdzie
dostpna pod adresem http://nazwa_serwera/~nazwa_uytkownika, gdzie nazwa_uytkownika
to systemowy identyfikator danego uytkownika. W wersjach wczeniejszych od 1.3.4 dyrektywa
ta bya zapisywana w pliku srm.conf.

DirectoryIndex
Dyrektywa DirectoryIndex wskazuje plik, ktry powinien zosta wykorzystany w roli indeksu
katalogu podczas obsugi odwoa pod adresy zadane w postaci: http://nazwa_serwera/nazwa_
katalogu/.
Czasami, kiedy w katalogu brakuje pliku index.html, warto wskaza tu inny plik (lub list plikw),
zawierajcy np. odpowiedni komunikat. Najciekawszym zastosowaniem tej dyrektywy jest
wskazanie w niej programu CGI, ktry bdzie uruchamiany w momencie odwoania do katalogu.
W wartoci dyrektywy mona te uwzgldni tych uytkownikw, ktrzy swoje strony tworz
w systemie Windows, i doda do listy plikw pozycj index.htm. Dyrektywa DirectoryIndex
moe wic mie np. posta DirectoryIndex index.html index.cgi index.htm. W wersjach
wczeniejszych od 1.3.4 dyrektywa ta bya zapisywana w pliku srm.conf.

Moduy MPM
Serwer Apache od wersji 2.0 korzysta z nowej wewntrznej architektury, obsugujcej moduy
wieloprzetwarzania MPM (ang. multiprocessing modules). Moduy te s przez serwer wykorzystywane do implementacji modelu dziaania wielowtkowego; moduy s skompilowane do
pliku wykonywalnego serwera. Moduy MPM pozwalaj na lepsz prac serwera na wikszej
liczbie platform, zwikszajc jego stabilno i skalowalno.
Apache moe korzysta z co najwyej jednego moduu MPM na raz. Moduy MPM rni si od
zestawu moduw rozprowadzanych z serwerem Apache (patrz podrozdzia Moduy serwera
Apache); su one do implementowania ustawie, limitw i innych czynnoci serwera. Kady
z moduw obsuguje wasny zestaw ustawie, rwnie zwanych dyrektywami, ktrych
wartoci steruj szczegowymi aspektami dziaania procesw serwera.

474

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Dla Linuksa dostpne s nastpujce moduy MPM:


mpm_common zestaw dwudziestu dyrektyw wsplnych dla wszystkich moduw MPM;
prefork modu implementujcy tryb pracy serwera, w ktrym naladuje on za-

chowanie serwerw z serii 1.3 (obsuga da przez osobne procesy potomne serwera);
worker waciwy tryb pracy serwerw serii 2.0, implementujcy serwer hybrydowy,

wieloprocesowy i wielowtkowy.
Odpowiedni MPM pozwala na ograniczenie zasobw wykorzystywanych przez serwer, przy zachowaniu penej zdolnoci do obsugi natoku da i penej stabilnoci. Modu worker udostpnia dyrektywy sterujce liczb obsugiwanych jednoczenie pocze.

Uwaga
Dla innych platform dostpne s inne moduy implementacji
wieloprzetwarzania, np. mpm_netware dla wzw pracujcych
w systemie Netware czy te mpm_winnt dla wersji przeznaczonej do
systemu Windows NT, modu o nazwie perchild, ktry pozwala
na przypisywanie osobnych identyfikatorw UID dla poszczeglnych
procesw serwera. Wicej informacji na temat moduw MPM
dla serwera Apache mona znale: http://www.apache.org/.

Pliki konfiguracyjne .htaccess


Apache wykorzystuje specjalne pliki konfiguracyjne, okrelane mianem plikw .htaccess.
W plikach tych mog wystpowa niemal wszystkie te dyrektywy, ktre umieszczane s
w gwnym pliku konfiguracji, httpd.conf. Plik .htaccess, okrelony dyrektyw AccessFileName
w pliku httpd.conf (albo srm.conf w wersjach poprzedzajcych 1.3.4), definiuje zwykle konfiguracj dla okrelonego katalogu. Administrator systemu moe w konfiguracji serwera WWW
okreli zarwno nazw pliku konfiguracji dodatkowej, jak i wskaza, ktre z fragmentw
konfiguracji serwera bd nadpisywane zawartoci plikw konfiguracyjnych .htaccess.
W celu ograniczenia elementw konfiguracji, ktre mog by przesonite zawartoci plikw
.htaccess, wykorzystuje si dyrektyw AllowOverride. Dyrektyw t mona ustawi globalnie
bd powiza z poszczeglnymi katalogami. Dla przykadu, w pliku httpd.conf mona umieci
nastpujc konstrukcj:
#
#
#
#
#
#

Kady katalog, do ktrego dostp ma serwer Apache, moe


dysponowa osobn konfiguracj uzupeniajc bd eliminujc
funkcje realizowane w danym katalogu (i jego podkatalogach).
Na pocztek naley okreli bardzo restrykcyjn konfiguracj domyln.

475

Cz IV Fedora jako serwer

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

Dyrektywa Options
Dyrektywa Options okrela domylne opcje konfiguracyjne serwera Apache. Dyrektywa moe
przyjmowa warto None bd All albo stanowi poczenie dowolnych spord wartoci
Indexes, Includes, FollowSymLinks, ExecCGI i Multiviews. Znaczenie poszczeglnych
wartoci wyjaniamy w tabeli 17.2.
Tabela 17.2. Wartoci dyrektywy Options

Warto

Znaczenie

None

Dla katalogu nie bdzie dostpna adna z poniszych opcji.

All

Dla katalogu dostpne bd wszystkie ponisze opcje.

Indexes

W przypadku braku pliku index.html albo innego okrelonego wartoci dyrektywy


DirectoryIndex serwer wygeneruje dla katalogu stron z list plikw katalogu.

Includes

W katalogu mog by wykorzystywane wstawki SSI (ang. Server Side Includes). Opcj t mona
te zapisa jako IncludesNoExec, jeli w katalogu maj by dostpne wstawki serwera
z wyjtkiem wstawki exec. Ze wzgldw bezpieczestwa zawsze warto wycza t moliwo
w tych katalogach, nad ktrymi administrator nie ma penej kontroli, np. w katalogu
definiowanym dyrektyw UserDir.

FollowSymLinks

Pozwala na dostp do katalogw, ktre s powizane z katalogiem dokumentu


za porednictwem dowiza symbolicznych. Ustawienie tej moliwoci dla poszczeglnych
katalogw nie jest zalecane (jest dopuszczalne w rzadkich przypadkach), w adnym za razie
nie naley uaktywnia tej opcji dla caego serwera. Opcja stanowi potencjaln luk
w zabezpieczeniach, poniewa pozwala na wyjcie poza katalog dokumentw, co potencjalnie
daje dostp do tych fragmentw systemu plikw, ktre nigdy nie powinny by dostpne
spoza systemu.

ExecCGI

W danym katalogu mona uruchamia programy CGI nawet wtedy, jeli katalog ten
nie jest zdefiniowany w dyrektywie ScriptAlias.

Multiviews

Element moduu mod_negotiation; kiedy klient inicjuje danie udostpnienia


dokumentu, ktrego nie mona odnale, serwer prbuje wyszuka dokument najbliszy
danemu, patrz http://localhost/manual/mod/.

Uwaga
Dyrektywy te obejmuj skutkami swego dziaania rwnie wszystkie
podkatalogi danego katalogu.

476

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Dyrektywa AllowOverride
Dyrektywa AllowOverride okrela, ktre z opcji konfiguracyjnych mog zosta przesonite
ustawieniami zawartymi w pliku .htaccess dla danego katalogu. Mona np. osobno zdefiniowa
moliwo przesaniania ustawie dla gwnego katalogu dokumentw oraz dla katalogw
uytkownikw, definiowanych dyrektyw UserDir.
Moliwo ta jest szczeglnie przydatna w katalogach publikacji uytkownikw, poniewa uytkownicy ci zwykle nie maj dostpu do gwnego pliku konfiguracji serwera.
Dyrektywa AllowOverride moe mie warto All, None bd stanowi kombinacj wartoci
Options, FileInfo, AuthConfig oraz Limit. Ich znaczenie wyjaniamy w tabeli 17.3.
Tabela 17.3. Znaczenie argumentw dyrektywy AllowOverride

Warto

Znaczenie

Options

Plik .htaccess moe uzupenia opcje nieuwzgldnione w dyrektywie Options dla danego
katalogu.

FileInfo

Plik .htaccess moe zawiera dyrektywy modyfikujce informacje o typie przechowywanych w katalogu
dokumentw.

AuthConfig

Plik .htaccess moe zawiera dyrektywy uwierzytelniania i autoryzacji dostpu.

Limit

Plik .htaccess moe zawiera dyrektywy allow, deny i order.

Uwierzytelnianie i kontrola dostpu


Serwery WWW czsto su do udostpniania danych, ktre niekoniecznie powinny by dostpne
szerokiej publicznoci. Std konieczno blokowania dostpu do pewnych materiaw bd jego
ograniczania dla okrelonych uytkownikw. Serwer Apache umoliwia dwie metody realizacji tego
rodzaju ogranicze dostpu: uwierzytelnianie i kontrol dostpu. Dostp do poszczeglnych elementw witryny WWW mona ogranicza na podstawie rozmaitych kryteriw, np. na podstawie
adresu IP bd nazwy wza klienta albo podania waciwego identyfikatora uytkownika i hasa.

Ostrzeenie
Zezwalanie uytkownikom na publikowanie wasnych materiaw
za porednictwem danego serwera powoduje szereg problemw
zwizanych z bezpieczestwem. Kady administrator serwera
udostpnianego w internecie powinien zapozna si z dokumentem
The World Wide Web Security FAQ, dostpnym pod adresem
http://www.w3.org/Security/Faq/www-security-faq.html.

477

Cz IV Fedora jako serwer

Ograniczanie dostpu dyrektywami Allow oraz Deny


Jedn z prostszych metod ograniczania dostpu do materiaw udostpnianych przez serwer
WWW jest ograniczanie dostpu do okrelonej grupy uytkownikw, identyfikowanych adresami IP lub nazwami wzw komputerw, z ktrych inicjowane s dania dostpu do dokumentw. Su do tego dyrektywy Allow i Deny.
Obie dyrektywy przyjmuj argument w postaci tzw. wyraenia adresowego. W wyraeniu tym
mona wykorzystywa nastpujce wartoci:
all obejmuje wszystkie wzy, bez wzgldu na adres IP;
<nazwa_wza> bd <nazwa_domeny>, czyli zarwno kwalifikowana, jak i czciowa

nazwa domenowa (np. test.gnulix.org albo gnulix.org);


adres IP, rwnie zarwno peny, jak i okrelony czstkowo (np. 212.85.67 albo
212.85.67.66);

para adres sieci i maska sieci, np. 212.85.67.0/255.255.255.0;


adres sieciowy okrelony w bezklasowym formacie wewntrzdomenowym (CIDR),

np. 212.85.67.0/24. Zaprezentowana notacja CIDR okrela sie i mask podsieci te


same jak w przykadzie wyej.
Jeli jest to moliwe, to najlepiej oprze kontrol dostpu na adresach IP, a nie na nazwach wzw.
Daje to wiksz wydajno dostpu, poniewa eliminuje konieczno realizowania wyszukiwania
nazw adres IP klienta jest za zawsze nieodczn czci dania.
Dyrektywy Allow i Deny mog te by wykorzystywane do udostpniania bd blokowania
dostpu do materiaw witryny, w zalenoci od obecnoci bd braku okrelonych zmiennych
rodowiskowych. Poniszy zapis np. blokuje realizacj da inicjowanych z kontekstu, w ktrym
zdefiniowana jest zmienna rodowiskowa o nazwie NOACCESS:
Deny from env=NOACCESS

Domylnie serwer Apache stosuje najpierw wszystkie okrelone dyrektywy Deny, a dopiero potem
rozszerza ewentualny zbir klientw dopuszczonych, analizujc dyrektywy Allow. Aby zmieni
kolejno przetwarzania tych dyrektyw, mona wykorzysta dyrektyw Order. Apache interpretuje
j na trzy sposoby:
Order Deny,Allow dyrektywy Deny bd przetwarzane przed dyrektywami Allow.

Jeeli wze klienta nie jest wymieniowy w dyrektywach blokujcych, zostanie dopuszczony do zasobu. To domylny porzdek interpretowania dyrektyw allow i deny.
Order Allow,Deny dyrektywy Allow przetwarzane s przed dyrektywami Deny;

jeli wze nie ma jawnie przyznanego dostpu, dostp do zasobu zostanie odmwiony.
Order Mutual-failure do zasobw dopuszczane s wycznie te wzy, ktre

obejmowane s dyrektywami Allow i rwnoczenie nie wystpuj w dyrektywach


Deny. Wze, ktry nie jest wymieniony ani w dyrektywach Allow, ani w dyrektywach
Deny, nie zostanie obsuony.

478

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Pora na przykad. Przypumy, e do zasobu server-status dostp maj mie wycznie uytkownicy czcy si z domeny serwera. Jeli nazw domeny jest gnulix.org, to w pliku konfiguracyjnym powinny si znale nastpujce wiersze:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from gnulix.org
</Location>

Uwierzytelnianie
Uwierzytelnianie to proces sprawdzania, czy odwiedzajcy jest tym, za kogo si podaje. Serwer
Apache mona skonfigurowa tak, aby umoliwia dostp do okrelonych zasobw witryny
WWW wycznie tym klientom, ktrzy s w stanie potwierdzi swoj tosamo. Apache wykorzystuje kilka metod uwierzytelniania; najprostsza jest metoda okrelana mianem Basic
Authentication.
Metoda uwierzytelniania prostego polega na podaniu przez klienta nazwy uytkownika oraz
hasa, majcego gwarantowa mu dostp do chronionych zasobw. Serwer Apache okrela
moliwo dostpu do danego zasobu, weryfikujc poprawno hasa. Najpierw jednak sprawdza podany identyfikator uytkownika dopiero wtedy, kiedy taki uytkownik jest zdefiniowany, serwer przystpuje do kontroli zgodnoci hasa. Jeli haso rwnie si zgadza, serwer
udostpnia klientowi chronione zasoby.
Protok HTTP jest protokoem bezstanowym, co oznacza, e kade danie kierowane do serwera WWW jest obsugiwane niezalenie od da poprzednich; std konieczno doczania
danych uwierzytelniajcych do kadego kolejnego dania. Z tego powodu kade danie
odwoujce si do zasobw chronionych bdzie nieco obszerniejsze i realizowane duej ni dania kierowane do obszarw niezabezpieczonych. Aby ograniczy zuycie zasobw i zwikszy
wydajno obsugi da, naley chroni wycznie te obszary witryny, ktre tego bezwzgldnie
wymagaj.

Ostrzeenie
Nie naley wykorzystywa w roli pliku hase serwera Apache systemowego pliku /etc/passwd. Przy stosowaniu prostej metody uwierzytelniania nazwy uytkownikw i hasa s przesyane pomidzy
klientem a serwerem w postaci tekstu zakodowanego algorytmem
base64, ktry mona odczyta niemal rwnie atwo jak otwarty
tekst. Nazwy uytkownikw i hasa s umieszczane w kadym daniu przesyanym do serwera. Std kady, kto zainstaluje program
wszyciela sieciowego, moe te informacje atwo przechwyci.

479

Cz IV Fedora jako serwer

eby skorzysta z prostej metody uwierzytelniania, naley utworzy plik z list uytkownikw,
ktrzy maj prawo odwoywa si do chronionych zasobw. Plik ten zawiera pary: identyfikator
uytkownika i haso. Plik taki jest wic podobny do systemowego pliku hase, /etc/passwd.
Do tworzenia pliku uytkownikw dla serwera Apache suy program htpasswd. Program ten
stanowi element pakietu oprogramowania serwera Apache. W przypadku instalacji serwera
z pakietu RPM jest instalowany w katalogu /usr/bin. Uruchomienie programu htpasswd bez
podania jakichkolwiek opcji spowoduje wyprowadzenie nastpujcego komunikatu:
Usage:
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c Create a new file.
-n Don't update file; display results on stdout.
-m Force MD5 encryption of the password.
-d Force CRYPT encryption of the password (default).
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
-b Use the password from the command line rather than prompting for it.
-D Delete the specified user.
On Windows, NetWare and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

Jak wida, program htpasswd nie jest narzdziem specjalnie skomplikowanym. Aby np. utworzy plik uytkownikw serwera o nazwie klientela zawierajcy pojedynczy wpis uytkownika
o nazwie janek, naley wykona nastpujce polecenie:
# htpasswd -c klientela janek

Program zapyta o haso dla uytkownika. W celu uzupenienia pliku o kolejne wpisy uytkownikw
naley powysz procedur powtrzy, usuwajc z wiersza wywoania programu przecznik -c.
Mona te tworzy pliki grup uytkownikw. Pliki takie maj format zbliony do formatu systemowego pliku /etc/groups. W kadym wierszu pliku naley umieci nazw grupy, a za ni
dwukropek i list identyfikatorw uytkownikw, oddzielonych spacjami. Wpis taki mgby
wyglda np. tak:
klientela: janek hifly wojt andrew

Gdy dysponujemy umiejtnoci tworzenia pliku uytkownikw, mona przej do omwienia


sposobu, w jaki za porednictwem konfiguracji serwera mona chroni dostp do niektrych
zasobw witryny WWW.
Aby wskaza serwerowi plik uytkownikw, naley odpowiednio ustawi dyrektyw AuthUserFile. Dyrektywa ta przyjmuje jako argument ciek dostpu do pliku uytkownikw. Jeli

cieka nie jest ciek bezwzgldn (tzn. nie rozpoczyna si od znaku ukonika), to zakada si,

480

Rozdzia 17. Zarzdzanie serwerem WWW Apache

e zostaa okrelona wzgldem katalogu ServerRoot. Podobnie wskazuje si serwerowi plik


grup uytkownikw suy do tego dyrektywa AuthGroupFile.
Nastpnie naley za porednictwem dyrektywy AuthType okreli metod uwierzytelniania.
W naszym omwieniu przyjlimy metod prost, czyli dyrektywa otrzymuje warto Basic.
Teraz naley zdecydowa, do ktrej ze sfer nalee bdzie chroniony zasb. Sfery (ang. realms)
grupuj rne zasoby, do ktrych mog si odwoywa ci sami uytkownicy. Sfera definiowana
jest dowolnym cigiem znakowym. Powinna by widoczna w okienku uwierzytelniania wywietlanym w oknie przegldarki uytkownika odwoujcego si do zasobw chronionych. Z tego
wzgldu cig okrelajcy sfer powinien by dla uytkownikw znaczcy. Sfera uwierzytelniania
definiowana jest dyrektyw AuthName.
Na koniec naley okreli grup uytkownikw autoryzowanych do korzystania z zasobu. Dokonuje si tego za porednictwem dyrektywy Require. Dyrektyw t mona definiowa z trzema
kategoriami wartoci.
Z opcj valid-user kady z uytkownikw wymienionych w pliku uytkowni-

kw bdzie dopuszczany do zasobu chronionego (zasb bdzie wic udostpniany


wszystkim, ktrzy wprowadz poprawny identyfikator i haso).
Z list uytkownikw uprawnionych, wymienionych po sowie users.
Z list grup uytkownikw uprawnionych, wymienionych po sowie group. Listy

grup i uytkownikw s oddzielane spacjami.


Wracajc do prezentowanego wczeniej przykadu z chronionym zasobem server-status,
moemy teraz w miejsce kontroli dostpu bazujcej na nazwie (albo adresie) wza klienta kontrolowa dostp i wymaga uwierzytelnienia od uytkownikw chccych odwoa si do zasobw.
Tak konfiguracj definiuj nastpujce wpisy w pliku konfiguracji serwera:
<Location /server-status>
SetHandler server-status
AuthType Basic
AuthName "Server status"
AuthUserFIle "klientela"
Require valid-user
</Location>

Kontrola dostpu raz jeszcze


Jeeli serwer zostanie skonfigurowany z uwzgldnieniem zarwno uwierzytelniania uytkownikw, jak i z kontrol dostpu na bazie rda pochodzenia dania, bdzie wymaga od uytkownikw spenienia obu warunkw dostpu do zasobu chronionego. A co w przypadku, kiedy
podane jest, aby dostp by przyznawany po spenieniu dowolnego z kryteriw, czyli albo po
zakwalifikowaniu si do grupy adresw wzw dopuszczonych, albo po uwierzytelnieniu
uytkownika (rwnie spoza takiej grupy). Tak moliwo mona uwzgldni za porednictwem

481

Cz IV Fedora jako serwer

dyrektywy Satisfy. Dyrektywa ta moe przyj warto All (warto domyln) bd Any.
Ustawienie jej na warto All oznacza, e uytkownik odwoujcy si do zasobu chronionego
bdzie musia zaspokoi wymagania zarwno metod kontroli dostpu, jak i metod uwierzytelniania. Warto Any pozwala na skorzystanie z zasobu ju po spenieniu jednego z dwch
warunkw dopuszczenia do zasobu.
Poniej prezentowany jest jeszcze jeden przykad konfiguracji z kontrol dostpu, znw chronicy zasb server-status. Tym razem ochrona zostanie ustawiona tak, aby uytkownicy domeny gnulix byli dopuszczani do zasobu bez dodatkowych ceregieli, a wszyscy klienci spoza
domeny musieli przedstawi poprawne informacje uwierzytelniajce:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from gnulix.org
AuthType Basic
AuthName "Server status"
AuthUserFIle "klientela"
Require valid-user
Satisfy Any
</Location>

Materiay publikowane za porednictwem serwera WWW mona te chroni kilkoma innymi


metodami, ale ich omwienie spowodowaoby rozrost tego rozdziau do postaci osobnej ksiki, a zaprezentowane metody uwierzytelniania prostego i kontroli dostpu sprawdzaj si
w wielu typowych konfiguracjach. Wicej przykadw zabezpieczania mona znale w dokumentacji serwera Apache.

Moduy serwera Apache


Rdze serwera Apache jest stosunkowo niewielki; wikszo zaawansowanych funkcji serwera
Apache implementowanych jest bowiem w postaci moduw. Kady z nich odpowiedzialny
jest za obsug innego aspektu dziaania serwera. Dodajc i usuwajc moduy, mona wic wybirczo uruchamia i blokowa funkcje serwera WWW wedle konkretnych potrzeb.
Wraz z serwerem Apache rozprowadzanych jest przeszo 60 rnych moduw. Jeszcze wicej
moduw publikowanych jest przez programistw niezalenych. Pod adresem http://modules.apache.org/ znajduje si oglnodostpne repozytorium moduw dla serwera Apache, znane
jako Apache Module Registry. Moduy zainstalowane wraz z oprogramowaniem serwera s zebrane w katalogu /etc/httpd/modules, jednak katalog ten jest jedynie dowizaniem symbolicznym do
waciwego katalogu moduw, czyli /usr/lib/httpd/modules. Oto ich lista (jej zawarto moe si
rni, w zalenoci od sposobu instalacji i numeru wersji serwera):

482

Rozdzia 17. Zarzdzanie serwerem WWW Apache

mod_actions.so
mod_alias.so
mod_asis.so
mod_auth_basic.so
mod_auth_digest.so
mod_authn_alias.so
mod_authn_anon.so
mod_authn_dbd.so
mod_authn_dbm.so
mod_authn_default.so
mod_authn_file.so
mod_authnz_ldap.so
mod_authz_dbm.so
mod_authz_default.so
mod_authz_groupfile.so
mod_authz_host.so
mod_authz_owner.so
mod_authz_user.so
mod_autoindex.so
mod_cache.so
mod_cern_meta.so
mod_cgid.so
mod_cgi.so
mod_dav_fs.so
mod_dav.so
mod_dbd.so
mod_deflate.so
mod_dir.so
mod_disk_cache.so
mod_dumpio.so
mod_env.so
mod_expires.so

mod_ext_filter.so
mod_file_cache.so
mod_filter.so
mod_headers.so
mod_ident.so
mod_imagemap.so
mod_include.so
mod_info.so
mod_ldap.so
mod_log_config.so
mod_log_forensic.so
mod_logio.so
mod_mem_cache.so
mod_mime_magic.so
mod_mime.so
mod_negotiation.so
mod_proxy_ajp.so
mod_proxy_balancer.so
mod_proxy_connect.so
mod_proxy_ftp.so
mod_proxy_http.so
mod_proxy.so
mod_rewrite.so
mod_setenvif.so
mod_speling.so
mod_status.so
mod_suexec.so
mod_unique_id.so
mod_userdir.so
mod_usertrack.so
mod_version.so
mod_vhost_alias.so

Kady z moduw uzupenia konfiguracj serwera o nowe dyrektywy. Jak mona si domyli,
dodatkowych dyrektyw, opcji i przecznikw jest o wiele za duo, aby opisa je w jednym
rozdziale. W kolejnych punktach zostan jedynie z koniecznoci opisane funkcje wybranych
moduw.

mod_authz_host
Modu mod_authz_host pozwala na sterowanie (za porednictwem dyrektyw Allow) funkcj
kontroli dostpu do serwera WWW opartej na adresach IP, nazwach wzw i obecnoci

483

Cz IV Fedora jako serwer

zmiennych rodowiskowych. Dziki temu moduowi mona np. zezwoli na peny dostp do
materiaw udostpnianych przez serwer z poziomu sieci lokalnej, natomiast szerokiej publicznoci nawizujcej poczenie z serwerem spoza sieci lokalnej udostpnia jedynie podzbir tych
materiaw, patrz podrozdzia Uwierzytelnianie i kontrola dostpu.

mod_alias
Modu mod_alias manipuluje cigami URL umieszczonymi w napywajcych daniach
HTTP, przekierowujc np. klienta pod waciwy adres URL. Za pomoc tego moduu mona
te odwzorowywa czci systemu plikw na poszczeglne elementy hierarchii witryny WWW.
Dla przykadu dyrektywa:
Alias /images/ /home/janek/graphics/

spowoduje, w odpowiedzi na danie zawierajce URL zaczynajcy si od cigu /images/, pobranie zawartoci katalogu /home/janek/graphics/. Przy tym klient inicjujcy danie nie bdzie
nawet wiedzia o dokonaniu podmiany. W przypadku przekierowania natomiast klient otrzyma
w odpowiedzi URL wskazujcy waciwe pooenie danych zasobw. Wicej zaawansowanych
funkcji manipulowania cigami URL oferuje modu mod_rewrite.

mod_asis
Modu mod_asis pozwala na szczegowe okrelenie wszystkich informacji, ktre maj zosta
odesane w odpowiedzi na danie. Odpowiedzi generowane z uyciem tego moduu tworzone s
z pominiciem wszelkich nagwkw, ktre w innym przypadku mogyby by doczone do
odpowiedzi. Wszystkie pliki z rozszerzeniem .asis przesyane s do klienta bez jakichkolwiek
zmian i uzupenie.
W ramach prostego przykadu mona zaoy, e z danej strony przeniesiono materiay pod inny
adres. Teraz wypada poinformowa odwiedzajcych o fakcie przeprowadzki, a najlepiej automatycznie skierowa ich pod waciwy adres. W celu zaprezentowania odwiedzajcym odpowiedniego komunikatu i skierowania ich do waciwej strony naley umieci w pustym katalogu plik
z rozszerzeniem .asis i nastpujc treci:
Status: 301 Stary adres!
Location: http://gnulix.org/nowy/strona.html
Content-type: text/html
<html>
<head>
<title>Strona przeniesiona</title>
</head>
<body>
<h1>Strona zostaa przeniesiona. Obecnie dostpna jest pod adresem:
<a href="http://gnulix.org/nowy/strona.html">Nowy Adres</a>.
</h1>
</body>
</html>

484

Rozdzia 17. Zarzdzanie serwerem WWW Apache

mod_auth_basic i mod_authn_file
Ta para moduw peni rol zarezerwowan w wersji 2.0 dla pojedynczego moduu mod_auth,
a wic implementuje prost metod uwierzytelniania uytkownikw bazujc na przechowywanych w pliku uytkownikw identyfikatorach i zaszyfrowanych hasach. Plik uytkownikw
jest podobny do systemowego pliku /etc/passwd; tworzy si go i wypenia poleceniem htpasswd.
Uwierzytelnianiu powicony by podrozdzia Uwierzytelnianie i kontrola dostpu.

mod_authn_anon
Modu mod_authn_anon implementuje uwierzytelnianie anonimowe, podobne do znanego
z serwerw FTP. Modu pozwala na okrelenie identyfikatorw uytkownikw tych klientw,
ktrzy cz si z serwerem jako gocie. Kiedy taki uytkownik prbuje si zalogowa, zostanie
zapytany o podanie hasa w postaci adresu poczty elektronicznej. Serwer moe rejestrowa
podawane adresy.

mod_authn_dbm
Modu mod_authn_dbm pozwala na wykorzystywanie przy uwierzytelnianiu pliku bazy danych
Berkeley DB w miejsce pliku uytkownikw.

mod_auth_digest
Rozszerzenie moduu uwierzytelniania prostego; w trybie uwierzytelniania Digest uytkownik
nie przesya informacji uwierzytelniajcych otwartym tekstem, ale szyfruje je algorytmem
MD5. Taki schemat uwierzytelniania zosta zdefiniowany w dokumencie RFC 2617. W porwnaniu z metod uwierzytelniania prostego uwierzytelnianie to jest duo bezpieczniejsze. Niestety, nie
wszystkie przegldarki WWW obsuguj t metod uwierzytelniania.
Do tworzenia pliku hase dla tej metody uwierzytelniania suy program htdigest. Jego opcje
pokrywaj si mniej wicej z opcjami analogicznego programu dla metody Basic, htpasswd.
Wicej informacji mona znale na stronie podrcznika systemowego pod hasem htdigest.

mod_autoindex
Modu mod_autoindex pozwala na dynamiczne tworzenie listy plikw indeksu katalogowego.
Indeks jest uzupeniany informacjami dodatkowymi tak, aby przypomina listingi katalogw
uzyskiwane podczas sesji FTP za porednictwem polecenia ls.

485

Cz IV Fedora jako serwer

mod_cgi
Modu ten pozwala na uruchamianie przez serwer programw CGI. Programy CGI to wykonywalne pliki umieszczone w podkatalogu /var/www/cgi-bin; su do dynamicznego generowania
danych (zwykle dokumentw HTML).

mod_dir oraz mod_env


Modu mod_dir suy do okrelania, ktre z plikw powinny zosta zwrcone automatycznie,
kiedy uytkownik odwouje si do katalogu. Domylnie plikiem takim jest index.html. Jeeli
serwer ma obsugiwa rwnie uytkownikw tworzcych strony WWW w systemie Windows,
list plikw indeksowych warto rozszerzy o plik index.htm, tak jak poniej:
DirectoryIndex index.html index.htm

Modu mod_env zawiaduje przekazywaniem zmiennych rodowiskowych do skryptw CGI i SSI.

mod_expires
Modu mod_expires suy do uzupeniania materiaw publikowanych w witrynie o informacje
o dacie wanoci. Modu uzupenia generowane odpowiedzi HTTP o nagwki Expires
i Cache-Control. Okrelanie czasu wanoci strony pozwala na buforowanie stron WWW
przez przegldarki bd serwery buforujce WWW.

mod_headers
Modu ten suy do manipulowania nagwkami odpowiedzi HTTP generowanych przez serwer.
Mona dziki niemu usuwa nagwki, dodawa je i zastpowa wasnymi. Modu udostpnia
w tym celu dyrektyw Header. Wana jest kolejno definiowania dyrektyw Header. Ot
wczenie danego nagwka wartoci set dyrektywy, a nastpnie wyczenie go wartoci
unset spowoduje usunicie nagwka. Dyrektywy Header mog by rozmieszczane w niemal
dowolnych miejscach w pliku konfiguracyjnym. Dyrektywy te s przetwarzane w nastpujcej
kolejnoci:
1. Dyrektywy dla caego serwera,
2. Dyrektywy dla wza wirtualnego,
3. Dyrektywy w blokach <Directory> i plikach .htaccess,
4. Dyrektywy w blokach <Location>,
5. Dyrektywy w blokach <Files>.

486

Rozdzia 17. Zarzdzanie serwerem WWW Apache

mod_include
Modu mod_include pozwala serwerowi na obsug tzw. wstawek SSI (ang. Server Side Includes).

mod_info oraz mod_log_config


Modu mod_info udostpnia klientom obszerne informacje o konfiguracji serwera. Za jego
pomoc mona np. wywietli w oknie przegldarki list wszystkich zainstalowanych moduw oraz dyrektyw zdefiniowanych w plikach konfiguracyjnych.
Modu mod_log_config definiuje format i zawarto plikw dziennika, patrz podrozdzia
Rejestrowanie.

mod_mime oraz mod_mime_magic


Modu mod_mime pozwala na podejmowanie przez serwer prby okrelania typu MIME pliku
na podstawie jego rozszerzenia.
Modu mod_mime_magic pozwala z kolei na okrelanie typu MIME pliku na podstawie zawartoci pliku.

mod_negotiation
Za porednictwem moduu mod_negotiation mona przy generowaniu odpowiedzi wybra
jedn z kilku wersji dokumentu, najlepiej dostosowan do moliwoci klienta. Wybr moe
opiera si na kilku rnych kryteriach, okrelanych w procesie negocjacji. Mona np. wybiera pomidzy rnymi wersjami jzykowymi dokumentw, formatami plikw oraz metodami
kompresji.

mod_proxy
Modu mod_proxy implementuje dla serwera Apache mechanizm buforowania i poredniczenia. Dziki temu serwer moe poredniczy w przekazywaniu FTP, AJP13, CONNECT,
HTTP/0.9, HTTP/1.0 oraz HTTP/1.1. Uaktywnienie moduu mod_proxy nie jest najlepszym
pomysem, jeeli serwer ma obsugiwa du liczb uytkownikw.

mod_rewrite
Modu mod_rewrite to istny szwajcarski scyzoryk w dziedzinie manipulowania cigami URL.
Pozwala na wykonywanie niemal dowolnych, dajcych si wymyli manipulacji, rwnie z wykorzystaniem zoonych wyrae regularnych. W sumie mao jest operacji na URL, ktrych
nie mona by przeprowadzi za porednictwem tego moduu.

487

Cz IV Fedora jako serwer

Wskazwka
Moliwoci moduu mod_rewrite mona lepiej pozna, zagldajc
pod adres http://localhost/manual/misc/rewriteguide.html.

mod_setenvif
Modu mod_setenvif pozwala na manipulowanie zmiennymi rodowiskowymi. Ot mona
tu za pomoc cigw symboli dopasowywanych do tekstu, znanych jako wyraenia regularne,
warunkowo zmienia wartoci zmiennych rodowiskowych. Istotna jest kolejno wystpowania w pliku konfiguracji wprowadzanych przez modu dyrektyw SetEnvIf. Kada kolejna
dyrektywa SetEnvIf moe bowiem znie dziaanie poprzedniej dyrektywy, jeli obie odnosz si
do tej samej zmiennej rodowiskowej. Warto o tym pamita, aby unikn niespodzianek i trudnych do wykrycia bdw.

mod_speling
Modu mod_speling implementuje funkcj kontroli poprawnoci i poprawiania nieprawidowo
wpisanych adresw URL. Jeli np. dany URL nie zostanie znaleziony, serwer moe przystpi
do utworzenia listy plikw lecych w tym samym katalogu i dopasowania jednego z tych plikw
jako najbliszego daniu. Dopasowanie polega na prbie poprawienia tylko jednej literwki.

mod_status
Modu ten mona wykorzystywa do generowania strony WWW zawierajcej informacje
o biecym stanie serwera Apache. Strona ta zawiera informacje o wewntrznym stanie procesw serwera i statystyki ich dziaania. Informacje te s bezcenne w procesie dostosowywania
konfiguracji tak, aby osign maksymaln wydajno serwera. Rwnie przydatne s przy prbie
okrelania rda ewentualnych problemw.

mod_ssl
Modu mod_ssl implementuje protok SSL (w wersji 2. oraz 3.) oraz TLS (wersja 1.). Modu
wprowadza do pliku konfiguracyjnego przynajmniej 30 dyrektyw, definiujcych sposb oraz
tryb szyfrowania i uwierzytelniania klientw.

mod_unique_id
Modu ten dla kadego napywajcego dania generuje unikalny identyfikator dania. Identyfikator ten umieszczany jest w zmiennej rodowiskowej UNIQUE_ID.

488

Rozdzia 17. Zarzdzanie serwerem WWW Apache

mod_userdir
Modu mod_userdir pozwala na odwzorowywanie w drzewie dokumentw serwera podkatalogw znajdujcych si w katalogach domowych uytkownikw.

mod_usertrack
Modu mod_usertrack suy do generowania dla kolejnych sesji uytkownika specjalnych cookies
sesji. Mona dziki nim ledzi poczynania uytkownika odwiedzajcego kolejne strony
witryny. Aby po takich odwiedzinach zosta jaki lad, naley uaktywni rejestrowanie cookies
w pliku dziennika.

mod_vhost_alias
Modu mod_vhost_alias obsuguje dynamiczn konfiguracj wzw wirtualnych, przydatn,
jeli serwer suy jako dostawca usug internetowych i ma obsugiwa wiksz liczb wzw
wirtualnych. Jednak dla przecitnego uytkownika standardowa obsuga wzw wirtualnych
serwera Apache powinna by jak najbardziej wystarczajca.
Serwer Apache potrafi obsugiwa wzy wirtualne na dwa sposoby. Mona do jednego adresu
IP przypisa wiele nazw wzw albo nazwy te przypisywa do osobnych adresw IP. W obu
tych przypadkach przypisaniem i dziaaniem serwerw wirtualnych steruj rne zestawy dyrektyw (wicej o serwerach wirtualnych w nastpnym podrozdziale).
Jak wida, liczba dostpnych moduw i opcji tych moduw powoduje, e jakikolwiek wyczerpujcy ich opis musiaby zaj znacznie wicej ni jeden rozdzia. Kompletn dokumentacj
moduw serwera Apache mona znale w udostpnianej przez sam serwer dokumentacji
rozprowadzanej w dystrybucji Fedora albo publikowanej na stronach Apache Software Foundation.

Serwery wirtualne
Jedn z najpopularniejszych usug udostpnianych przez serwer WWW jest moliwo obsugi
domeny wirtualnej. Domena taka, znana rwnie jako wze wirtualny bd serwer wirtualny,
jest kompletn witryn WWW, dysponujc wasn nazw, zupenie tak, jakby bya obsugiwana
przez dedykowany jej serwer WWW zainstalowany na dedykowanym witrynie wle sieci. To
jednak pozr, poniewa wze wirtualny wraz z jego domen jest obsugiwany przez pojedynczy serwer, zdolny do rwnoczesnej obsugi wielu takich wzw. Apache implementuje t
moliwo za porednictwem dyrektyw pliku konfiguracyjnego.
Teraz serwer Apache potrafi rwnie dynamicznie tworzy witryny wirtualne, korzystajc
z pomocy moduu mod_vhost_alias. Modu ten jest przeznaczony gwnie dla dostawcw
usug internetowych, ktrzy obsuguj znaczn liczb uytkownikw i ich stron WWW. Jako

489

Cz IV Fedora jako serwer

e jest przeznaczony do zastosowa profesjonalnych, jego omwienie wykracza poza tematyk


tego majcego przecie charakter wprowadzajcy rozdziau. Dlatego w niniejszym podrozdziale opisany zostanie jedynie tradycyjny sposb definiowania wzw wirtualnych, adekwatny
do potrzeb przecitnego uytkownika.

Wzy wirtualne rozrniane adresami IP


Jeeli komputer z systemem Linux zostanie ju tak skonfigurowany, e bdzie odpowiada na
poczenia dla kilku rnych adresw IP, to uwzgldniajca ten stan konfiguracja serwera
Apache jest ju stosunkowo prosta. Wystarczy jedynie umieci w pliku konfiguracyjnym
httpd.conf jedn dyrektyw blokow VirtualHost dla kadego z adresw, pod ktrymi maj
dziaa niezalene od siebie witryny WWW:
<VirtualHost 212.85.67.67>
ServerName gnulix.org
DocumentRoot /home/virtual/gnulix/public_html
TransferLog /home/virtual/gnulix/logs/access_log
ErrorLog /home/virtual/gnulix/logs/error_log
</VirtualHost>

W nagwku dyrektywy VirtualHost naley umieszcza nie nazwy wzw, ale ich adresy IP.
Wewntrz dyrektywy blokowej VirtualHost mona okrela dowolne dyrektywy konfiguracyjne.
Mona np. w ramach tej dyrektywy umieci dyrektywy AllowOverride o dziaaniu odmiennym, ni to zdefiniowano dla caego serwera. Wszystkie za dyrektywy wza wirtualnego, ktre nie
zostan okrelone wprost, przejmuj wartoci z dyrektyw okrelonych dla caego serwera.

Wzy wirtualne rozrniane nazwami


Wzy wirtualne rozrniane nazwami pozwalaj na uruchomienie wicej ni jednej witryny na
wle dysponujcym pojedynczym adresem IP. Utworzone tak domeny naley jednak umieci
w systemie DNS jako rekordy CNAME dla danego komputera. Kiedy klient protokou HTTP (czyli
przegldarka WWW) nadele danie udostpnienia dokumentu przechowywanego na serwerze,
w daniu znajduje si zmienna wskazujca nazw serwera, ktry powinien zawiera dokument.
I wanie na podstawie tej zmiennej serwer moe wytypowa wze wirtualny do obsugi dania.

Uwaga
Niektre ze starszych przegldarek WWW nie potrafi rozrnia wzw za pomoc nazw, poniewa moliwo ta zostaa
wprowadzona wraz z wersj 1.1 protokou HTTP, a starsze przegldarki s zwykle zgodne jedynie z wersj HTTP 1.0. Jeeli jednak
przegldarka jest cho czciowo zgodna z protokoem HTTP 1.1,
to z pewnoci daje t wanie moliwo.

490

Rozdzia 17. Zarzdzanie serwerem WWW Apache

Wzy wirtualne rozrniane nazwami wymagaj umieszczenia w pliku konfiguracyjnym jednego tylko dodatkowego wpisu. Ot naley poinformowa serwer WWW, ktry z adresw IP ma
w systemie DNS wicej ni jedn nazw. Suy do tego dyrektywa NameVirtualHost:
NameVirtualHost 212.85.67.67

W pliku konfiguracyjnym powinien znale si blok dyrektyw dla kadej nazwy przypisanej do
adresu. Podobnie jak w przypadku wzw wirtualnych rozrnianych adresami IP, w ramach
dyrektywy blokowej VirtualHost trzeba definiowa tylko te dyrektywy, ktre powinny mie
wartoci inne od dyrektyw definiowanych globalnie, dla caego serwera. Koniecznie natomiast
trzeba w bloku zdefiniowa dyrektyw ServerName, poniewa tylko ona rozrnia poszczeglne
serwery wirtualne:
<VirtualHost 212.85.67.67>
ServerName bugserver.gnulix.org
ServerAlias bugserver
DocumentRoot /home/bugserver/htdocs
ScriptAlias /home/bugserver/cgi-bin
TransferLog /home/bugserver/logs/access_log
</VirtualHost>
<VirtualHost 212.85.67.67>
ServerName pts.gnulix.org
ServerAlias pts
DocumentRoot /home/pts/htdocs
ScriptAlias /home/pts/cgi-bin
TransferLog /home/pts/logs/access_log
ErrorLog /home/pts/logs/error_log
</VirtualHost>

Wskazwka
Obsugujc wzy wirtualne w sieci lokalnej bd intranecie,
mona udostpni uytkownikom skrcone nazwy wzw, aby
nie musieli za kadym razem wpisywa w pasku adresu penej
kwalifikowanej nazwy domeny. Dla przykadu, przy uyciu nazwy
skrconej mona odwoa si do adresu http://bugserver/index.html
zamiast do http://bugserver.gnulix.org/index.html. W takim przypadku serwer Apache nie moe wiedzie, e oba te adresy odnosz si do tego samego wza wirtualnego. Mona to obej, definiujc dwie dyrektywy blokowe VirutalHost, jedn dla nazwy
bugserver, drug dla penej nazwy bugserver.gnulix.org, ale atwiej
po prostu umieci wewntrz dyrektywy blokowej wza wirtualnego
dyrektyw definiujc alias wza:
ServerAlias bugserver

491

Cz IV Fedora jako serwer

Wicej o dziaaniu dyrektywy blokowej VirtualHost napisano w dokumentacji serwera,


dostpnej pod adresem http://localhost/manual.

Rejestrowanie
Serwer Apache umoliwia rejestrowanie w plikach dziennika informacji o niemal dowolnych
aspektach dziaania serwera. Rejestrowanie tych informacji moe by pomocne do:
lepszego zarzdzania zasobami systemowymi (w przypadku informacji dotyczcych wy-

korzystania procesw serwera);


wykrywania wama (w przypadku dokumentowania nieprawidowych da HTTP);
diagnostyki bdw (w przypadku rejestrowania bdw przetwarzania da).

Po uruchomieniu serwera Apache tworzone s domylnie dwa pliki dziennikw: access_log (plik
dziennika napywajcych da) oraz error_log (plik dziennika bdw). Znajduj si one zwykle w katalogu /var/log/httpd (w zalenoci od konfiguracji serwera, w katalogu tym mog si te
pojawi pliki dziennika moduu implementujcego protok SSL: ssl_access_log, ssl_error_log
oraz ssl_request_log). Wszystkie pliki dziennika, z wyjtkiem error_log (czyli standardowo jedynie plik access_log), s generowane w formacie okrelonym par dyrektyw CustomLog oraz
LogFormat. Dyrektywy te umieszczane s, rzecz jasna, w pliku konfiguracyjnym httpd.conf.
Nowy format pliku dziennika mona zdefiniowa nastpujco:
LogFormat "%h %l %u %t \"%r\" %>s %b" common

Znacznik formatu common to definicja formatu bazowego, domylnego dla wszystkich dziennikw.
Warto pamita, e wikszo dostpnych narzdzi automatycznie kontrolujcych i analizujcych
zawarto plikw dziennika dziaa w oparciu o zaoenie, e analizowany plik generowany jest
wanie zgodnie z formatem common, ewentualnie formatem combined; oba formaty definiowane
s w domylnych plikach konfiguracyjnych.
W definicji formatu LogFormat mona stosowa nastpujce zmienne.

492

%a

Zdalny adres IP.

%A

Lokalny adres IP.

%b

Liczba przesanych bajtw, z wyczeniem nagwkw HTTP.


Zmienna rejestrowana w formacie CLF (ang. Combined Log
Format), co oznacza m.in., e dla da pozbawionych danych
w dzienniku zapisana zostanie nie warto 0, ale znak -.

%B

Liczba przesanych bajtw, z wyczeniem nagwkw HTTP.

%{ZMIENNA}e

Warto zmiennej rodowiskowej ZMIENNA.

Rozdzia 17. Zarzdzanie serwerem WWW Apache

%f

Nazwa pliku dziennika.

%h

Nazwa wza zdalnego.

%H

Protok dania.

%{NAGWEK}i

Zawarto nagwka NAGWEK: umieszczonego w daniu.

%l

Nazwa zdalnego pliku dziennika (okrelona przez identd).

%m

Metoda dania.

%{NOTA}n

Warto noty NOTA innego moduu.

%{NAGWEK}o

Zawarto nagwka NAGWEK: umieszczonego w odpowiedzi.

%p

Port serwera obsugujcego danie.

%P

Identyfikator procesu obsugujcego danie.

%q

Zawarto cigu zmiennych formularza, poprzedzona znakiem ?.


W przypadku braku cigu odwoania zmienna przyjmuje warto
pust.

%r

Pierwszy wiersz dania.

%s

Status; dla da przekierowanych wewntrznie bdzie to status


dania oryginalnego. Ostatni status dania uzyskuje si, zapisujc
zmienn jako %>s.

%t

Czas, w formacie przyjtym dla standardowego formatu dziennika


(w standardowym zapisie angielskim).

%{format}t

Czas, w formacie definiowanym cigiem format, ktry powinien


by zgodny z formatem cigu przyjtym dla funkcji strftime(3),
patrz podrozdzia Podstawowe dyrektywy SSI, w ktrym znajduje
si pena lista opcji formatowania.

%T

Liczba sekund, jakie upyny w czasie realizacji dania.

%u

Identyfikator uytkownika zdalnego; w przypadku kiedy status


(%s) to 401, identyfikator moe by nieprawdziwy.

%U

Umieszczony w daniu cig URL.

%V

Nazwa serwera obsugujcego danie, zgodnie z dyrektyw


UseCanonicalName.

%v

Warto (w postaci kanonicznej) dyrektywy ServerName serwera


obsugujcego danie.

Kad zmienn mona poprzedzi wyraeniem, ktre bdzie warunkowao umieszczenie wartoci
zmiennej w wierszu dziennika. W przypadku niespenienia warunku w miejsce wartoci zmiennej pojawi si znak -. Warunki definiowane s w postaci liczb odpowiadajcych wartociom

493

Cz IV Fedora jako serwer

zwracanym przez serwer. Dla przykadu, zapis %!401u spowoduje wywietlenie wartoci
zmiennej REMOTE_USER, chyba e zwracany przez serwer kod obsugi dania to 401.
Pooenie i format pliku dziennika okrela si za porednictwem dyrektywy CustomLog:
CustomLog logs/access_log common

Jeeli podana w dyrektywie cieka nie jest ciek absolutn (jak to jest w przykadzie powyej), to
jest ona interpretowana wzgldem katalogu okrelonego dyrektyw ServerRoot.

Warto zajrze
W sieci dostpna jest niezwykle bogata dokumentacja serwera Apache. Informacji dodatkowych
o zagadnieniach opisywanych w rozdziale warto poszuka rwnie pod nastpujcymi adresami:
http://news.netcraft.com/archives/web_server_survey.html strona z podsumowa-

niem wrzeniowej ankiety firmy Netcraft, obejmujcej 135 166 473 respondentw
(witryn) (dane z wrzenia 2007 roku). Ankiety wykazuj od lat, e to wanie Apache
jest najpopularniejszym serwerem WWW w publicznym internecie.
http://www.apache.org/ witryna grupy Apache Group, zawierajca m.in. wyczer-

pujc dokumentacj serwera Apache.


http://www.apachetoday.com/ strona publikujca najnowsze doniesienia o postpach

w pracach nad rozwojem i poprawianiem kodu serwera. Tutaj mona te przeczyta


znakomite artykuy techniczne.
http://modules.apache.org/ repozytorium moduw dla serwera Apache.

Serwerowi Apache powicono te kilka znakomitych ksiek. Jedn z nich jest Apache Server
Unleashed (Sams Publishing).

Przydatne polecenia systemu Linux


Przy zarzdzaniu serwerem Apache przydadz si nastpujce polecenia:
apachectl narzdzie kontroli dziaania serwera, rozprowadzane wraz z serwerem
Apache;
system-config-httpd graficzne narzdzie konfiguracji serwera Apache;
httpd program serwera Apache;
konqueror przegldarka WWW dla rodowiska KDE;
elinks tekstowa przegldarka stron WWW;
firefox znakomita, wolna i otwarta przegldarka WWW.

494

You might also like