6 Angebote ab € 3,95 €
- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Das Buch ist sowohl für Web-Entwickler als auch für Administratoren gedacht. Der Systemadministrator lernt, wie er den Server für optimalen Datenverkehr feintunen kann. Das Buch zeigt, wie er den Server nach einem Update oder nach einer Datenrettungsaktion wieder neu aufsetzt. Besonders nützlich sind die Kapitel zur Architektur von Apache Server und die möglichen Sicherheitsmechnismen. Der Entwickler erfährt, wie er den Basisserver durch CGT-Scripts erweitern kann. Programm-Module werden ausführlich besprochen. Auf CD-ROM: aktuelle Version von Apache Server.
Das Buch ist sowohl für Web-Entwickler als auch für Administratoren gedacht. Der Systemadministrator lernt, wie er den Server für optimalen Datenverkehr feintunen kann. Das Buch zeigt, wie er den Server nach einem Update oder nach einer Datenrettungsaktion wieder neu aufsetzt. Besonders nützlich sind die Kapitel zur Architektur von Apache Server und die möglichen Sicherheitsmechnismen. Der Entwickler erfährt, wie er den Basisserver durch CGT-Scripts erweitern kann. Programm-Module werden ausführlich besprochen. Auf CD-ROM: aktuelle Version von Apache Server.
Produktdetails
- Produktdetails
- New Technology
- Verlag: Markt +Technik
- Seitenzahl: 599
- Abmessung: 245mm
- Gewicht: 1118g
- ISBN-13: 9783827258243
- ISBN-10: 3827258243
- Artikelnr.: 24089239
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
- New Technology
- Verlag: Markt +Technik
- Seitenzahl: 599
- Abmessung: 245mm
- Gewicht: 1118g
- ISBN-13: 9783827258243
- ISBN-10: 3827258243
- Artikelnr.: 24089239
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
Einführung 21
Teil I Einführung in Apache 27
Kapitel 1 Geschichte und Legenden von Apache 29
1.1 Die Anfänge 31
1.2 Wer ist verantwortlich? 32
1.3 Aktuelles Geschehen 32
1.4 Warum Apache so gut funktioniert 34
1.5 Zusammenfassung 35
Kapitel 2 HTTP 37
2.1 HTTP-Header 38
2.2 Die HTTP-Konversation 41
2.3 Client-Anforderung 42
2.3.1 GET 43
2.3.2 HEAD 43
2.3.3 POST 44
2.4 Anforderungs-Header 44
2.5 Anforderungsrumpf 47
2.6 Server-Statuscodes 47
2.7 Antwort-Header 51
2.8 Angeforderte Daten 53
2.9 Trennen oder KeepAlive 53
2.10 Beispiel einer HTTP-Konversation 53
2.11 Zusammenfassung 54
Kapitel 3 Kompilieren und Installieren von Apache 55
3.1 Systemanforderungen 56
3.2 Beschaffen von Apache 56
3.3 Download der Binärform 58
3.4 Download des Quellcodes 58
3.4.1 Überprüfen der Echtheit der Datei 59
3.4.2 Extrahieren der Dateiinhalte 59
3.5 Installation für Ungeduldige 60
3.6 Konfigurieren von Apache 60
3.6.1 Konfigurieren mit APACI 61
3.6.2 Manuelle Konfiguration 62
3.7 Kompilieren 63
3.8 Installieren 63
3.9 Installieren und Konfigurieren von Apache unter Windows 63
3.9.1 Installieren von Apache auf Windows 64
3.9.2 Installieren als Windows-NT-Dienst 64
3.9.3 Kompilieren von Apache für Windows 65
3.10 Zusammenfassung 66
Kapitel 4 Den Server starten, beenden und neu starten 67
4.1 Starten des Servers 68
4.1.1 Starten von Apache unter Unix 68
4.1.2 Starten von Apache unter Windows 71
4.1.3 Ausführen von Apache als Konsolenanwendung 74
4.2 Beenden des Servers und Neustart 75
4.2.1 Beenden und Neustart unter Unix 75
4.2.2 Beenden und Neustart unter Windows 77
4.3 Das Skript apachectl 79
4.3.1 apachectl anwenden 79
4.3.2 apachectl konfigurieren 79
4.4 Zusammenfassung 80
Teil II Konfigurieren von Apache 81
Kapitel 5 Server-Konfigurationsdateien 83
5.1 Eine statt drei Dateien 84
5.2 Kern- und Basiskonfigurationsdirektiven 85
5.3 Zusammenfassung 154
Kapitel 6 Apache mit Comanche konfigurieren 155
6.1 So können Sie sich Comanche besorgen 157
6.2 So verwenden Sie Comanche 157
6.2.1 Starten von Comanche 157
6.2.2 Die Benutzerschnittstelle 158
6.3 Konfigurieren des Servers 159
6.4 Abschnitte 162
6.4.1 Konfigurieren von-Abschnitten 163
6.4.2 Konfigurieren von-Abschnitten 166
6.4.3 Konfigurieren von-Abschnitten 166
6.5 Konfigurieren von virtuellen Hosts 166
6.6 Server-Verwaltungsaufgaben 167
6.7 Erweitern von Comanche 167
6.8 Einschränkungen 168
6.8.1 Sie müssen an der Konsole arbeiten 168
6.8.2 Sie müssen Tcl lernen, um Comanche zu erweitern 168
6.8.3 Sie müssen etwas über die Konfigurationsdateien wissen 169
6.9 Zusammenfassung 169
Kapitel 7 MIME-Typen 171
7.1 Was ist MIME? 172
7.2 Standard-MIME-Typen 174
7.3 Ableiten des MIME-Typs von den Dateiinhalten 175
7.4 MIME-Typen und Dateinamen 176
7.4.1 Die Standardzuordnungsdatei mime.types 176
7.4.2 Die Direktive TypesConfig 177
7.4.3 Die Direktive AddType 178
7.4.4 Die Direktive ForceType 178
7.4.5 Die Direktive AddEncoding 180
7.5 Vererbung von MIME-Einstellungen 181
7.6 Verwalten von MIME-Typen 181
7.6.1 Verwalten von MIME-Typen mit Konfigurationsdateien 181
7.6.2 Verwalten von MIME-Typen in .htaccess-Dateien 182
7.6.3 Verwalten von MIME-Typen für ein
einzelnes Verzeichnis 182
7.7 Die MIME-Information 183
7.7.1 Die Direktive AddIconByType 184
7.7.2 Die Direktive AddAltByType 184
7.7.3 Die Direktive AddIconByEncoding 184
7.7.4 Die Direktive AddAltByEncoding 185
7.7.5 Die Direktive ExpiresByType 185
7.8 Client-Verhalten 186
7.9 Zusammenfassung 187
Kapitel 8 .htaccess-Dateien 189
8.1 Gründe für die Verwendung von .htaccess-Dateien 190
8.2 Verwendungszwecke für .htaccess-Dateien 192
8.2.1 Authentifizierung 192
8.2.2 Gestatten von CGI 193
8.3 Beschränken, was gestattet ist 193
8.4 Sicherheitsbedenken 194
8.4.1 Options 194
8.4.2 Schadensbegrenzung 197
8.5 Zusammenfassung 197
Kapitel 9 Virtuelles Hosting 199
9.1 Ausführen von separaten Daemons 200
9.1.1 Wann Sie dies tun sollten 200
9.1.2 Konfigurieren von separaten Daemons 201
9.1.3 Starten des Servers mit einer speziellen
Konfigurationsdatei 201
9.2 Verwenden von IP-basierten virtuellen Hosts 202
9.3 Verwenden von namens-basierten virtuellen Hosts 204
9.3.1 Die Funktionsweise eines namens-basierten
virtuellen Hosts 204
9.3.2 Die Direktive NameVirtualHost 204
9.3.3 Auswege bei älteren Browsern 205
9.4 Weitere Konfigurationsoptionen 206
9.4.1 Der virtuelle Host _default_ 206
9.4.2 Port-basierte virtuelle Hosts 206
9.5 Überprüfen Ihrer Konfiguration 207
9.6 Zusammenfassung 208
Kapitel 10 Apache als Proxy- und Cache-Server 209
10.1 Warum sollten Sie einen Proxy verwenden? 210
10.1.1 Was ist ein Web-Cache? 211
10.1.2 Probleme im Zusammenhang mit Proxies und Caches 212
10.1.3 Die Proxy- und Caching-Fähigkeiten von Apache 213
10.2 Konfigurieren von Apache für den Einsatz als Proxy-
oder Cache-Server 214
10.2.1 Apache als Proxy-Server einrichten 214
10.2.2 Apache als Cache-Server einrichten 218
10.2.3 Überlegungen zur Konfiguration 221
10.2.4 Zusammenfügen der Einzelteile 222
10.3 Konfigurieren der Clients 224
10.4 Zusammenfassung 227
Teil III Dynamische Inhalte 229
Kapitel 11 CGI-Programmierung 231
11.1 Die CGI-Spezifikation 232
11.1.1 Umgebungsvariablen 232
11.1.2 Die Befehlszeile ISINDEX 235
11.1.3 STDIN und STDOUT 235
11.1.4 Ausgewertete Header 235
11.1.5 Nicht auszuwertende Header (nph-Skripts) 236
11.2 Konfiguration des Servers für CGI 236
11.2.1 ScriptAlias 236
11.2.2 AddHandler 237
11.2.3 Options ExecCGI 238
11.3 CGI-Programme schreiben 238
11.3.1 MIME-Header 238
11.3.2 Benutzereingaben 239
11.3.3 Zustand 247
11.4 Ein CGI-Beispiel 247
11.5 CGI-Programme unter Windows 247
11.6 Häufig auftretende Probleme 248
11.6.1 Zugriffsrechte 248
11.6.2 Syntaxfehler 249
11.6.3 Ungültige Header 250
11.7 Alternativen zu CGI 250
11.7.1 Das Perl-Modul von Apache: mod_perl 251
11.7.2 FastCGI 251
11.7.3 Das PHP-Modul 251
11.8 Weitere Informationen 251
11.9 Zusammenfassung 252
Kapitel 12 SSI: Server-Side Includes 253
12.1 SSI-Server-Konfiguration 254
12.1.1 SSI für Dateierweiterungen aktivieren 255
12.1.2 XBitHack 256
12.1.3 SSI für MIME-Typen 257
12.2 SSI-Direktiven einsetzen 257
12.2.1 SSI-Direktiven 258
12.2.2 Variablen und Flusskontrolle 264
12.3 Zusammenfassung 267
Kapitel 13 Cookies 269
13.1 Was sind Cookies? 270
13.2 Geschichte der Cookies 272
13.3 Cookie-Zutaten 273
13.3.1 NAME=VALUE 273
13.3.2 Cookie-Namen 273
13.3.3 Cookie-Werte 274
13.3.4 Cookie-Daten kodieren 274
13.3.5 Größenbeschränkungen 275
13.3.6 Expires=DATE 275
13.3.7 Datums- und Zeitformat 276
13.3.8 Cookies löschen 276
13.3.9 Path=PATH 277
13.3.10 Domain=DOMAIN_NAME 278
13.3.11 Secure 279
13.4 Grenzen von Cookies 280
13.4.1 Maximale Cookie-Größe 280
13.4.2 Anzahl der Cookies 281
13.5 Cookies einrichten und senden 281
13.5.1 HTML 281
13.5.2 JavaScript 282
13.5.3 Perl 283
13.6 Cookies wiederauffinden und verarbeiten 285
13.7 Perl 285
13.8 Zusammenfassung 288
Kapitel 14 Handler 289
14.1 Begriffsdefinition 290
14.1.1 Phasen der Anforderungsverarbeitung 290
14.1.2 Phase der Inhaltsverarbeitung 291
14.2 Handler und MIME-Typen 294
14.3 Die AddHandler-Direktive 295
14.4 Die SetHandler-Direktive 296
14.5 Die RemoveHandler-Direktive 297
14.6 Die Action-Direktive 298
14.7 Die Script-Direktive 298
14.8 Fehlerbehandlung mit ErrorDocument 299
14.8.1 Einzeilige Fehlermeldungen 300
14.8.2 Fehlerbehandlung mit einem lokalen Dokument 302
14.8.3 CGI-Skripte verwenden 303
14.8.4 Fehlerumleitung über andere Sites 303
14.9 Standard-Handler 303
14.9.1 Die Standard-Handler für die Behandlung des Inhalts 304
14.9.2 ExtendedStatus 310
14.9.3 server-info 311
14.9.4 imap-file 312
14.9.5 Warum aktive Image-Maps so beliebt waren 312
14.9.6 Warum aktive Image-Maps nicht mehr benutzt werden 312
14.10 Zusammenfassung 313
Teil IV Sicherheit und Überwachung des Servers 315
Kapitel 15 Sicherheit 317
15.1 Schützen der Dateien des Web-Servers 318
15.1.1 Schreib/Lese- und Nur-Lese-Dateien 318
15.1.2 Symbolische Verknüpfungen 319
15.1.3 Die Option Indexes 320
15.2 Schützen der URLs der Web-Site 323
15.2.1 Obligatorische und wahlfreie Zugriffskontrolle 323
15.2.2 Authentifizierung, Autorisierung und Zugriff 328
15.2.3 Authentifizierung 329
15.2.4 Gültigkeitsbereiche und Realms 329
15.2.5 Autorisierungsdatenbanken 335
15.2.6 Autorisierungen 341
15.3 Echtzeitaktivitäten überwachen 342
15.4 Zusammenfassung 345
Kapitel 16 Authentifizierung 347
16.1 Was ist Authentifizierung? 348
16.1.1 Basic-Authentifizierung 348
16.1.2 Digest-Authentifizierung 349
16.2 Konfigurationsdirektiven für die Authentifizierung 351
16.2.1 AuthName 351
16.2.2 AuthType 352
16.2.3 AuthUserFile 352
16.2.4 AuthGroupFile 352
16.2.5 353
16.2.6 354
16.2.7 require 354
16.2.8 Der Ablauf 355
16.3 order, deny und allow 355
16.3.1 allow 355
16.3.2 deny 356
16.3.3 order 357
16.3.4 Satisfy 358
16.4 Beispielkonfigurationen 358
16.4.1 Bestimmte Benutzer zulassen 358
16.4.2 Bestimmten Benutzern das Zusenden erlauben 358
16.4.3 Zugriff aus einer bestimmten Domäne
gewähren/verweigern 359
16.4.4 Eine einzelne Datei schützen 359
16.4.5 Aussperren des Internet Explorer 359
16.4.6 Satisfy 359
16.5 Passwortdateien verwalten 360
16.5.1 Eine neue Passwortdatei erstellen 361
16.5.2 Einer vorhandenen Passwortdatei einen
Benutzer hinzufügen oder ein Passwort ändern 361
16.5.3 MD5-Verschlüsselung erzwingen 362
16.5.4 Benutzer aus der Passwortdatei löschen 362
16.5.5 Gruppendateien erstellen 362
16.6 mod_auth_dbm und mod_auth_db 362
16.6.1 Apache für mod_auth_db(m) vorbereiten 363
16.6.2 Benutzerdatenbank verwalten 363
16.6.3 Konfigurationsdirektiven einsetzen 364
16.7 Weitere Sicherheitsüberlegungen 365
16.7.1 Vergabe der Passwörter 365
16.7.2 Passwortänderungen 365
16.7.3 Zugriffsrechte für die Passwortdateien 365
16.7.4 Verwenden Sie nicht das Anmeldepasswort 366
16.7.5 Keine Basic-Authentifizierung bei vertraulichen Inhalten 366
16.8 Zusammenfassung 366
Kapitel 17 Spider, Robots und Web-Crawler 367
17.1 Was ist ein Spider? 368
17.2 Gute und schlechte Spider 369
17.2.1 Serverüberlastung 369
17.2.2 Schwarze Löcher 369
17.3 Spider mit Protokolldateien erkennen 370
17.4 Spider vom Server fernhalten 370
17.5 Das Meta-Tag ROBOTS 371
17.5.1 Kontakt mit dem Verantwortlichen aufnehmen 372
17.5.2 Einen Spider aussperren 372
17.6 Einen eigenen Spider programmieren 373
17.7 Zusammenfassung 375
Kapitel 18 Protokollierung 377
18.1 Das Übertragungsprotokoll (access_log) 378
18.1.1 Der Inhalt von access_log 378
18.1.2 Standort der access_log-Datei 380
18.1.3 Eigene Protokolldateien einrichten 381
18.2 Das Fehlerprotokoll error_log 385
18.2.1 Der Inhalt des Fehlerprotokolls 385
18.3 ScriptLog und damit verbundene Direktiven 387
18.3.1 ScriptLogBuffer 388
18.3.2 ScriptLogLength 389
18.4 Umgeleitete Protokolle 389
18.4.1 Umgeleitete Protokollierung - Beispiele 390
18.4.2 Zweites Beispiel 391
18.5 Programme für die Protokollauswertung 392
18.5.1 Tools für die Analyse 393
18.5.2 Wusage 393
18.5.3 wwwstat 394
18.5.4 WebTrends 396
18.5.5 Webalizer 397
18.5.6 Eigene Programme 398
18.6 Wechsel der Protokolldateien 399
18.7 Zusammenfassung 399
Teil V Programmentwicklung 401
Kapitel 19 Apache-Module - Einführung 403
19.1 Was sind Apache-Module? 404
19.1.1 Codemodularisierung 404
19.1.2 Ein Vergleich 405
19.1.3 Geschichte der modularen Programmierung 407
19.2 Standardverwendungen von Modulen 407
19.2.1 Authentifizierung 407
19.2.2 Autorisierung 409
19.2.3 Verschlüsselung 410
19.2.4 Unterstützung für Anwendungen und
Programmiersprachen 410
19.2.5 Module für Diagnose und Statistik 411
19.2.6 Protokollierung 412
19.2.7 Serveroperationen 412
19.2.8 Module für Web-Inhalte 413
19.3 Ein einfaches Beispiel für Module im Einsatz: der Serverstatus 414
19.4 Module installieren 416
19.4.1 Freigegebene Bibliotheken 416
19.4.2 Dynamisch freigegebene Objekte 422
19.5 Standardmodule für den Apache-Server einrichten 423
19.6 Erweiterte Modulinstallation 425
19.6.1 Module mit apxs und apachectl installieren 425
19.6.2 mod_perl installieren 427
19.6.3 PHP installieren 428
19.6.4 Fehlerbehebung bei der Modulinstallation 429
19.7 Zusammenfassung 429
Kapitel 20 Apache-Standardmodule einsetzen 431
20.1 Registrierung von Standardmodulen 432
20.2 Zusammenfassung 458
Kapitel 21 Perl-Module einsetzen 459
21.1 Einführung in mod_perl 460
21.1.1 Das Konzept von mod_perl 461
21.1.2 Vorteile von mod_perl 461
21.1.3 Aktuelle Version und Bezugsquellen 461
21.2 Mit mod_perl eingesetzte Perl-Module 462
21.3 mod_perl installieren 463
21.4 mod_perl konfigurieren 464
21.4.1 Perl-Module vorab laden 466
21.4.2 Phase Handler für Perl-Module 467
21.4.3 PerlChildInitHandler: Untergeordnete Prozesse erzeugen 468
21.4.4 PerlPostReadRequestHandler: Der Beginn
der Aufforderungsbearbeitung 468
21.4.5 PerlInitHandler: Anfängliches Handler-Alias festlegen 468
21.4.6 PerlTransHandler: Eine Anforderungs-URI in
einen Dateinamen umwandeln 468
21.4.7 PerlHeaderParserHandler: Reaktion auf einen
Anforderungs-Header 469
21.4.8 PerlAccessHandler: Zugriffskontrolle 469
21.4.9 PerlAuthenHandler: Auswertung der Benutzerkennung 469
21.4.10 PerlAuthzHandler: Überprüfen der Zugriffsrechte
für ein Dokument 470
21.4.11 PerlTypeHandler: Den Inhaltstyp der
Antwort bestimmen 470
21.4.12 PerlFixupHandler: Änderungen in letzter Minute 470
21.4.13 PerlHandler: Den Inhalt der Antwort erzeugen 471
21.4.14 PerlLogHandler: Protokollieren der
bearbeiteten Anforderung 471
21.4.15 PerlCleanUpHandler: Abschließende Aktivitäten 471
21.4.16 PerlChildExitHandler: Der Umgang mit
untergeordneten Apache-Prozessen 471
21.4.17 PerlDispatchHandler 471
21.4.18 PerlRestartHandler 472
21.4.19 Den Status von mod_perl anzeigen 472
21.5 mod_perl in Verbindung mit Datenbanken 473
21.6 Fehlerbeseitigung für mod_perl 473
21.7 Leistungssteigerung 474
21.8 Einfache mod_perl-Skripts und deren Verwendungen 476
21.9 Die Perl-Modulschnittstelle für mod_perl 477
21.10 Zusammenfassung 477
Kapitel 22 PHP-Module einsetzen 479
22.1 Der Verwendungszweck von PHP 480
22.1.1 Zur Geschichte von PHP 480
22.1.2 Warum keine einfachen SSIs? 481
22.1.3 Module oder CGI? 482
22.2 Aktuelle Version und Bezugsquellen 482
22.3 mod_php installieren und konfigurieren 482
22.3.1 Den PHP-Interpreter einrichten und installieren 483
22.3.2 php.ini: PHP konfigurieren 484
22.3.3 Apache für PHP konfigurieren 485
22.4 Syntax und Grundlagen für den Einsatz von mod_php 486
22.4.1 Bezeichner, Konstanten und Gültigkeitsbereiche 486
22.4.2 PHP-Datentypen 488
22.4.3 Operatoren und Ausdrücke 489
22.4.4 Eingaben über Web-Formulare 497
22.4.5 Klassen 498
22.5 Einfache mod_php-Skripts 500
22.6 PHP-Sites und Informationen im Web 504
22.7 Zusammenfassung 504
Kapitel 23 Weitere Module 505
23.1 Module zur Unterstützung von Programmiersprachen 506
23.1.1 Java und JavaScript 506
23.1.2 Python: PyApache 507
23.2 Anwendungs-Server 507
23.2.1 Java-Servlets und Java Server Pages 509
23.2.2 Java-Servlet und JSP-Implementierungen 511
23.2.3 ColdFusion 512
23.2.4 WebObjects 512
23.2.5 Active Server Pages (ASP) 513
23.2.6 Zope 513
23.3 Hilfsmodule 513
23.3.1 Nationale Zeichensätze: mod_fontxlate 514
23.3.2 Verwaltung der Bandbreite: mod_bandwidth 514
23.3.3 mod_lock 514
23.3.4 WebDAV: mod_dav 514
23.3.5 FTP: mod_conv 514
23.3.6 Oracle 514
23.3.7 Postgres 95 514
23.3.8 FrontPage-Unterstützung 515
23.4 Apache mit SSL 515
23.4.1 Die Funktionsweise von SSL 516
23.4.2 Apache und SSL-Implementierungen 518
23.5 Zusammenfassung 520
Kapitel 24 Mit der Apache-API arbeiten 521
24.1 Grundlagen des Modulaufbaus 522
24.1.1 Apache-Handler 522
24.1.2 Der Lebenszyklus eines Apache-Prozesses 523
24.1.3 Die Struktur module 523
24.1.4 Statuskodes der Apache-Handler 535
24.1.5 Apache-Datenstrukturen 537
24.1.6 Ressourcenpools 544
24.2 Weitere Strukturen und Funktionen der API 546
24.2.1 TCP/IP-Utilities 546
24.2.2 URI- und URL-Funktionen 547
24.2.3 Protokollierungsfunktionen 549
24.2.4 Datei- und Socket-Funktionen 550
24.2.5 HTTP-Funktionen 550
24.2.6 Konfigurationsdirektiven 552
24.2.7 Verzeichnisstruktur-APIs 553
24.2.8 Verschiedene Funktionen 556
24.3 Modulinstallation 556
24.4 Hinweise 557
24.5 Zusammenfassung 557
Kapitel 25 Beiträge zur Entwicklung von Apache 559
25.1 Beiträge 560
25.1.1 Geldmittel, Sach- oder Dienstleistungen 561
25.1.2 Beiträge in Form von Engagement 562
25.2 Apache-Projekte 563
25.3 Quellcode entwickeln 564
25.4 Hilfe bei der Fehlerbeseitigung 565
25.5 Software testen 567
25.6 Dokumentation 569
25.7 Sachleistungen 571
25.8 Zusammenfassung 572
Teil VI Anhänge 573
Anhang A Wo Sie weitere Informationen erhalten 575
A.1 Web-Sites 576
A.1.1 ApacheUnleashed.com 576
A.1.2 Das Apache-Server-Projekt 576
A.1.3 Apache Week 576
A.1.4 NSCA HTTPd 576
A.1.5 World Wide Web Consortium (W3C) 577
A.1.6 Mailing-Listen 577
A.1.7 Apache Week 577
A.1.8 apache-announce 577
A.1.9 HWG-servers 577
A.2 Usenet 578
A.2.1 comp.infosystems.www.servers 578
A.2.2 comp.infosystems.www.authoring.cgi 579
Anhang B Die CD-ROM zum Buch installieren 581
B.1 Für Windows 95, 98, NT und 2000 582
B.2 Für Linux und Unix 582
Stichwortverzeichnis 583
Teil I Einführung in Apache 27
Kapitel 1 Geschichte und Legenden von Apache 29
1.1 Die Anfänge 31
1.2 Wer ist verantwortlich? 32
1.3 Aktuelles Geschehen 32
1.4 Warum Apache so gut funktioniert 34
1.5 Zusammenfassung 35
Kapitel 2 HTTP 37
2.1 HTTP-Header 38
2.2 Die HTTP-Konversation 41
2.3 Client-Anforderung 42
2.3.1 GET 43
2.3.2 HEAD 43
2.3.3 POST 44
2.4 Anforderungs-Header 44
2.5 Anforderungsrumpf 47
2.6 Server-Statuscodes 47
2.7 Antwort-Header 51
2.8 Angeforderte Daten 53
2.9 Trennen oder KeepAlive 53
2.10 Beispiel einer HTTP-Konversation 53
2.11 Zusammenfassung 54
Kapitel 3 Kompilieren und Installieren von Apache 55
3.1 Systemanforderungen 56
3.2 Beschaffen von Apache 56
3.3 Download der Binärform 58
3.4 Download des Quellcodes 58
3.4.1 Überprüfen der Echtheit der Datei 59
3.4.2 Extrahieren der Dateiinhalte 59
3.5 Installation für Ungeduldige 60
3.6 Konfigurieren von Apache 60
3.6.1 Konfigurieren mit APACI 61
3.6.2 Manuelle Konfiguration 62
3.7 Kompilieren 63
3.8 Installieren 63
3.9 Installieren und Konfigurieren von Apache unter Windows 63
3.9.1 Installieren von Apache auf Windows 64
3.9.2 Installieren als Windows-NT-Dienst 64
3.9.3 Kompilieren von Apache für Windows 65
3.10 Zusammenfassung 66
Kapitel 4 Den Server starten, beenden und neu starten 67
4.1 Starten des Servers 68
4.1.1 Starten von Apache unter Unix 68
4.1.2 Starten von Apache unter Windows 71
4.1.3 Ausführen von Apache als Konsolenanwendung 74
4.2 Beenden des Servers und Neustart 75
4.2.1 Beenden und Neustart unter Unix 75
4.2.2 Beenden und Neustart unter Windows 77
4.3 Das Skript apachectl 79
4.3.1 apachectl anwenden 79
4.3.2 apachectl konfigurieren 79
4.4 Zusammenfassung 80
Teil II Konfigurieren von Apache 81
Kapitel 5 Server-Konfigurationsdateien 83
5.1 Eine statt drei Dateien 84
5.2 Kern- und Basiskonfigurationsdirektiven 85
5.3 Zusammenfassung 154
Kapitel 6 Apache mit Comanche konfigurieren 155
6.1 So können Sie sich Comanche besorgen 157
6.2 So verwenden Sie Comanche 157
6.2.1 Starten von Comanche 157
6.2.2 Die Benutzerschnittstelle 158
6.3 Konfigurieren des Servers 159
6.4 Abschnitte 162
6.4.1 Konfigurieren von
6.4.2 Konfigurieren von
6.4.3 Konfigurieren von
6.5 Konfigurieren von virtuellen Hosts 166
6.6 Server-Verwaltungsaufgaben 167
6.7 Erweitern von Comanche 167
6.8 Einschränkungen 168
6.8.1 Sie müssen an der Konsole arbeiten 168
6.8.2 Sie müssen Tcl lernen, um Comanche zu erweitern 168
6.8.3 Sie müssen etwas über die Konfigurationsdateien wissen 169
6.9 Zusammenfassung 169
Kapitel 7 MIME-Typen 171
7.1 Was ist MIME? 172
7.2 Standard-MIME-Typen 174
7.3 Ableiten des MIME-Typs von den Dateiinhalten 175
7.4 MIME-Typen und Dateinamen 176
7.4.1 Die Standardzuordnungsdatei mime.types 176
7.4.2 Die Direktive TypesConfig 177
7.4.3 Die Direktive AddType 178
7.4.4 Die Direktive ForceType 178
7.4.5 Die Direktive AddEncoding 180
7.5 Vererbung von MIME-Einstellungen 181
7.6 Verwalten von MIME-Typen 181
7.6.1 Verwalten von MIME-Typen mit Konfigurationsdateien 181
7.6.2 Verwalten von MIME-Typen in .htaccess-Dateien 182
7.6.3 Verwalten von MIME-Typen für ein
einzelnes Verzeichnis 182
7.7 Die MIME-Information 183
7.7.1 Die Direktive AddIconByType 184
7.7.2 Die Direktive AddAltByType 184
7.7.3 Die Direktive AddIconByEncoding 184
7.7.4 Die Direktive AddAltByEncoding 185
7.7.5 Die Direktive ExpiresByType 185
7.8 Client-Verhalten 186
7.9 Zusammenfassung 187
Kapitel 8 .htaccess-Dateien 189
8.1 Gründe für die Verwendung von .htaccess-Dateien 190
8.2 Verwendungszwecke für .htaccess-Dateien 192
8.2.1 Authentifizierung 192
8.2.2 Gestatten von CGI 193
8.3 Beschränken, was gestattet ist 193
8.4 Sicherheitsbedenken 194
8.4.1 Options 194
8.4.2 Schadensbegrenzung 197
8.5 Zusammenfassung 197
Kapitel 9 Virtuelles Hosting 199
9.1 Ausführen von separaten Daemons 200
9.1.1 Wann Sie dies tun sollten 200
9.1.2 Konfigurieren von separaten Daemons 201
9.1.3 Starten des Servers mit einer speziellen
Konfigurationsdatei 201
9.2 Verwenden von IP-basierten virtuellen Hosts 202
9.3 Verwenden von namens-basierten virtuellen Hosts 204
9.3.1 Die Funktionsweise eines namens-basierten
virtuellen Hosts 204
9.3.2 Die Direktive NameVirtualHost 204
9.3.3 Auswege bei älteren Browsern 205
9.4 Weitere Konfigurationsoptionen 206
9.4.1 Der virtuelle Host _default_ 206
9.4.2 Port-basierte virtuelle Hosts 206
9.5 Überprüfen Ihrer Konfiguration 207
9.6 Zusammenfassung 208
Kapitel 10 Apache als Proxy- und Cache-Server 209
10.1 Warum sollten Sie einen Proxy verwenden? 210
10.1.1 Was ist ein Web-Cache? 211
10.1.2 Probleme im Zusammenhang mit Proxies und Caches 212
10.1.3 Die Proxy- und Caching-Fähigkeiten von Apache 213
10.2 Konfigurieren von Apache für den Einsatz als Proxy-
oder Cache-Server 214
10.2.1 Apache als Proxy-Server einrichten 214
10.2.2 Apache als Cache-Server einrichten 218
10.2.3 Überlegungen zur Konfiguration 221
10.2.4 Zusammenfügen der Einzelteile 222
10.3 Konfigurieren der Clients 224
10.4 Zusammenfassung 227
Teil III Dynamische Inhalte 229
Kapitel 11 CGI-Programmierung 231
11.1 Die CGI-Spezifikation 232
11.1.1 Umgebungsvariablen 232
11.1.2 Die Befehlszeile ISINDEX 235
11.1.3 STDIN und STDOUT 235
11.1.4 Ausgewertete Header 235
11.1.5 Nicht auszuwertende Header (nph-Skripts) 236
11.2 Konfiguration des Servers für CGI 236
11.2.1 ScriptAlias 236
11.2.2 AddHandler 237
11.2.3 Options ExecCGI 238
11.3 CGI-Programme schreiben 238
11.3.1 MIME-Header 238
11.3.2 Benutzereingaben 239
11.3.3 Zustand 247
11.4 Ein CGI-Beispiel 247
11.5 CGI-Programme unter Windows 247
11.6 Häufig auftretende Probleme 248
11.6.1 Zugriffsrechte 248
11.6.2 Syntaxfehler 249
11.6.3 Ungültige Header 250
11.7 Alternativen zu CGI 250
11.7.1 Das Perl-Modul von Apache: mod_perl 251
11.7.2 FastCGI 251
11.7.3 Das PHP-Modul 251
11.8 Weitere Informationen 251
11.9 Zusammenfassung 252
Kapitel 12 SSI: Server-Side Includes 253
12.1 SSI-Server-Konfiguration 254
12.1.1 SSI für Dateierweiterungen aktivieren 255
12.1.2 XBitHack 256
12.1.3 SSI für MIME-Typen 257
12.2 SSI-Direktiven einsetzen 257
12.2.1 SSI-Direktiven 258
12.2.2 Variablen und Flusskontrolle 264
12.3 Zusammenfassung 267
Kapitel 13 Cookies 269
13.1 Was sind Cookies? 270
13.2 Geschichte der Cookies 272
13.3 Cookie-Zutaten 273
13.3.1 NAME=VALUE 273
13.3.2 Cookie-Namen 273
13.3.3 Cookie-Werte 274
13.3.4 Cookie-Daten kodieren 274
13.3.5 Größenbeschränkungen 275
13.3.6 Expires=DATE 275
13.3.7 Datums- und Zeitformat 276
13.3.8 Cookies löschen 276
13.3.9 Path=PATH 277
13.3.10 Domain=DOMAIN_NAME 278
13.3.11 Secure 279
13.4 Grenzen von Cookies 280
13.4.1 Maximale Cookie-Größe 280
13.4.2 Anzahl der Cookies 281
13.5 Cookies einrichten und senden 281
13.5.1 HTML 281
13.5.2 JavaScript 282
13.5.3 Perl 283
13.6 Cookies wiederauffinden und verarbeiten 285
13.7 Perl 285
13.8 Zusammenfassung 288
Kapitel 14 Handler 289
14.1 Begriffsdefinition 290
14.1.1 Phasen der Anforderungsverarbeitung 290
14.1.2 Phase der Inhaltsverarbeitung 291
14.2 Handler und MIME-Typen 294
14.3 Die AddHandler-Direktive 295
14.4 Die SetHandler-Direktive 296
14.5 Die RemoveHandler-Direktive 297
14.6 Die Action-Direktive 298
14.7 Die Script-Direktive 298
14.8 Fehlerbehandlung mit ErrorDocument 299
14.8.1 Einzeilige Fehlermeldungen 300
14.8.2 Fehlerbehandlung mit einem lokalen Dokument 302
14.8.3 CGI-Skripte verwenden 303
14.8.4 Fehlerumleitung über andere Sites 303
14.9 Standard-Handler 303
14.9.1 Die Standard-Handler für die Behandlung des Inhalts 304
14.9.2 ExtendedStatus 310
14.9.3 server-info 311
14.9.4 imap-file 312
14.9.5 Warum aktive Image-Maps so beliebt waren 312
14.9.6 Warum aktive Image-Maps nicht mehr benutzt werden 312
14.10 Zusammenfassung 313
Teil IV Sicherheit und Überwachung des Servers 315
Kapitel 15 Sicherheit 317
15.1 Schützen der Dateien des Web-Servers 318
15.1.1 Schreib/Lese- und Nur-Lese-Dateien 318
15.1.2 Symbolische Verknüpfungen 319
15.1.3 Die Option Indexes 320
15.2 Schützen der URLs der Web-Site 323
15.2.1 Obligatorische und wahlfreie Zugriffskontrolle 323
15.2.2 Authentifizierung, Autorisierung und Zugriff 328
15.2.3 Authentifizierung 329
15.2.4 Gültigkeitsbereiche und Realms 329
15.2.5 Autorisierungsdatenbanken 335
15.2.6 Autorisierungen 341
15.3 Echtzeitaktivitäten überwachen 342
15.4 Zusammenfassung 345
Kapitel 16 Authentifizierung 347
16.1 Was ist Authentifizierung? 348
16.1.1 Basic-Authentifizierung 348
16.1.2 Digest-Authentifizierung 349
16.2 Konfigurationsdirektiven für die Authentifizierung 351
16.2.1 AuthName 351
16.2.2 AuthType 352
16.2.3 AuthUserFile 352
16.2.4 AuthGroupFile 352
16.2.5
16.2.6
16.2.7 require 354
16.2.8 Der Ablauf 355
16.3 order, deny und allow 355
16.3.1 allow 355
16.3.2 deny 356
16.3.3 order 357
16.3.4 Satisfy 358
16.4 Beispielkonfigurationen 358
16.4.1 Bestimmte Benutzer zulassen 358
16.4.2 Bestimmten Benutzern das Zusenden erlauben 358
16.4.3 Zugriff aus einer bestimmten Domäne
gewähren/verweigern 359
16.4.4 Eine einzelne Datei schützen 359
16.4.5 Aussperren des Internet Explorer 359
16.4.6 Satisfy 359
16.5 Passwortdateien verwalten 360
16.5.1 Eine neue Passwortdatei erstellen 361
16.5.2 Einer vorhandenen Passwortdatei einen
Benutzer hinzufügen oder ein Passwort ändern 361
16.5.3 MD5-Verschlüsselung erzwingen 362
16.5.4 Benutzer aus der Passwortdatei löschen 362
16.5.5 Gruppendateien erstellen 362
16.6 mod_auth_dbm und mod_auth_db 362
16.6.1 Apache für mod_auth_db(m) vorbereiten 363
16.6.2 Benutzerdatenbank verwalten 363
16.6.3 Konfigurationsdirektiven einsetzen 364
16.7 Weitere Sicherheitsüberlegungen 365
16.7.1 Vergabe der Passwörter 365
16.7.2 Passwortänderungen 365
16.7.3 Zugriffsrechte für die Passwortdateien 365
16.7.4 Verwenden Sie nicht das Anmeldepasswort 366
16.7.5 Keine Basic-Authentifizierung bei vertraulichen Inhalten 366
16.8 Zusammenfassung 366
Kapitel 17 Spider, Robots und Web-Crawler 367
17.1 Was ist ein Spider? 368
17.2 Gute und schlechte Spider 369
17.2.1 Serverüberlastung 369
17.2.2 Schwarze Löcher 369
17.3 Spider mit Protokolldateien erkennen 370
17.4 Spider vom Server fernhalten 370
17.5 Das Meta-Tag ROBOTS 371
17.5.1 Kontakt mit dem Verantwortlichen aufnehmen 372
17.5.2 Einen Spider aussperren 372
17.6 Einen eigenen Spider programmieren 373
17.7 Zusammenfassung 375
Kapitel 18 Protokollierung 377
18.1 Das Übertragungsprotokoll (access_log) 378
18.1.1 Der Inhalt von access_log 378
18.1.2 Standort der access_log-Datei 380
18.1.3 Eigene Protokolldateien einrichten 381
18.2 Das Fehlerprotokoll error_log 385
18.2.1 Der Inhalt des Fehlerprotokolls 385
18.3 ScriptLog und damit verbundene Direktiven 387
18.3.1 ScriptLogBuffer 388
18.3.2 ScriptLogLength 389
18.4 Umgeleitete Protokolle 389
18.4.1 Umgeleitete Protokollierung - Beispiele 390
18.4.2 Zweites Beispiel 391
18.5 Programme für die Protokollauswertung 392
18.5.1 Tools für die Analyse 393
18.5.2 Wusage 393
18.5.3 wwwstat 394
18.5.4 WebTrends 396
18.5.5 Webalizer 397
18.5.6 Eigene Programme 398
18.6 Wechsel der Protokolldateien 399
18.7 Zusammenfassung 399
Teil V Programmentwicklung 401
Kapitel 19 Apache-Module - Einführung 403
19.1 Was sind Apache-Module? 404
19.1.1 Codemodularisierung 404
19.1.2 Ein Vergleich 405
19.1.3 Geschichte der modularen Programmierung 407
19.2 Standardverwendungen von Modulen 407
19.2.1 Authentifizierung 407
19.2.2 Autorisierung 409
19.2.3 Verschlüsselung 410
19.2.4 Unterstützung für Anwendungen und
Programmiersprachen 410
19.2.5 Module für Diagnose und Statistik 411
19.2.6 Protokollierung 412
19.2.7 Serveroperationen 412
19.2.8 Module für Web-Inhalte 413
19.3 Ein einfaches Beispiel für Module im Einsatz: der Serverstatus 414
19.4 Module installieren 416
19.4.1 Freigegebene Bibliotheken 416
19.4.2 Dynamisch freigegebene Objekte 422
19.5 Standardmodule für den Apache-Server einrichten 423
19.6 Erweiterte Modulinstallation 425
19.6.1 Module mit apxs und apachectl installieren 425
19.6.2 mod_perl installieren 427
19.6.3 PHP installieren 428
19.6.4 Fehlerbehebung bei der Modulinstallation 429
19.7 Zusammenfassung 429
Kapitel 20 Apache-Standardmodule einsetzen 431
20.1 Registrierung von Standardmodulen 432
20.2 Zusammenfassung 458
Kapitel 21 Perl-Module einsetzen 459
21.1 Einführung in mod_perl 460
21.1.1 Das Konzept von mod_perl 461
21.1.2 Vorteile von mod_perl 461
21.1.3 Aktuelle Version und Bezugsquellen 461
21.2 Mit mod_perl eingesetzte Perl-Module 462
21.3 mod_perl installieren 463
21.4 mod_perl konfigurieren 464
21.4.1 Perl-Module vorab laden 466
21.4.2 Phase Handler für Perl-Module 467
21.4.3 PerlChildInitHandler: Untergeordnete Prozesse erzeugen 468
21.4.4 PerlPostReadRequestHandler: Der Beginn
der Aufforderungsbearbeitung 468
21.4.5 PerlInitHandler: Anfängliches Handler-Alias festlegen 468
21.4.6 PerlTransHandler: Eine Anforderungs-URI in
einen Dateinamen umwandeln 468
21.4.7 PerlHeaderParserHandler: Reaktion auf einen
Anforderungs-Header 469
21.4.8 PerlAccessHandler: Zugriffskontrolle 469
21.4.9 PerlAuthenHandler: Auswertung der Benutzerkennung 469
21.4.10 PerlAuthzHandler: Überprüfen der Zugriffsrechte
für ein Dokument 470
21.4.11 PerlTypeHandler: Den Inhaltstyp der
Antwort bestimmen 470
21.4.12 PerlFixupHandler: Änderungen in letzter Minute 470
21.4.13 PerlHandler: Den Inhalt der Antwort erzeugen 471
21.4.14 PerlLogHandler: Protokollieren der
bearbeiteten Anforderung 471
21.4.15 PerlCleanUpHandler: Abschließende Aktivitäten 471
21.4.16 PerlChildExitHandler: Der Umgang mit
untergeordneten Apache-Prozessen 471
21.4.17 PerlDispatchHandler 471
21.4.18 PerlRestartHandler 472
21.4.19 Den Status von mod_perl anzeigen 472
21.5 mod_perl in Verbindung mit Datenbanken 473
21.6 Fehlerbeseitigung für mod_perl 473
21.7 Leistungssteigerung 474
21.8 Einfache mod_perl-Skripts und deren Verwendungen 476
21.9 Die Perl-Modulschnittstelle für mod_perl 477
21.10 Zusammenfassung 477
Kapitel 22 PHP-Module einsetzen 479
22.1 Der Verwendungszweck von PHP 480
22.1.1 Zur Geschichte von PHP 480
22.1.2 Warum keine einfachen SSIs? 481
22.1.3 Module oder CGI? 482
22.2 Aktuelle Version und Bezugsquellen 482
22.3 mod_php installieren und konfigurieren 482
22.3.1 Den PHP-Interpreter einrichten und installieren 483
22.3.2 php.ini: PHP konfigurieren 484
22.3.3 Apache für PHP konfigurieren 485
22.4 Syntax und Grundlagen für den Einsatz von mod_php 486
22.4.1 Bezeichner, Konstanten und Gültigkeitsbereiche 486
22.4.2 PHP-Datentypen 488
22.4.3 Operatoren und Ausdrücke 489
22.4.4 Eingaben über Web-Formulare 497
22.4.5 Klassen 498
22.5 Einfache mod_php-Skripts 500
22.6 PHP-Sites und Informationen im Web 504
22.7 Zusammenfassung 504
Kapitel 23 Weitere Module 505
23.1 Module zur Unterstützung von Programmiersprachen 506
23.1.1 Java und JavaScript 506
23.1.2 Python: PyApache 507
23.2 Anwendungs-Server 507
23.2.1 Java-Servlets und Java Server Pages 509
23.2.2 Java-Servlet und JSP-Implementierungen 511
23.2.3 ColdFusion 512
23.2.4 WebObjects 512
23.2.5 Active Server Pages (ASP) 513
23.2.6 Zope 513
23.3 Hilfsmodule 513
23.3.1 Nationale Zeichensätze: mod_fontxlate 514
23.3.2 Verwaltung der Bandbreite: mod_bandwidth 514
23.3.3 mod_lock 514
23.3.4 WebDAV: mod_dav 514
23.3.5 FTP: mod_conv 514
23.3.6 Oracle 514
23.3.7 Postgres 95 514
23.3.8 FrontPage-Unterstützung 515
23.4 Apache mit SSL 515
23.4.1 Die Funktionsweise von SSL 516
23.4.2 Apache und SSL-Implementierungen 518
23.5 Zusammenfassung 520
Kapitel 24 Mit der Apache-API arbeiten 521
24.1 Grundlagen des Modulaufbaus 522
24.1.1 Apache-Handler 522
24.1.2 Der Lebenszyklus eines Apache-Prozesses 523
24.1.3 Die Struktur module 523
24.1.4 Statuskodes der Apache-Handler 535
24.1.5 Apache-Datenstrukturen 537
24.1.6 Ressourcenpools 544
24.2 Weitere Strukturen und Funktionen der API 546
24.2.1 TCP/IP-Utilities 546
24.2.2 URI- und URL-Funktionen 547
24.2.3 Protokollierungsfunktionen 549
24.2.4 Datei- und Socket-Funktionen 550
24.2.5 HTTP-Funktionen 550
24.2.6 Konfigurationsdirektiven 552
24.2.7 Verzeichnisstruktur-APIs 553
24.2.8 Verschiedene Funktionen 556
24.3 Modulinstallation 556
24.4 Hinweise 557
24.5 Zusammenfassung 557
Kapitel 25 Beiträge zur Entwicklung von Apache 559
25.1 Beiträge 560
25.1.1 Geldmittel, Sach- oder Dienstleistungen 561
25.1.2 Beiträge in Form von Engagement 562
25.2 Apache-Projekte 563
25.3 Quellcode entwickeln 564
25.4 Hilfe bei der Fehlerbeseitigung 565
25.5 Software testen 567
25.6 Dokumentation 569
25.7 Sachleistungen 571
25.8 Zusammenfassung 572
Teil VI Anhänge 573
Anhang A Wo Sie weitere Informationen erhalten 575
A.1 Web-Sites 576
A.1.1 ApacheUnleashed.com 576
A.1.2 Das Apache-Server-Projekt 576
A.1.3 Apache Week 576
A.1.4 NSCA HTTPd 576
A.1.5 World Wide Web Consortium (W3C) 577
A.1.6 Mailing-Listen 577
A.1.7 Apache Week 577
A.1.8 apache-announce 577
A.1.9 HWG-servers 577
A.2 Usenet 578
A.2.1 comp.infosystems.www.servers 578
A.2.2 comp.infosystems.www.authoring.cgi 579
Anhang B Die CD-ROM zum Buch installieren 581
B.1 Für Windows 95, 98, NT und 2000 582
B.2 Für Linux und Unix 582
Stichwortverzeichnis 583
Einführung 21
Teil I Einführung in Apache 27
Kapitel 1 Geschichte und Legenden von Apache 29
1.1 Die Anfänge 31
1.2 Wer ist verantwortlich? 32
1.3 Aktuelles Geschehen 32
1.4 Warum Apache so gut funktioniert 34
1.5 Zusammenfassung 35
Kapitel 2 HTTP 37
2.1 HTTP-Header 38
2.2 Die HTTP-Konversation 41
2.3 Client-Anforderung 42
2.3.1 GET 43
2.3.2 HEAD 43
2.3.3 POST 44
2.4 Anforderungs-Header 44
2.5 Anforderungsrumpf 47
2.6 Server-Statuscodes 47
2.7 Antwort-Header 51
2.8 Angeforderte Daten 53
2.9 Trennen oder KeepAlive 53
2.10 Beispiel einer HTTP-Konversation 53
2.11 Zusammenfassung 54
Kapitel 3 Kompilieren und Installieren von Apache 55
3.1 Systemanforderungen 56
3.2 Beschaffen von Apache 56
3.3 Download der Binärform 58
3.4 Download des Quellcodes 58
3.4.1 Überprüfen der Echtheit der Datei 59
3.4.2 Extrahieren der Dateiinhalte 59
3.5 Installation für Ungeduldige 60
3.6 Konfigurieren von Apache 60
3.6.1 Konfigurieren mit APACI 61
3.6.2 Manuelle Konfiguration 62
3.7 Kompilieren 63
3.8 Installieren 63
3.9 Installieren und Konfigurieren von Apache unter Windows 63
3.9.1 Installieren von Apache auf Windows 64
3.9.2 Installieren als Windows-NT-Dienst 64
3.9.3 Kompilieren von Apache für Windows 65
3.10 Zusammenfassung 66
Kapitel 4 Den Server starten, beenden und neu starten 67
4.1 Starten des Servers 68
4.1.1 Starten von Apache unter Unix 68
4.1.2 Starten von Apache unter Windows 71
4.1.3 Ausführen von Apache als Konsolenanwendung 74
4.2 Beenden des Servers und Neustart 75
4.2.1 Beenden und Neustart unter Unix 75
4.2.2 Beenden und Neustart unter Windows 77
4.3 Das Skript apachectl 79
4.3.1 apachectl anwenden 79
4.3.2 apachectl konfigurieren 79
4.4 Zusammenfassung 80
Teil II Konfigurieren von Apache 81
Kapitel 5 Server-Konfigurationsdateien 83
5.1 Eine statt drei Dateien 84
5.2 Kern- und Basiskonfigurationsdirektiven 85
5.3 Zusammenfassung 154
Kapitel 6 Apache mit Comanche konfigurieren 155
6.1 So können Sie sich Comanche besorgen 157
6.2 So verwenden Sie Comanche 157
6.2.1 Starten von Comanche 157
6.2.2 Die Benutzerschnittstelle 158
6.3 Konfigurieren des Servers 159
6.4 Abschnitte 162
6.4.1 Konfigurieren von-Abschnitten 163
6.4.2 Konfigurieren von-Abschnitten 166
6.4.3 Konfigurieren von-Abschnitten 166
6.5 Konfigurieren von virtuellen Hosts 166
6.6 Server-Verwaltungsaufgaben 167
6.7 Erweitern von Comanche 167
6.8 Einschränkungen 168
6.8.1 Sie müssen an der Konsole arbeiten 168
6.8.2 Sie müssen Tcl lernen, um Comanche zu erweitern 168
6.8.3 Sie müssen etwas über die Konfigurationsdateien wissen 169
6.9 Zusammenfassung 169
Kapitel 7 MIME-Typen 171
7.1 Was ist MIME? 172
7.2 Standard-MIME-Typen 174
7.3 Ableiten des MIME-Typs von den Dateiinhalten 175
7.4 MIME-Typen und Dateinamen 176
7.4.1 Die Standardzuordnungsdatei mime.types 176
7.4.2 Die Direktive TypesConfig 177
7.4.3 Die Direktive AddType 178
7.4.4 Die Direktive ForceType 178
7.4.5 Die Direktive AddEncoding 180
7.5 Vererbung von MIME-Einstellungen 181
7.6 Verwalten von MIME-Typen 181
7.6.1 Verwalten von MIME-Typen mit Konfigurationsdateien 181
7.6.2 Verwalten von MIME-Typen in .htaccess-Dateien 182
7.6.3 Verwalten von MIME-Typen für ein
einzelnes Verzeichnis 182
7.7 Die MIME-Information 183
7.7.1 Die Direktive AddIconByType 184
7.7.2 Die Direktive AddAltByType 184
7.7.3 Die Direktive AddIconByEncoding 184
7.7.4 Die Direktive AddAltByEncoding 185
7.7.5 Die Direktive ExpiresByType 185
7.8 Client-Verhalten 186
7.9 Zusammenfassung 187
Kapitel 8 .htaccess-Dateien 189
8.1 Gründe für die Verwendung von .htaccess-Dateien 190
8.2 Verwendungszwecke für .htaccess-Dateien 192
8.2.1 Authentifizierung 192
8.2.2 Gestatten von CGI 193
8.3 Beschränken, was gestattet ist 193
8.4 Sicherheitsbedenken 194
8.4.1 Options 194
8.4.2 Schadensbegrenzung 197
8.5 Zusammenfassung 197
Kapitel 9 Virtuelles Hosting 199
9.1 Ausführen von separaten Daemons 200
9.1.1 Wann Sie dies tun sollten 200
9.1.2 Konfigurieren von separaten Daemons 201
9.1.3 Starten des Servers mit einer speziellen
Konfigurationsdatei 201
9.2 Verwenden von IP-basierten virtuellen Hosts 202
9.3 Verwenden von namens-basierten virtuellen Hosts 204
9.3.1 Die Funktionsweise eines namens-basierten
virtuellen Hosts 204
9.3.2 Die Direktive NameVirtualHost 204
9.3.3 Auswege bei älteren Browsern 205
9.4 Weitere Konfigurationsoptionen 206
9.4.1 Der virtuelle Host _default_ 206
9.4.2 Port-basierte virtuelle Hosts 206
9.5 Überprüfen Ihrer Konfiguration 207
9.6 Zusammenfassung 208
Kapitel 10 Apache als Proxy- und Cache-Server 209
10.1 Warum sollten Sie einen Proxy verwenden? 210
10.1.1 Was ist ein Web-Cache? 211
10.1.2 Probleme im Zusammenhang mit Proxies und Caches 212
10.1.3 Die Proxy- und Caching-Fähigkeiten von Apache 213
10.2 Konfigurieren von Apache für den Einsatz als Proxy-
oder Cache-Server 214
10.2.1 Apache als Proxy-Server einrichten 214
10.2.2 Apache als Cache-Server einrichten 218
10.2.3 Überlegungen zur Konfiguration 221
10.2.4 Zusammenfügen der Einzelteile 222
10.3 Konfigurieren der Clients 224
10.4 Zusammenfassung 227
Teil III Dynamische Inhalte 229
Kapitel 11 CGI-Programmierung 231
11.1 Die CGI-Spezifikation 232
11.1.1 Umgebungsvariablen 232
11.1.2 Die Befehlszeile ISINDEX 235
11.1.3 STDIN und STDOUT 235
11.1.4 Ausgewertete Header 235
11.1.5 Nicht auszuwertende Header (nph-Skripts) 236
11.2 Konfiguration des Servers für CGI 236
11.2.1 ScriptAlias 236
11.2.2 AddHandler 237
11.2.3 Options ExecCGI 238
11.3 CGI-Programme schreiben 238
11.3.1 MIME-Header 238
11.3.2 Benutzereingaben 239
11.3.3 Zustand 247
11.4 Ein CGI-Beispiel 247
11.5 CGI-Programme unter Windows 247
11.6 Häufig auftretende Probleme 248
11.6.1 Zugriffsrechte 248
11.6.2 Syntaxfehler 249
11.6.3 Ungültige Header 250
11.7 Alternativen zu CGI 250
11.7.1 Das Perl-Modul von Apache: mod_perl 251
11.7.2 FastCGI 251
11.7.3 Das PHP-Modul 251
11.8 Weitere Informationen 251
11.9 Zusammenfassung 252
Kapitel 12 SSI: Server-Side Includes 253
12.1 SSI-Server-Konfiguration 254
12.1.1 SSI für Dateierweiterungen aktivieren 255
12.1.2 XBitHack 256
12.1.3 SSI für MIME-Typen 257
12.2 SSI-Direktiven einsetzen 257
12.2.1 SSI-Direktiven 258
12.2.2 Variablen und Flusskontrolle 264
12.3 Zusammenfassung 267
Kapitel 13 Cookies 269
13.1 Was sind Cookies? 270
13.2 Geschichte der Cookies 272
13.3 Cookie-Zutaten 273
13.3.1 NAME=VALUE 273
13.3.2 Cookie-Namen 273
13.3.3 Cookie-Werte 274
13.3.4 Cookie-Daten kodieren 274
13.3.5 Größenbeschränkungen 275
13.3.6 Expires=DATE 275
13.3.7 Datums- und Zeitformat 276
13.3.8 Cookies löschen 276
13.3.9 Path=PATH 277
13.3.10 Domain=DOMAIN_NAME 278
13.3.11 Secure 279
13.4 Grenzen von Cookies 280
13.4.1 Maximale Cookie-Größe 280
13.4.2 Anzahl der Cookies 281
13.5 Cookies einrichten und senden 281
13.5.1 HTML 281
13.5.2 JavaScript 282
13.5.3 Perl 283
13.6 Cookies wiederauffinden und verarbeiten 285
13.7 Perl 285
13.8 Zusammenfassung 288
Kapitel 14 Handler 289
14.1 Begriffsdefinition 290
14.1.1 Phasen der Anforderungsverarbeitung 290
14.1.2 Phase der Inhaltsverarbeitung 291
14.2 Handler und MIME-Typen 294
14.3 Die AddHandler-Direktive 295
14.4 Die SetHandler-Direktive 296
14.5 Die RemoveHandler-Direktive 297
14.6 Die Action-Direktive 298
14.7 Die Script-Direktive 298
14.8 Fehlerbehandlung mit ErrorDocument 299
14.8.1 Einzeilige Fehlermeldungen 300
14.8.2 Fehlerbehandlung mit einem lokalen Dokument 302
14.8.3 CGI-Skripte verwenden 303
14.8.4 Fehlerumleitung über andere Sites 303
14.9 Standard-Handler 303
14.9.1 Die Standard-Handler für die Behandlung des Inhalts 304
14.9.2 ExtendedStatus 310
14.9.3 server-info 311
14.9.4 imap-file 312
14.9.5 Warum aktive Image-Maps so beliebt waren 312
14.9.6 Warum aktive Image-Maps nicht mehr benutzt werden 312
14.10 Zusammenfassung 313
Teil IV Sicherheit und Überwachung des Servers 315
Kapitel 15 Sicherheit 317
15.1 Schützen der Dateien des Web-Servers 318
15.1.1 Schreib/Lese- und Nur-Lese-Dateien 318
15.1.2 Symbolische Verknüpfungen 319
15.1.3 Die Option Indexes 320
15.2 Schützen der URLs der Web-Site 323
15.2.1 Obligatorische und wahlfreie Zugriffskontrolle 323
15.2.2 Authentifizierung, Autorisierung und Zugriff 328
15.2.3 Authentifizierung 329
15.2.4 Gültigkeitsbereiche und Realms 329
15.2.5 Autorisierungsdatenbanken 335
15.2.6 Autorisierungen 341
15.3 Echtzeitaktivitäten überwachen 342
15.4 Zusammenfassung 345
Kapitel 16 Authentifizierung 347
16.1 Was ist Authentifizierung? 348
16.1.1 Basic-Authentifizierung 348
16.1.2 Digest-Authentifizierung 349
16.2 Konfigurationsdirektiven für die Authentifizierung 351
16.2.1 AuthName 351
16.2.2 AuthType 352
16.2.3 AuthUserFile 352
16.2.4 AuthGroupFile 352
16.2.5 353
16.2.6 354
16.2.7 require 354
16.2.8 Der Ablauf 355
16.3 order, deny und allow 355
16.3.1 allow 355
16.3.2 deny 356
16.3.3 order 357
16.3.4 Satisfy 358
16.4 Beispielkonfigurationen 358
16.4.1 Bestimmte Benutzer zulassen 358
16.4.2 Bestimmten Benutzern das Zusenden erlauben 358
16.4.3 Zugriff aus einer bestimmten Domäne
gewähren/verweigern 359
16.4.4 Eine einzelne Datei schützen 359
16.4.5 Aussperren des Internet Explorer 359
16.4.6 Satisfy 359
16.5 Passwortdateien verwalten 360
16.5.1 Eine neue Passwortdatei erstellen 361
16.5.2 Einer vorhandenen Passwortdatei einen
Benutzer hinzufügen oder ein Passwort ändern 361
16.5.3 MD5-Verschlüsselung erzwingen 362
16.5.4 Benutzer aus der Passwortdatei löschen 362
16.5.5 Gruppendateien erstellen 362
16.6 mod_auth_dbm und mod_auth_db 362
16.6.1 Apache für mod_auth_db(m) vorbereiten 363
16.6.2 Benutzerdatenbank verwalten 363
16.6.3 Konfigurationsdirektiven einsetzen 364
16.7 Weitere Sicherheitsüberlegungen 365
16.7.1 Vergabe der Passwörter 365
16.7.2 Passwortänderungen 365
16.7.3 Zugriffsrechte für die Passwortdateien 365
16.7.4 Verwenden Sie nicht das Anmeldepasswort 366
16.7.5 Keine Basic-Authentifizierung bei vertraulichen Inhalten 366
16.8 Zusammenfassung 366
Kapitel 17 Spider, Robots und Web-Crawler 367
17.1 Was ist ein Spider? 368
17.2 Gute und schlechte Spider 369
17.2.1 Serverüberlastung 369
17.2.2 Schwarze Löcher 369
17.3 Spider mit Protokolldateien erkennen 370
17.4 Spider vom Server fernhalten 370
17.5 Das Meta-Tag ROBOTS 371
17.5.1 Kontakt mit dem Verantwortlichen aufnehmen 372
17.5.2 Einen Spider aussperren 372
17.6 Einen eigenen Spider programmieren 373
17.7 Zusammenfassung 375
Kapitel 18 Protokollierung 377
18.1 Das Übertragungsprotokoll (access_log) 378
18.1.1 Der Inhalt von access_log 378
18.1.2 Standort der access_log-Datei 380
18.1.3 Eigene Protokolldateien einrichten 381
18.2 Das Fehlerprotokoll error_log 385
18.2.1 Der Inhalt des Fehlerprotokolls 385
18.3 ScriptLog und damit verbundene Direktiven 387
18.3.1 ScriptLogBuffer 388
18.3.2 ScriptLogLength 389
18.4 Umgeleitete Protokolle 389
18.4.1 Umgeleitete Protokollierung - Beispiele 390
18.4.2 Zweites Beispiel 391
18.5 Programme für die Protokollauswertung 392
18.5.1 Tools für die Analyse 393
18.5.2 Wusage 393
18.5.3 wwwstat 394
18.5.4 WebTrends 396
18.5.5 Webalizer 397
18.5.6 Eigene Programme 398
18.6 Wechsel der Protokolldateien 399
18.7 Zusammenfassung 399
Teil V Programmentwicklung 401
Kapitel 19 Apache-Module - Einführung 403
19.1 Was sind Apache-Module? 404
19.1.1 Codemodularisierung 404
19.1.2 Ein Vergleich 405
19.1.3 Geschichte der modularen Programmierung 407
19.2 Standardverwendungen von Modulen 407
19.2.1 Authentifizierung 407
19.2.2 Autorisierung 409
19.2.3 Verschlüsselung 410
19.2.4 Unterstützung für Anwendungen und
Programmiersprachen 410
19.2.5 Module für Diagnose und Statistik 411
19.2.6 Protokollierung 412
19.2.7 Serveroperationen 412
19.2.8 Module für Web-Inhalte 413
19.3 Ein einfaches Beispiel für Module im Einsatz: der Serverstatus 414
19.4 Module installieren 416
19.4.1 Freigegebene Bibliotheken 416
19.4.2 Dynamisch freigegebene Objekte 422
19.5 Standardmodule für den Apache-Server einrichten 423
19.6 Erweiterte Modulinstallation 425
19.6.1 Module mit apxs und apachectl installieren 425
19.6.2 mod_perl installieren 427
19.6.3 PHP installieren 428
19.6.4 Fehlerbehebung bei der Modulinstallation 429
19.7 Zusammenfassung 429
Kapitel 20 Apache-Standardmodule einsetzen 431
20.1 Registrierung von Standardmodulen 432
20.2 Zusammenfassung 458
Kapitel 21 Perl-Module einsetzen 459
21.1 Einführung in mod_perl 460
21.1.1 Das Konzept von mod_perl 461
21.1.2 Vorteile von mod_perl 461
21.1.3 Aktuelle Version und Bezugsquellen 461
21.2 Mit mod_perl eingesetzte Perl-Module 462
21.3 mod_perl installieren 463
21.4 mod_perl konfigurieren 464
21.4.1 Perl-Module vorab laden 466
21.4.2 Phase Handler für Perl-Module 467
21.4.3 PerlChildInitHandler: Untergeordnete Prozesse erzeugen 468
21.4.4 PerlPostReadRequestHandler: Der Beginn
der Aufforderungsbearbeitung 468
21.4.5 PerlInitHandler: Anfängliches Handler-Alias festlegen 468
21.4.6 PerlTransHandler: Eine Anforderungs-URI in
einen Dateinamen umwandeln 468
21.4.7 PerlHeaderParserHandler: Reaktion auf einen
Anforderungs-Header 469
21.4.8 PerlAccessHandler: Zugriffskontrolle 469
21.4.9 PerlAuthenHandler: Auswertung der Benutzerkennung 469
21.4.10 PerlAuthzHandler: Überprüfen der Zugriffsrechte
für ein Dokument 470
21.4.11 PerlTypeHandler: Den Inhaltstyp der
Antwort bestimmen 470
21.4.12 PerlFixupHandler: Änderungen in letzter Minute 470
21.4.13 PerlHandler: Den Inhalt der Antwort erzeugen 471
21.4.14 PerlLogHandler: Protokollieren der
bearbeiteten Anforderung 471
21.4.15 PerlCleanUpHandler: Abschließende Aktivitäten 471
21.4.16 PerlChildExitHandler: Der Umgang mit
untergeordneten Apache-Prozessen 471
21.4.17 PerlDispatchHandler 471
21.4.18 PerlRestartHandler 472
21.4.19 Den Status von mod_perl anzeigen 472
21.5 mod_perl in Verbindung mit Datenbanken 473
21.6 Fehlerbeseitigung für mod_perl 473
21.7 Leistungssteigerung 474
21.8 Einfache mod_perl-Skripts und deren Verwendungen 476
21.9 Die Perl-Modulschnittstelle für mod_perl 477
21.10 Zusammenfassung 477
Kapitel 22 PHP-Module einsetzen 479
22.1 Der Verwendungszweck von PHP 480
22.1.1 Zur Geschichte von PHP 480
22.1.2 Warum keine einfachen SSIs? 481
22.1.3 Module oder CGI? 482
22.2 Aktuelle Version und Bezugsquellen 482
22.3 mod_php installieren und konfigurieren 482
22.3.1 Den PHP-Interpreter einrichten und installieren 483
22.3.2 php.ini: PHP konfigurieren 484
22.3.3 Apache für PHP konfigurieren 485
22.4 Syntax und Grundlagen für den Einsatz von mod_php 486
22.4.1 Bezeichner, Konstanten und Gültigkeitsbereiche 486
22.4.2 PHP-Datentypen 488
22.4.3 Operatoren und Ausdrücke 489
22.4.4 Eingaben über Web-Formulare 497
22.4.5 Klassen 498
22.5 Einfache mod_php-Skripts 500
22.6 PHP-Sites und Informationen im Web 504
22.7 Zusammenfassung 504
Kapitel 23 Weitere Module 505
23.1 Module zur Unterstützung von Programmiersprachen 506
23.1.1 Java und JavaScript 506
23.1.2 Python: PyApache 507
23.2 Anwendungs-Server 507
23.2.1 Java-Servlets und Java Server Pages 509
23.2.2 Java-Servlet und JSP-Implementierungen 511
23.2.3 ColdFusion 512
23.2.4 WebObjects 512
23.2.5 Active Server Pages (ASP) 513
23.2.6 Zope 513
23.3 Hilfsmodule 513
23.3.1 Nationale Zeichensätze: mod_fontxlate 514
23.3.2 Verwaltung der Bandbreite: mod_bandwidth 514
23.3.3 mod_lock 514
23.3.4 WebDAV: mod_dav 514
23.3.5 FTP: mod_conv 514
23.3.6 Oracle 514
23.3.7 Postgres 95 514
23.3.8 FrontPage-Unterstützung 515
23.4 Apache mit SSL 515
23.4.1 Die Funktionsweise von SSL 516
23.4.2 Apache und SSL-Implementierungen 518
23.5 Zusammenfassung 520
Kapitel 24 Mit der Apache-API arbeiten 521
24.1 Grundlagen des Modulaufbaus 522
24.1.1 Apache-Handler 522
24.1.2 Der Lebenszyklus eines Apache-Prozesses 523
24.1.3 Die Struktur module 523
24.1.4 Statuskodes der Apache-Handler 535
24.1.5 Apache-Datenstrukturen 537
24.1.6 Ressourcenpools 544
24.2 Weitere Strukturen und Funktionen der API 546
24.2.1 TCP/IP-Utilities 546
24.2.2 URI- und URL-Funktionen 547
24.2.3 Protokollierungsfunktionen 549
24.2.4 Datei- und Socket-Funktionen 550
24.2.5 HTTP-Funktionen 550
24.2.6 Konfigurationsdirektiven 552
24.2.7 Verzeichnisstruktur-APIs 553
24.2.8 Verschiedene Funktionen 556
24.3 Modulinstallation 556
24.4 Hinweise 557
24.5 Zusammenfassung 557
Kapitel 25 Beiträge zur Entwicklung von Apache 559
25.1 Beiträge 560
25.1.1 Geldmittel, Sach- oder Dienstleistungen 561
25.1.2 Beiträge in Form von Engagement 562
25.2 Apache-Projekte 563
25.3 Quellcode entwickeln 564
25.4 Hilfe bei der Fehlerbeseitigung 565
25.5 Software testen 567
25.6 Dokumentation 569
25.7 Sachleistungen 571
25.8 Zusammenfassung 572
Teil VI Anhänge 573
Anhang A Wo Sie weitere Informationen erhalten 575
A.1 Web-Sites 576
A.1.1 ApacheUnleashed.com 576
A.1.2 Das Apache-Server-Projekt 576
A.1.3 Apache Week 576
A.1.4 NSCA HTTPd 576
A.1.5 World Wide Web Consortium (W3C) 577
A.1.6 Mailing-Listen 577
A.1.7 Apache Week 577
A.1.8 apache-announce 577
A.1.9 HWG-servers 577
A.2 Usenet 578
A.2.1 comp.infosystems.www.servers 578
A.2.2 comp.infosystems.www.authoring.cgi 579
Anhang B Die CD-ROM zum Buch installieren 581
B.1 Für Windows 95, 98, NT und 2000 582
B.2 Für Linux und Unix 582
Stichwortverzeichnis 583
Teil I Einführung in Apache 27
Kapitel 1 Geschichte und Legenden von Apache 29
1.1 Die Anfänge 31
1.2 Wer ist verantwortlich? 32
1.3 Aktuelles Geschehen 32
1.4 Warum Apache so gut funktioniert 34
1.5 Zusammenfassung 35
Kapitel 2 HTTP 37
2.1 HTTP-Header 38
2.2 Die HTTP-Konversation 41
2.3 Client-Anforderung 42
2.3.1 GET 43
2.3.2 HEAD 43
2.3.3 POST 44
2.4 Anforderungs-Header 44
2.5 Anforderungsrumpf 47
2.6 Server-Statuscodes 47
2.7 Antwort-Header 51
2.8 Angeforderte Daten 53
2.9 Trennen oder KeepAlive 53
2.10 Beispiel einer HTTP-Konversation 53
2.11 Zusammenfassung 54
Kapitel 3 Kompilieren und Installieren von Apache 55
3.1 Systemanforderungen 56
3.2 Beschaffen von Apache 56
3.3 Download der Binärform 58
3.4 Download des Quellcodes 58
3.4.1 Überprüfen der Echtheit der Datei 59
3.4.2 Extrahieren der Dateiinhalte 59
3.5 Installation für Ungeduldige 60
3.6 Konfigurieren von Apache 60
3.6.1 Konfigurieren mit APACI 61
3.6.2 Manuelle Konfiguration 62
3.7 Kompilieren 63
3.8 Installieren 63
3.9 Installieren und Konfigurieren von Apache unter Windows 63
3.9.1 Installieren von Apache auf Windows 64
3.9.2 Installieren als Windows-NT-Dienst 64
3.9.3 Kompilieren von Apache für Windows 65
3.10 Zusammenfassung 66
Kapitel 4 Den Server starten, beenden und neu starten 67
4.1 Starten des Servers 68
4.1.1 Starten von Apache unter Unix 68
4.1.2 Starten von Apache unter Windows 71
4.1.3 Ausführen von Apache als Konsolenanwendung 74
4.2 Beenden des Servers und Neustart 75
4.2.1 Beenden und Neustart unter Unix 75
4.2.2 Beenden und Neustart unter Windows 77
4.3 Das Skript apachectl 79
4.3.1 apachectl anwenden 79
4.3.2 apachectl konfigurieren 79
4.4 Zusammenfassung 80
Teil II Konfigurieren von Apache 81
Kapitel 5 Server-Konfigurationsdateien 83
5.1 Eine statt drei Dateien 84
5.2 Kern- und Basiskonfigurationsdirektiven 85
5.3 Zusammenfassung 154
Kapitel 6 Apache mit Comanche konfigurieren 155
6.1 So können Sie sich Comanche besorgen 157
6.2 So verwenden Sie Comanche 157
6.2.1 Starten von Comanche 157
6.2.2 Die Benutzerschnittstelle 158
6.3 Konfigurieren des Servers 159
6.4 Abschnitte 162
6.4.1 Konfigurieren von
6.4.2 Konfigurieren von
6.4.3 Konfigurieren von
6.5 Konfigurieren von virtuellen Hosts 166
6.6 Server-Verwaltungsaufgaben 167
6.7 Erweitern von Comanche 167
6.8 Einschränkungen 168
6.8.1 Sie müssen an der Konsole arbeiten 168
6.8.2 Sie müssen Tcl lernen, um Comanche zu erweitern 168
6.8.3 Sie müssen etwas über die Konfigurationsdateien wissen 169
6.9 Zusammenfassung 169
Kapitel 7 MIME-Typen 171
7.1 Was ist MIME? 172
7.2 Standard-MIME-Typen 174
7.3 Ableiten des MIME-Typs von den Dateiinhalten 175
7.4 MIME-Typen und Dateinamen 176
7.4.1 Die Standardzuordnungsdatei mime.types 176
7.4.2 Die Direktive TypesConfig 177
7.4.3 Die Direktive AddType 178
7.4.4 Die Direktive ForceType 178
7.4.5 Die Direktive AddEncoding 180
7.5 Vererbung von MIME-Einstellungen 181
7.6 Verwalten von MIME-Typen 181
7.6.1 Verwalten von MIME-Typen mit Konfigurationsdateien 181
7.6.2 Verwalten von MIME-Typen in .htaccess-Dateien 182
7.6.3 Verwalten von MIME-Typen für ein
einzelnes Verzeichnis 182
7.7 Die MIME-Information 183
7.7.1 Die Direktive AddIconByType 184
7.7.2 Die Direktive AddAltByType 184
7.7.3 Die Direktive AddIconByEncoding 184
7.7.4 Die Direktive AddAltByEncoding 185
7.7.5 Die Direktive ExpiresByType 185
7.8 Client-Verhalten 186
7.9 Zusammenfassung 187
Kapitel 8 .htaccess-Dateien 189
8.1 Gründe für die Verwendung von .htaccess-Dateien 190
8.2 Verwendungszwecke für .htaccess-Dateien 192
8.2.1 Authentifizierung 192
8.2.2 Gestatten von CGI 193
8.3 Beschränken, was gestattet ist 193
8.4 Sicherheitsbedenken 194
8.4.1 Options 194
8.4.2 Schadensbegrenzung 197
8.5 Zusammenfassung 197
Kapitel 9 Virtuelles Hosting 199
9.1 Ausführen von separaten Daemons 200
9.1.1 Wann Sie dies tun sollten 200
9.1.2 Konfigurieren von separaten Daemons 201
9.1.3 Starten des Servers mit einer speziellen
Konfigurationsdatei 201
9.2 Verwenden von IP-basierten virtuellen Hosts 202
9.3 Verwenden von namens-basierten virtuellen Hosts 204
9.3.1 Die Funktionsweise eines namens-basierten
virtuellen Hosts 204
9.3.2 Die Direktive NameVirtualHost 204
9.3.3 Auswege bei älteren Browsern 205
9.4 Weitere Konfigurationsoptionen 206
9.4.1 Der virtuelle Host _default_ 206
9.4.2 Port-basierte virtuelle Hosts 206
9.5 Überprüfen Ihrer Konfiguration 207
9.6 Zusammenfassung 208
Kapitel 10 Apache als Proxy- und Cache-Server 209
10.1 Warum sollten Sie einen Proxy verwenden? 210
10.1.1 Was ist ein Web-Cache? 211
10.1.2 Probleme im Zusammenhang mit Proxies und Caches 212
10.1.3 Die Proxy- und Caching-Fähigkeiten von Apache 213
10.2 Konfigurieren von Apache für den Einsatz als Proxy-
oder Cache-Server 214
10.2.1 Apache als Proxy-Server einrichten 214
10.2.2 Apache als Cache-Server einrichten 218
10.2.3 Überlegungen zur Konfiguration 221
10.2.4 Zusammenfügen der Einzelteile 222
10.3 Konfigurieren der Clients 224
10.4 Zusammenfassung 227
Teil III Dynamische Inhalte 229
Kapitel 11 CGI-Programmierung 231
11.1 Die CGI-Spezifikation 232
11.1.1 Umgebungsvariablen 232
11.1.2 Die Befehlszeile ISINDEX 235
11.1.3 STDIN und STDOUT 235
11.1.4 Ausgewertete Header 235
11.1.5 Nicht auszuwertende Header (nph-Skripts) 236
11.2 Konfiguration des Servers für CGI 236
11.2.1 ScriptAlias 236
11.2.2 AddHandler 237
11.2.3 Options ExecCGI 238
11.3 CGI-Programme schreiben 238
11.3.1 MIME-Header 238
11.3.2 Benutzereingaben 239
11.3.3 Zustand 247
11.4 Ein CGI-Beispiel 247
11.5 CGI-Programme unter Windows 247
11.6 Häufig auftretende Probleme 248
11.6.1 Zugriffsrechte 248
11.6.2 Syntaxfehler 249
11.6.3 Ungültige Header 250
11.7 Alternativen zu CGI 250
11.7.1 Das Perl-Modul von Apache: mod_perl 251
11.7.2 FastCGI 251
11.7.3 Das PHP-Modul 251
11.8 Weitere Informationen 251
11.9 Zusammenfassung 252
Kapitel 12 SSI: Server-Side Includes 253
12.1 SSI-Server-Konfiguration 254
12.1.1 SSI für Dateierweiterungen aktivieren 255
12.1.2 XBitHack 256
12.1.3 SSI für MIME-Typen 257
12.2 SSI-Direktiven einsetzen 257
12.2.1 SSI-Direktiven 258
12.2.2 Variablen und Flusskontrolle 264
12.3 Zusammenfassung 267
Kapitel 13 Cookies 269
13.1 Was sind Cookies? 270
13.2 Geschichte der Cookies 272
13.3 Cookie-Zutaten 273
13.3.1 NAME=VALUE 273
13.3.2 Cookie-Namen 273
13.3.3 Cookie-Werte 274
13.3.4 Cookie-Daten kodieren 274
13.3.5 Größenbeschränkungen 275
13.3.6 Expires=DATE 275
13.3.7 Datums- und Zeitformat 276
13.3.8 Cookies löschen 276
13.3.9 Path=PATH 277
13.3.10 Domain=DOMAIN_NAME 278
13.3.11 Secure 279
13.4 Grenzen von Cookies 280
13.4.1 Maximale Cookie-Größe 280
13.4.2 Anzahl der Cookies 281
13.5 Cookies einrichten und senden 281
13.5.1 HTML 281
13.5.2 JavaScript 282
13.5.3 Perl 283
13.6 Cookies wiederauffinden und verarbeiten 285
13.7 Perl 285
13.8 Zusammenfassung 288
Kapitel 14 Handler 289
14.1 Begriffsdefinition 290
14.1.1 Phasen der Anforderungsverarbeitung 290
14.1.2 Phase der Inhaltsverarbeitung 291
14.2 Handler und MIME-Typen 294
14.3 Die AddHandler-Direktive 295
14.4 Die SetHandler-Direktive 296
14.5 Die RemoveHandler-Direktive 297
14.6 Die Action-Direktive 298
14.7 Die Script-Direktive 298
14.8 Fehlerbehandlung mit ErrorDocument 299
14.8.1 Einzeilige Fehlermeldungen 300
14.8.2 Fehlerbehandlung mit einem lokalen Dokument 302
14.8.3 CGI-Skripte verwenden 303
14.8.4 Fehlerumleitung über andere Sites 303
14.9 Standard-Handler 303
14.9.1 Die Standard-Handler für die Behandlung des Inhalts 304
14.9.2 ExtendedStatus 310
14.9.3 server-info 311
14.9.4 imap-file 312
14.9.5 Warum aktive Image-Maps so beliebt waren 312
14.9.6 Warum aktive Image-Maps nicht mehr benutzt werden 312
14.10 Zusammenfassung 313
Teil IV Sicherheit und Überwachung des Servers 315
Kapitel 15 Sicherheit 317
15.1 Schützen der Dateien des Web-Servers 318
15.1.1 Schreib/Lese- und Nur-Lese-Dateien 318
15.1.2 Symbolische Verknüpfungen 319
15.1.3 Die Option Indexes 320
15.2 Schützen der URLs der Web-Site 323
15.2.1 Obligatorische und wahlfreie Zugriffskontrolle 323
15.2.2 Authentifizierung, Autorisierung und Zugriff 328
15.2.3 Authentifizierung 329
15.2.4 Gültigkeitsbereiche und Realms 329
15.2.5 Autorisierungsdatenbanken 335
15.2.6 Autorisierungen 341
15.3 Echtzeitaktivitäten überwachen 342
15.4 Zusammenfassung 345
Kapitel 16 Authentifizierung 347
16.1 Was ist Authentifizierung? 348
16.1.1 Basic-Authentifizierung 348
16.1.2 Digest-Authentifizierung 349
16.2 Konfigurationsdirektiven für die Authentifizierung 351
16.2.1 AuthName 351
16.2.2 AuthType 352
16.2.3 AuthUserFile 352
16.2.4 AuthGroupFile 352
16.2.5
16.2.6
16.2.7 require 354
16.2.8 Der Ablauf 355
16.3 order, deny und allow 355
16.3.1 allow 355
16.3.2 deny 356
16.3.3 order 357
16.3.4 Satisfy 358
16.4 Beispielkonfigurationen 358
16.4.1 Bestimmte Benutzer zulassen 358
16.4.2 Bestimmten Benutzern das Zusenden erlauben 358
16.4.3 Zugriff aus einer bestimmten Domäne
gewähren/verweigern 359
16.4.4 Eine einzelne Datei schützen 359
16.4.5 Aussperren des Internet Explorer 359
16.4.6 Satisfy 359
16.5 Passwortdateien verwalten 360
16.5.1 Eine neue Passwortdatei erstellen 361
16.5.2 Einer vorhandenen Passwortdatei einen
Benutzer hinzufügen oder ein Passwort ändern 361
16.5.3 MD5-Verschlüsselung erzwingen 362
16.5.4 Benutzer aus der Passwortdatei löschen 362
16.5.5 Gruppendateien erstellen 362
16.6 mod_auth_dbm und mod_auth_db 362
16.6.1 Apache für mod_auth_db(m) vorbereiten 363
16.6.2 Benutzerdatenbank verwalten 363
16.6.3 Konfigurationsdirektiven einsetzen 364
16.7 Weitere Sicherheitsüberlegungen 365
16.7.1 Vergabe der Passwörter 365
16.7.2 Passwortänderungen 365
16.7.3 Zugriffsrechte für die Passwortdateien 365
16.7.4 Verwenden Sie nicht das Anmeldepasswort 366
16.7.5 Keine Basic-Authentifizierung bei vertraulichen Inhalten 366
16.8 Zusammenfassung 366
Kapitel 17 Spider, Robots und Web-Crawler 367
17.1 Was ist ein Spider? 368
17.2 Gute und schlechte Spider 369
17.2.1 Serverüberlastung 369
17.2.2 Schwarze Löcher 369
17.3 Spider mit Protokolldateien erkennen 370
17.4 Spider vom Server fernhalten 370
17.5 Das Meta-Tag ROBOTS 371
17.5.1 Kontakt mit dem Verantwortlichen aufnehmen 372
17.5.2 Einen Spider aussperren 372
17.6 Einen eigenen Spider programmieren 373
17.7 Zusammenfassung 375
Kapitel 18 Protokollierung 377
18.1 Das Übertragungsprotokoll (access_log) 378
18.1.1 Der Inhalt von access_log 378
18.1.2 Standort der access_log-Datei 380
18.1.3 Eigene Protokolldateien einrichten 381
18.2 Das Fehlerprotokoll error_log 385
18.2.1 Der Inhalt des Fehlerprotokolls 385
18.3 ScriptLog und damit verbundene Direktiven 387
18.3.1 ScriptLogBuffer 388
18.3.2 ScriptLogLength 389
18.4 Umgeleitete Protokolle 389
18.4.1 Umgeleitete Protokollierung - Beispiele 390
18.4.2 Zweites Beispiel 391
18.5 Programme für die Protokollauswertung 392
18.5.1 Tools für die Analyse 393
18.5.2 Wusage 393
18.5.3 wwwstat 394
18.5.4 WebTrends 396
18.5.5 Webalizer 397
18.5.6 Eigene Programme 398
18.6 Wechsel der Protokolldateien 399
18.7 Zusammenfassung 399
Teil V Programmentwicklung 401
Kapitel 19 Apache-Module - Einführung 403
19.1 Was sind Apache-Module? 404
19.1.1 Codemodularisierung 404
19.1.2 Ein Vergleich 405
19.1.3 Geschichte der modularen Programmierung 407
19.2 Standardverwendungen von Modulen 407
19.2.1 Authentifizierung 407
19.2.2 Autorisierung 409
19.2.3 Verschlüsselung 410
19.2.4 Unterstützung für Anwendungen und
Programmiersprachen 410
19.2.5 Module für Diagnose und Statistik 411
19.2.6 Protokollierung 412
19.2.7 Serveroperationen 412
19.2.8 Module für Web-Inhalte 413
19.3 Ein einfaches Beispiel für Module im Einsatz: der Serverstatus 414
19.4 Module installieren 416
19.4.1 Freigegebene Bibliotheken 416
19.4.2 Dynamisch freigegebene Objekte 422
19.5 Standardmodule für den Apache-Server einrichten 423
19.6 Erweiterte Modulinstallation 425
19.6.1 Module mit apxs und apachectl installieren 425
19.6.2 mod_perl installieren 427
19.6.3 PHP installieren 428
19.6.4 Fehlerbehebung bei der Modulinstallation 429
19.7 Zusammenfassung 429
Kapitel 20 Apache-Standardmodule einsetzen 431
20.1 Registrierung von Standardmodulen 432
20.2 Zusammenfassung 458
Kapitel 21 Perl-Module einsetzen 459
21.1 Einführung in mod_perl 460
21.1.1 Das Konzept von mod_perl 461
21.1.2 Vorteile von mod_perl 461
21.1.3 Aktuelle Version und Bezugsquellen 461
21.2 Mit mod_perl eingesetzte Perl-Module 462
21.3 mod_perl installieren 463
21.4 mod_perl konfigurieren 464
21.4.1 Perl-Module vorab laden 466
21.4.2 Phase Handler für Perl-Module 467
21.4.3 PerlChildInitHandler: Untergeordnete Prozesse erzeugen 468
21.4.4 PerlPostReadRequestHandler: Der Beginn
der Aufforderungsbearbeitung 468
21.4.5 PerlInitHandler: Anfängliches Handler-Alias festlegen 468
21.4.6 PerlTransHandler: Eine Anforderungs-URI in
einen Dateinamen umwandeln 468
21.4.7 PerlHeaderParserHandler: Reaktion auf einen
Anforderungs-Header 469
21.4.8 PerlAccessHandler: Zugriffskontrolle 469
21.4.9 PerlAuthenHandler: Auswertung der Benutzerkennung 469
21.4.10 PerlAuthzHandler: Überprüfen der Zugriffsrechte
für ein Dokument 470
21.4.11 PerlTypeHandler: Den Inhaltstyp der
Antwort bestimmen 470
21.4.12 PerlFixupHandler: Änderungen in letzter Minute 470
21.4.13 PerlHandler: Den Inhalt der Antwort erzeugen 471
21.4.14 PerlLogHandler: Protokollieren der
bearbeiteten Anforderung 471
21.4.15 PerlCleanUpHandler: Abschließende Aktivitäten 471
21.4.16 PerlChildExitHandler: Der Umgang mit
untergeordneten Apache-Prozessen 471
21.4.17 PerlDispatchHandler 471
21.4.18 PerlRestartHandler 472
21.4.19 Den Status von mod_perl anzeigen 472
21.5 mod_perl in Verbindung mit Datenbanken 473
21.6 Fehlerbeseitigung für mod_perl 473
21.7 Leistungssteigerung 474
21.8 Einfache mod_perl-Skripts und deren Verwendungen 476
21.9 Die Perl-Modulschnittstelle für mod_perl 477
21.10 Zusammenfassung 477
Kapitel 22 PHP-Module einsetzen 479
22.1 Der Verwendungszweck von PHP 480
22.1.1 Zur Geschichte von PHP 480
22.1.2 Warum keine einfachen SSIs? 481
22.1.3 Module oder CGI? 482
22.2 Aktuelle Version und Bezugsquellen 482
22.3 mod_php installieren und konfigurieren 482
22.3.1 Den PHP-Interpreter einrichten und installieren 483
22.3.2 php.ini: PHP konfigurieren 484
22.3.3 Apache für PHP konfigurieren 485
22.4 Syntax und Grundlagen für den Einsatz von mod_php 486
22.4.1 Bezeichner, Konstanten und Gültigkeitsbereiche 486
22.4.2 PHP-Datentypen 488
22.4.3 Operatoren und Ausdrücke 489
22.4.4 Eingaben über Web-Formulare 497
22.4.5 Klassen 498
22.5 Einfache mod_php-Skripts 500
22.6 PHP-Sites und Informationen im Web 504
22.7 Zusammenfassung 504
Kapitel 23 Weitere Module 505
23.1 Module zur Unterstützung von Programmiersprachen 506
23.1.1 Java und JavaScript 506
23.1.2 Python: PyApache 507
23.2 Anwendungs-Server 507
23.2.1 Java-Servlets und Java Server Pages 509
23.2.2 Java-Servlet und JSP-Implementierungen 511
23.2.3 ColdFusion 512
23.2.4 WebObjects 512
23.2.5 Active Server Pages (ASP) 513
23.2.6 Zope 513
23.3 Hilfsmodule 513
23.3.1 Nationale Zeichensätze: mod_fontxlate 514
23.3.2 Verwaltung der Bandbreite: mod_bandwidth 514
23.3.3 mod_lock 514
23.3.4 WebDAV: mod_dav 514
23.3.5 FTP: mod_conv 514
23.3.6 Oracle 514
23.3.7 Postgres 95 514
23.3.8 FrontPage-Unterstützung 515
23.4 Apache mit SSL 515
23.4.1 Die Funktionsweise von SSL 516
23.4.2 Apache und SSL-Implementierungen 518
23.5 Zusammenfassung 520
Kapitel 24 Mit der Apache-API arbeiten 521
24.1 Grundlagen des Modulaufbaus 522
24.1.1 Apache-Handler 522
24.1.2 Der Lebenszyklus eines Apache-Prozesses 523
24.1.3 Die Struktur module 523
24.1.4 Statuskodes der Apache-Handler 535
24.1.5 Apache-Datenstrukturen 537
24.1.6 Ressourcenpools 544
24.2 Weitere Strukturen und Funktionen der API 546
24.2.1 TCP/IP-Utilities 546
24.2.2 URI- und URL-Funktionen 547
24.2.3 Protokollierungsfunktionen 549
24.2.4 Datei- und Socket-Funktionen 550
24.2.5 HTTP-Funktionen 550
24.2.6 Konfigurationsdirektiven 552
24.2.7 Verzeichnisstruktur-APIs 553
24.2.8 Verschiedene Funktionen 556
24.3 Modulinstallation 556
24.4 Hinweise 557
24.5 Zusammenfassung 557
Kapitel 25 Beiträge zur Entwicklung von Apache 559
25.1 Beiträge 560
25.1.1 Geldmittel, Sach- oder Dienstleistungen 561
25.1.2 Beiträge in Form von Engagement 562
25.2 Apache-Projekte 563
25.3 Quellcode entwickeln 564
25.4 Hilfe bei der Fehlerbeseitigung 565
25.5 Software testen 567
25.6 Dokumentation 569
25.7 Sachleistungen 571
25.8 Zusammenfassung 572
Teil VI Anhänge 573
Anhang A Wo Sie weitere Informationen erhalten 575
A.1 Web-Sites 576
A.1.1 ApacheUnleashed.com 576
A.1.2 Das Apache-Server-Projekt 576
A.1.3 Apache Week 576
A.1.4 NSCA HTTPd 576
A.1.5 World Wide Web Consortium (W3C) 577
A.1.6 Mailing-Listen 577
A.1.7 Apache Week 577
A.1.8 apache-announce 577
A.1.9 HWG-servers 577
A.2 Usenet 578
A.2.1 comp.infosystems.www.servers 578
A.2.2 comp.infosystems.www.authoring.cgi 579
Anhang B Die CD-ROM zum Buch installieren 581
B.1 Für Windows 95, 98, NT und 2000 582
B.2 Für Linux und Unix 582
Stichwortverzeichnis 583