Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
15
1 TCP/IP-Netzwerke, Internet und WWW
21
1.1 TCP/IP
21
1.1.1 Das Internet-Schichtenmodell
22
1.1.2 Das Internet Protocol (IP)
24
1.1.3 Transportprotokolle
30
1.2 Das Domain Name System (DNS)
32
1.2.1 Das DNS-Konzept
33
1.2.2 Der DNS-Server BIND
36
1.3 TCP/IP-Diagnose und -Fehlersuche
42
1.3.1 ping
42
1.3.2 traceroute
43
1.3.3 netstat
44
1.3.4 nslookup
45
1.3.5 telnet
46
1.4 Zusammenfassung
48
2 Funktionsweise von Webservern
49
2.1 Das HTTP
49
2.1.1 Die HTTP-Client-Anfrage
51
2.1.2 HTTP-Statuscodes
62
2.1.3 HTTP-Header
68
2.2 Einstieg für Programmierer: ein selbst geschriebener Webserver
86
2.2.1 Projektanforderungen
87
2.2.2 Implementierungsdetails
87
2.2.3 Der komplette Quellcode
97
2.2.4 Benutzerdokumentation
102
2.3 Zusammenfassung
104
3 Apache 2 im Überblick
105
3.1 Einführung
105
3.1.1 Entstehungsgeschichte des Apache-Webservers
106
3.1.2 Die Apache Software Foundation
108
3.1.3 Die Apache-Softwarelizenz
111
3.1.4 Sonstige Webserver
113
3.2 Funktionen von Apache 2
116
3.2.1 Technischer Überblick
118
3.2.2 Apache-Module
133
3.3 Zusammenfassung
147
4 Apache kompilieren und installieren
149
4.1 Apache 2 kompilieren
150
4.1.1 Den Quellcode besorgen und auspacken
150
4.1.2 Apache 2 unter UNIX kompilieren
152
4.1.3 Apache 2 unter Windows kompilieren
182
4.2 Die binäre Apache-Distribution für Windows installieren
187
4.3 Module nachträglich installieren
192
4.4 Zusammenfassung
194
5 Apache in Betrieb nehmen
195
5.1 Apache 2 starten und beenden
195
5.1.1 Apache unter UNIX steuern
195
5.1.2 Apache unter Windows steuern
206
5.1.3 Apache-Hilfsprogramme
215
5.2 Apache testen
216
5.2.1 Die automatische Startseite
216
5.2.2 Die erste Website
217
5.3 Zusammenfassung
224
6 Grundkonfiguration
225
6.1 Aufbau der Apache-Konfigurationsdateien
225
6.1.1 Namen, Pfad und Aufgaben der Konfigurationsdateien
226
6.1.2 Grundlegendes zur Syntax
229
6.1.3 Syntaxschema
232
6.2 Kontexte und Container
234
6.2.1 Der Server-Kontext
234
6.2.2 Virtuelle Hosts
234
6.2.3 Verzeichnis- und Datei-Container
235
6.2.4 Spezial-Container
240
6.2.5 .htaccess-Dateien
253
6.2.6 Einfügen externer Konfigurationsdateien
255
6.3 Allgemeine Konfigurationsdirektiven
256
6.3.1 Einrichten der Server-Umgebung
256
6.3.2 Plattformspezifische Server-Einstellungen
266
6.3.3 Konfiguration des »Hauptservers«
279
6.3.4 Wichtige Verzeichniseinstellungen
288
6.4 Zusammenfassung
298
7 Header und MIME-Einstellungen
301
7.1 HTTP-Header manipulieren
301
7.1.1 MD5-Digest und ETag
301
7.1.2 mod_headers
303
7.1.3 mod_expires
309
7.1.4 mod_asis
312
7.1.5 mod_cern_meta
313
7.2 MIME-Konfiguration
315
7.2.1 MIME-Type-Einstellungen
316
7.2.2 Zeichensatzeinstellungen
323
7.2.3 MIME-Codierung
326
7.2.4 Spracheinstellungen
327
7.2.5 Handler festlegen
329
7.3 Content-Negotiation
332
7.3.1 Servergesteuerte Content-Negotiation
333
7.3.2 Transparente Content-Negotiation
339
7.3.3 Konfigurationseinstellungen für Content-Negotiation
341
7.4 Zusammenfassung
344
8 Weiterleitungen und Indizes
345
8.1 Aliase und Weiterleitungen
345
8.1.1 mod_alias
346
8.1.2 mod_rewrite
352
8.1.3 Benutzerverzeichnisse veröffentlichen
372
8.1.4 Fehlerbehandlung
375
8.1.5 Rechtschreibkorrektur in URLs mit mod_speling
376
8.1.6 Status- und Konfigurationsinformationen über den Server
378
8.2 Indizes
381
8.2.1 mod_autoindex
382
8.2.2 Serverseitige Image Maps mit mod_imagemap
393
8.3 Zusammenfassung
398
9 Authentifizierung, Autorisierung und Zugriffskontrolle
399
9.1 Grundlagen
399
9.1.1 Die Organisation der Authentifizierungsmodule seit Apache 2.2
401
9.1.2 Ein erstes Beispiel
403
9.1.3 Grunddirektiven zur Authentifizierung
405
9.2 Basic-Authentifizierung
414
9.2.1 Das Programm htpasswd
414
9.2.2 Direktiven zur textdateibasierten Basic-Authentifizierung
416
9.3 Digest-Authentifizierung
419
9.3.1 Das Tool htdigest
421
9.3.2 Direktiven zur Digest-Authentifizierung
422
9.4 Benutzer- und Passwortverwaltung in DBMDateien
426
9.4.1 Das Tool dbmmanage
427
9.4.2 Das Programm htdbm
430
9.4.3 DBM-Direktiven
431
9.5 LDAP-Authentifizierung
434
9.5.1 LDAP-Grundwissen
434
9.5.2 OpenLDAP einrichten und verwalten
437
9.5.3 LDAP-Authentifizierungs-Direktiven
441
9.5.4 LDAP-Performance-Verbesserung mit mod_ldap
448
9.6 Anonymous-Authentifizierung
454
9.7 Datenbankbasierte Authentifizierung mit mod_authn_dbd
457
9.7.1 Datenbankverbindungen mit mod_dbd
457
9.7.2 mod_authn_dbd-Direktiven
461
9.8 Formularbasierte Authentifizierung mit mod_auth_form
462
9.8.1 Formular- und Konfigurations-Beispiel
462
9.8.2 mod_auth_form-Direktiven
463
9.9 Weitere Authentifizierungseinstellungen
469
9.9.1 Provider-Aliase
469
9.9.2 mod_authz_owner
471
9.9.3 mod_authn_default und mod_authz_default
471
9.10 Zusammenfassung
472
10 Gesicherte Verbindungen
475
10.1 SSL-Grundlagen
476
10.1.1 SSL einrichten
478
10.1.2 SSL-Grundkonfiguration
482
10.1.3 mod_ssl-Umgebungsvariablen
484
10.2 mod_ssl-Direktiven
485
10.2.1 Standard-Direktiven
486
10.2.2 mod_ssl-Proxy-Direktiven
510
10.2.3 mod_nw_ssl für NetWare
513
10.3 Zusammenfassung
514
11 Logging
515
11.1 Logging-Direktiven und -Module
516
11.1.1 Core-Direktiven
516
11.1.2 mod_log_config
524
11.1.3 mod_log_forensic
532
11.1.4 mod_dumpio
533
11.1.5 mod_usertrack
534
11.1.6 Logging-Direktiven in mod_rewrite
537
11.1.7 Benutzerdefinierte Debug-Log-Meldungen
538
11.2 Auswertung von Log-Dateien
539
11.2.1 Apache-Hilfsprogramme
540
11.2.2 Log-Datei-Auswertung durch eigene Skripte
542
11.2.3 Externe Tools
552
11.3 Zusammenfassung
553
12 Skalierung und Performance-Tuning
555
12.1 Virtuelle Hosts
555
12.1.1 Konfigurationsbeispiele
556
12.1.2 Core-Direktiven für virtuelle Hosts
560
12.1.3 mod_vhost_alias
563
12.2 Performance-Tuning
566
12.2.1 Allgemeines
567
12.2.2 Benchmarks mit ab
568
12.2.3 Performance-bezogene Core-Direktiven
571
12.2.4 mod_file_cache: häufig genutzte Dateien vorausladen
572
12.3 Load-Balancing
574
12.3.1 Load-Balancing mit mod_rewrite
575
12.3.2 Open-Source-Lösungen für Load-Balancing
577
12.4 Zusammenfassung
578
13 Proxy- und Cache-Funktionen
579
13.1 Apache als Proxy-Server
579
13.1.1 Proxy-Grundkonfiguration
581
13.1.2 Referenz der Proxy-Direktiven
584
13.1.3 mod_proxy_html
603
13.1.4 Massen-Reverse-Proxys mit mod_proxy_express
610
13.2 Cache-Funktionen
611
13.2.1 Cache-Grundkonfiguration
612
13.2.2 Cache-Direktiven
614
13.2.3 htcacheclean
625
13.3 Zusammenfassung
626
14 CGI
629
14.1 Die CGI-Schnittstelle
629
14.1.1 FastCGI
632
14.2 Apache für CGI-Skripte konfigurieren
633
14.2.1 CGI-Verzeichnisse
633
14.2.2 CGI in normalen Verzeichnissen aktivieren
636
14.2.3 Konfigurationsanweisungen für mod_cgi und mod_cgid
638
14.2.4 Plattformspezifische Einstellungen
641
14.2.5 Das Modul mod_actions
643
14.3 Umgebungsvariablen
645
14.3.1 Die Umgebungsvariablen im Überblick
646
14.3.2 Umgebungsvariablen in der Apache-Konfiguration setzen
648
14.4 Session-Verwaltung mit mod_session
654
14.4.1 Ein einfaches Konfigurationsbeispiel
655
14.4.2 Session-Direktiven
656
14.5 Grundlagen der CGI-Programmierung
665
14.5.1 Das erste Beispiel
666
14.5.2 Formulardaten einlesen
667
14.6 Das Perl-Modul CGI.pm
668
14.6.1 CGI.pm im Überblick
669
14.6.2 Beispiel: Ein kleiner Taschenrechner
675
14.6.3 CGI.pm-Kurzreferenz
679
14.7 Zusammenfassung
687
15 Technologien zur Webprogrammierung
689
15.1 PHP
690
15.1.1 MySQL installieren
691
15.1.2 PHP installieren
697
15.1.3 Die PHP-Konfigurationsdatei php.ini
703
15.1.4 phpMyAdmin einrichten
706
15.1.5 PHP-Programmierung
708
15.2 mod_perl
719
15.2.1 Installation von mod_perl
720
15.2.2 Perl-Zugriff auf MySQL-Datenbanken
726
15.2.3 Perl in der Apache-Konfigurationsdatei
727
15.3 Tomcat
729
15.3.1 Tomcat installieren
729
15.3.2 Tomcat per Proxy einbinden
734
15.3.3 Java-Webprogrammierung
735
15.4 mod_lua
740
15.4.1 Ein einfaches Beispiel
740
15.4.2 mod_lua-Direktiven
742
15.5 Weitere Programmierschnittstellen
746
15.5.1 ISAPI-Anwendungen mit mod_isapi
746
15.5.2 Sonstige Technologien
749
15.6 Zusammenfassung
750
16 SSI und Filter
753
16.1 Server Side Includes (SSI)
753
16.1.1 SSI aktivieren
754
16.1.2 SSI-Elemente
754
16.1.3 mod_include-Direktiven
761
16.2 Filterkonfiguration
765
16.2.1 Grundlegende Filterdirektiven
765
16.2.2 Freie Modifikation der Filter Chain mit mod_filter
770
16.2.3 Der Komprimierungsfilter mod_deflate
775
16.2.4 mod_charset_lite
778
16.2.5 mod_xml2enc
780
16.2.6 Inhalt ersetzen mit mod_substitute
781
16.3 Externe Filter programmieren
786
16.3.1 mod_ext_filter
786
16.3.2 Beispiele für externe Filter
789
16.4 Zusammenfassung
794
17 Apache erweitern
795
17.1 WebDAV
795
17.1.1 Konfigurationsbeispiel
796
17.1.2 DAV-Direktiven
796
17.2 Weitere Module
798
17.2.1 Multiprotokoll-Unterstützung
799
17.2.2 Weitere Drittanbieter-Module
800
17.3 Programmierung eigener Module
806
17.3.1 mod_example – Erforschen der Modul-API
806
17.3.2 Arbeitsweise von Modulen
807
17.3.3 Die Modulentwicklung
808
17.3.4 mod_daytime – ein Beispiel zur Multiprotokoll-Unterstützung
820
17.4 Zusammenfassung
824
18 Sicherheit
825
18.1 Sicherheit der Server-Umgebung
825
18.2 Apache-Sicherheit
827
18.2.1 Allgemeine Sicherheitshinweise
827
18.2.2 Sicherheitsrelevante Direktiven
829
18.2.3 SuEXEC
834
18.3 mod_security
837
18.4 Zusammenfassung
838
19 Kommentierte Konfigurationsdateien
841
19.1 Die Originalkonfigurationsdateien
841
19.1.1 Die Grundkonfigurationsdatei httpd.conf
842
19.1.2 Server-Pool-Verwaltung (httpd-mpm.conf)
854
19.1.3 Mehrsprachige Fehlermeldungen (httpd-multilang-errordoc.conf)
857
19.1.4 Fancy-Index (httpd-autoindex.conf)
858
19.1.5 Sprach- und Zeichensatzeinstellungen (httpd-languages.conf)
861
19.1.6 Benutzerverzeichnisse (httpd-userdir.conf)
864
19.1.7 Status- und Anfrageinformationen (httpd-info.conf)
865
19.1.8 Virtuelle Hosts (httpd-vhosts.conf)
867
19.1.9 Einbinden der Apache-Dokumentation (httpd-manual.conf)
868
19.1.10 WebDAV-Konfiguration (httpd-dav.conf)
869
19.1.11 Erweiterte Standardeinstellungen (httpd-default.conf)
870
19.1.12 Gesicherte Verbindungen (httpd-ssl.conf)
872
19.2 Zusätzliche Konfigurationsdateien
879
19.2.1 Authentifizierung
879
19.2.2 Forward-Proxy mit Caching
881
19.2.3 PHP
883
19.2.4 mod_rewrite – papaya CMS
884
19.3 Zusammenfassung
887
Anhang
889
A Besonderheiten von Apache 2.0
891
A.1 Zusätzliche Multiprocessing-Module
891
A.2 Unterschiede bei Modulen
892
A.3 Besonderheiten bei der Authentifizierung
892
A.4 Weitere exklusive Direktiven
899
B Kurzreferenz der Konfigurationsdirektiven
903
C Sonstige Tabellen
935
C.1 MIME-Types
935
C.2 Sprachcodes nach ISO
954
C.3 Zeichensätze
958
C.4 Top-Level-Domains
966
D Die Apache-Lizenz 2.0
977
E Reguläre Ausdrücke
983
F VMware Workstation
985
F.1 Einrichtung einer virtuellen Maschine
986
F.2 Die virtuelle Maschine im Betrieb
987
F.3 Einstellungen der virtuellen Maschine ändern
988
F.4 VMware Tools installieren
989
G Rechtliche Aspekte
991
H Literatur
995
Index
997