Samstag, 5. August 2006
Apache httpd.conf für Minimalisten
netzstrohm, 00:22h
Die Apache httpd.conf enthält (bis 1.3.x) die ganze Konfiguration des Apache und das waren viele Möglichkeiten.
Ich habe im folgenden das aufs wesentliche reduziert und Deutsch kommentiert.
Wichtig: Diese Kofiguration gilt so nur für
* Apache 1.3.x (für Apache 2.X siehe nächster Beitrag)
* Apache für Windows
Die Zeilenumbrüche sind automatisch
Hier ein kurzes DOC-File zum apache mit php konfigurieren (doc, 20 KB) .
*****************************************
# Apache Windows für Minimalisten
#
# by mue@hems.de
#
# Das folgende ist eine minimale Konfiguration
# damit Apache unter folgenden Bedingungen läuft:
# BS: Windows 9X bis XP
# Installationsverzeichnis: C:\Apache\Apache Group\
# IP: localhost
# Dienste nein: DSOs, user_dir, virtual hosts
# Dienste ja: .htaccess, mime-types, indexing
# !! Wichtig alle Verzeichnisse sind UNIX-Style (werden automatisch umgewandelt)
### Section 1: Global Environment
# Der Server ist nicht mit anderen in einem Serververbund
ServerType standalone
# Installationsverzeichnis hier liegt auch das Hautpprogramm apache.exe
# Alle weiteren Verzeichnisse werden vor hier aus gezählt
ServerRoot "C:/Programme/Apache Group/Apache"
# Die Prozess-ID finden wir im UVZ logs
PidFile logs/httpd.pid
# Nach 300 sekunden wird die Verbindung vom Server zurückgesetzt
Timeout 300
# Der Server akzeptiert KeepAlive-requests
KeepAlive On
# ...bis maximal ..
MaxKeepAliveRequests 100
#
KeepAliveTimeout 15
# Jeder Kindprozess kann beliebig viele Requests aufnehmen
MaxRequestsPerChild 0
#
ThreadsPerChild 50
### Section 2: 'Main' server configuration
# Dieser Teil setzt die allgemeinen Werte für diesen Server
# Der Server "hört" auf Port 80
Port 80
# Der Verwalter ist für Fehlermeldungen hier zu erreichen
ServerAdmin mue@hems.de
# Das ist die IP-Adresse / oder HauptDNS-Adresse des Servers
# Wenn hier 127.0.0.1 steht ist der Server nicht von außen erreichbar
ServerName 192.168.0.243
# Document-Root ist das Startverzeichnis wo die Index-Datei liegen solltte
# Achtung :Angabe durch absoluten Pfad in " " Linux-Style !!
DocumentRoot "C:/Programme/Apache Group/Apache/htdocs"
# Die Einstellungen für Document-Root (Directory /) sind sehr restriktiv...
# Sie vererben sich automatisch, alles was man mehr will
# muss explizit freigegeben werden.
# Ausnahme: cgi-bin
#
# Näheres siehe das Tutuorial "httpd.conf für Genießer"
#
# die Options bedeuten:
# FollowSymLinks: Der Rechner darf symbolischen Links folgen (nur UNIX)
# Indexes: Wenn keine Datei index.html da ist zeigt der Browser den Inhalt
# des verzeichnises an !! Achtung Sicherheitsloch !!
# AllowOverride None: .htaccess in evtl. UVZ dürfen NICHTS mehr ermöglichen
# AllowOverride AuthConfig: .htaccess-Files dürfen Zugangsbeschränkungen per
# AuthConfig herstellen
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
# Hier Start erweiterter Angaben für UVZ htdocs
# Alle anderen UVZ unterhalb htdocs erben diese Einstellungen
# Will man mehr muss man eine zusätzliche Direktive ähnlich der folgenden
# für das UVZ erstellen
<Directory "C:/Programme/Apache Group/Apache/htdocs">
#
Options Indexes FollowSymLinks MultiViews
#
AllowOverride None
#
# Die folgende Direktive steuert wer alles auf den Server zugreifen darf
# zuerst gilt das Erlaubte, dann das Verbotene
# erlaubt ist das alles von allen IP-Adressen gelesen werden darf.
#
Order allow,deny
Allow from all
</Directory>
# Hier Ende der Grundeinstellungen für Document-Root
#
# Zugangsbeschränkungen machen wir mit .htaccess
AccessFileName .htaccess
#
# Damit keiner die Files .htaccess und .htpassword auslesen kann...
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
# ???
UseCanonicalName On
#
<IfModule mod_mime.c>
TypesConfig conf/mime.types
</IfModule>
#
# Der Defaultdatentyp für http ist text/plain
DefaultType text/plain
# in logs wird nur IP-Adresse gespeichert
HostnameLookups Off
# Lage des error logs
ErrorLog logs/error.log
# Level der Logs
LogLevel warn
# Format der Logs
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#
CustomLog logs/access.log common
# Server darf Signatur senden
#
ServerSignature On
# Falls perl Skripte laufen sollen: Lage der perl.exe
# can execute this specific script. For a perl script, with perl.exe in
# the C:\Program Files\Perl directory, the shebang line should be:
#!c:/program files/perl/perl
# Bei Perl-Skripten muss die Shebang (#! das erste Zeichen sein
# außerdem müssen Perl-Skripte durch ScriptAlias oder ExecCGI in den Verzeichnissen
# enabled werden.
# Hier werden Aliase eingetragen:
# Ein Alias bewirkt, dass das Verzeichnis "C:/Programme/Apache Group/Apache/icons/" das außerhalb des von htdocs aus erreichbaren liegt durch den Aufruf von http://<servername>/icons/ erreichbar wird. Dadurch kann man unkompliziert Verzeichnisse, die irgendwo im Verzeichnisbaum liegen, zugreifbar machen ohne SymLinks zulassen zu müssen.
#
# Format ist...
# Alias fakename realname
#
# voreingestellt sind Aliasse für /icons/ /cgi-bin/
#
<IfModule mod_alias.c>
#
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL. So "/icons" isn't aliased in this
# example, only "/icons/"..
#
Alias /icons/ "C:/Programme/Apache Group/Apache/icons/"
<Directory "C:/Programme/Apache Group/Apache/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
# ScriptAlias: Das steuert welche Verzeichnisse die wirklichen
# ausführbaren Skripte aufnehmen (shell-Skripte, Perl-Skripte)
#
# ScriptAliases sind grundsätzlich dasselbe wie Aliasse nur das sie
# vom Server ausgeführt, anstatt zum Client gesandt werden.
# Es gelten für sie dieselben Regeln für nachfolgendes "/"
# wie bei Alias.
#
# Der ScriptAlias /cgi-bin/ bedeutet, dass der Aufruf von z.B.
# http://server.de/cgi-bin/formular.pl in wirklichkeit
# "C:/Programme/Apache Group/Apache/cgi-bin/formular.pl aufruft
# dadurch ist das Skriptverzeichnis besser gegen Einblicke geschützt.
#
ScriptAlias /cgi-bin/ "C:/Programme/Apache Group/Apache/cgi-bin/"
#
# Die Einstellungen für das cgi-bin-Verzeichnis (wo alle Skripte
# liegen sollten bedeutet:
# Keins der Programme darf diesen Pfad (nach oben) verlassen
# Es gibt keine weiteren Optionen
#
<Directory "C:/Programme/Apache Group/Apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</IfModule>
# End of aliases.
#
# Hiermit gibt der Server autom. Inhaltlisten z.B. von FTP-Verzeichnis aus
#
<IfModule mod_autoindex.c>
# Das Fancy-Indexing macht zusätzlich schöne Bildchen bei Dateien
#
IndexOptions FancyIndexing
#
# AddIcons steuert welche Icons bei FancyIndexing verwendet werden
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
#
ReadmeName README
HeaderName HEADER
# Diese Dateien werden beim indexing übergangen..
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
</IfModule>
# End of indexing directives.
#
# zusätzliche Dokumenttypen
# Hier werden Dokumenttypen angegeben, die nicht in mime.types
# definiert sind.
#
<IfModule mod_mime.c>
#
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
# Die meisten zusätzlichen Sprachen kann man ebenso löschen
# wie die entspr. index-dateien in htdocs
AddLanguage en .en
AddLanguage de .de
# Mit AddType kann man zusätzliche Endungen definieren wi z.B. .php
#
#
# For example, the PHP 3.x module (not part of the Apache distribution
# http://www.php.net) will typically use:
#
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
#
# And for PHP 4.x, use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
# Wenn wir PHP4 verwenden wollen und
# ...wenn php4 in C:\php4 liegt...
#
# 1. Definition, dass .php an die Anwendung x-httpd-php
# übergeben wird.
#
AddType application/x-httpd-php .php .php3 .php4
AddType application/x-httpd-php-source .phps
#
# 2. Angabe welches Verzeichnis wir unter /php/ verstehen...
# Wichtig ist das angehängte / und alles in " "
ScriptAlias /php/ "C:/php4/"
#
# 3. Wie die Applikation heißt, die wir mit dem Typ verbunden..
Action application/x-httpd-php "/php/php.exe"
#
AddType application/x-tar .tgz
#
# To use CGI scripts:
#
#AddHandler cgi-script .cgi
#
# To use server-parsed HTML files
#
#AddType text/html .shtml
#AddHandler server-parsed .shtml
</IfModule>
# End of document types.
# Ende Minimal-Konfiguration
# Hier folgen dann noch etliche Abschnitte u.a. für Virtuelle Server und SSL
#
# Näheres darüber in "httpd-conf für Genießer"
Ich habe im folgenden das aufs wesentliche reduziert und Deutsch kommentiert.
Wichtig: Diese Kofiguration gilt so nur für
* Apache 1.3.x (für Apache 2.X siehe nächster Beitrag)
* Apache für Windows
Die Zeilenumbrüche sind automatisch
Hier ein kurzes DOC-File zum apache mit php konfigurieren (doc, 20 KB) .
*****************************************
# Apache Windows für Minimalisten
#
# by mue@hems.de
#
# Das folgende ist eine minimale Konfiguration
# damit Apache unter folgenden Bedingungen läuft:
# BS: Windows 9X bis XP
# Installationsverzeichnis: C:\Apache\Apache Group\
# IP: localhost
# Dienste nein: DSOs, user_dir, virtual hosts
# Dienste ja: .htaccess, mime-types, indexing
# !! Wichtig alle Verzeichnisse sind UNIX-Style (werden automatisch umgewandelt)
### Section 1: Global Environment
# Der Server ist nicht mit anderen in einem Serververbund
ServerType standalone
# Installationsverzeichnis hier liegt auch das Hautpprogramm apache.exe
# Alle weiteren Verzeichnisse werden vor hier aus gezählt
ServerRoot "C:/Programme/Apache Group/Apache"
# Die Prozess-ID finden wir im UVZ logs
PidFile logs/httpd.pid
# Nach 300 sekunden wird die Verbindung vom Server zurückgesetzt
Timeout 300
# Der Server akzeptiert KeepAlive-requests
KeepAlive On
# ...bis maximal ..
MaxKeepAliveRequests 100
#
KeepAliveTimeout 15
# Jeder Kindprozess kann beliebig viele Requests aufnehmen
MaxRequestsPerChild 0
#
ThreadsPerChild 50
### Section 2: 'Main' server configuration
# Dieser Teil setzt die allgemeinen Werte für diesen Server
# Der Server "hört" auf Port 80
Port 80
# Der Verwalter ist für Fehlermeldungen hier zu erreichen
ServerAdmin mue@hems.de
# Das ist die IP-Adresse / oder HauptDNS-Adresse des Servers
# Wenn hier 127.0.0.1 steht ist der Server nicht von außen erreichbar
ServerName 192.168.0.243
# Document-Root ist das Startverzeichnis wo die Index-Datei liegen solltte
# Achtung :Angabe durch absoluten Pfad in " " Linux-Style !!
DocumentRoot "C:/Programme/Apache Group/Apache/htdocs"
# Die Einstellungen für Document-Root (Directory /) sind sehr restriktiv...
# Sie vererben sich automatisch, alles was man mehr will
# muss explizit freigegeben werden.
# Ausnahme: cgi-bin
#
# Näheres siehe das Tutuorial "httpd.conf für Genießer"
#
# die Options bedeuten:
# FollowSymLinks: Der Rechner darf symbolischen Links folgen (nur UNIX)
# Indexes: Wenn keine Datei index.html da ist zeigt der Browser den Inhalt
# des verzeichnises an !! Achtung Sicherheitsloch !!
# AllowOverride None: .htaccess in evtl. UVZ dürfen NICHTS mehr ermöglichen
# AllowOverride AuthConfig: .htaccess-Files dürfen Zugangsbeschränkungen per
# AuthConfig herstellen
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
# Hier Start erweiterter Angaben für UVZ htdocs
# Alle anderen UVZ unterhalb htdocs erben diese Einstellungen
# Will man mehr muss man eine zusätzliche Direktive ähnlich der folgenden
# für das UVZ erstellen
<Directory "C:/Programme/Apache Group/Apache/htdocs">
#
Options Indexes FollowSymLinks MultiViews
#
AllowOverride None
#
# Die folgende Direktive steuert wer alles auf den Server zugreifen darf
# zuerst gilt das Erlaubte, dann das Verbotene
# erlaubt ist das alles von allen IP-Adressen gelesen werden darf.
#
Order allow,deny
Allow from all
</Directory>
# Hier Ende der Grundeinstellungen für Document-Root
#
# Zugangsbeschränkungen machen wir mit .htaccess
AccessFileName .htaccess
#
# Damit keiner die Files .htaccess und .htpassword auslesen kann...
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
# ???
UseCanonicalName On
#
<IfModule mod_mime.c>
TypesConfig conf/mime.types
</IfModule>
#
# Der Defaultdatentyp für http ist text/plain
DefaultType text/plain
# in logs wird nur IP-Adresse gespeichert
HostnameLookups Off
# Lage des error logs
ErrorLog logs/error.log
# Level der Logs
LogLevel warn
# Format der Logs
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#
CustomLog logs/access.log common
# Server darf Signatur senden
#
ServerSignature On
# Falls perl Skripte laufen sollen: Lage der perl.exe
# can execute this specific script. For a perl script, with perl.exe in
# the C:\Program Files\Perl directory, the shebang line should be:
#!c:/program files/perl/perl
# Bei Perl-Skripten muss die Shebang (#! das erste Zeichen sein
# außerdem müssen Perl-Skripte durch ScriptAlias oder ExecCGI in den Verzeichnissen
# enabled werden.
# Hier werden Aliase eingetragen:
# Ein Alias bewirkt, dass das Verzeichnis "C:/Programme/Apache Group/Apache/icons/" das außerhalb des von htdocs aus erreichbaren liegt durch den Aufruf von http://<servername>/icons/ erreichbar wird. Dadurch kann man unkompliziert Verzeichnisse, die irgendwo im Verzeichnisbaum liegen, zugreifbar machen ohne SymLinks zulassen zu müssen.
#
# Format ist...
# Alias fakename realname
#
# voreingestellt sind Aliasse für /icons/ /cgi-bin/
#
<IfModule mod_alias.c>
#
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL. So "/icons" isn't aliased in this
# example, only "/icons/"..
#
Alias /icons/ "C:/Programme/Apache Group/Apache/icons/"
<Directory "C:/Programme/Apache Group/Apache/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
# ScriptAlias: Das steuert welche Verzeichnisse die wirklichen
# ausführbaren Skripte aufnehmen (shell-Skripte, Perl-Skripte)
#
# ScriptAliases sind grundsätzlich dasselbe wie Aliasse nur das sie
# vom Server ausgeführt, anstatt zum Client gesandt werden.
# Es gelten für sie dieselben Regeln für nachfolgendes "/"
# wie bei Alias.
#
# Der ScriptAlias /cgi-bin/ bedeutet, dass der Aufruf von z.B.
# http://server.de/cgi-bin/formular.pl in wirklichkeit
# "C:/Programme/Apache Group/Apache/cgi-bin/formular.pl aufruft
# dadurch ist das Skriptverzeichnis besser gegen Einblicke geschützt.
#
ScriptAlias /cgi-bin/ "C:/Programme/Apache Group/Apache/cgi-bin/"
#
# Die Einstellungen für das cgi-bin-Verzeichnis (wo alle Skripte
# liegen sollten bedeutet:
# Keins der Programme darf diesen Pfad (nach oben) verlassen
# Es gibt keine weiteren Optionen
#
<Directory "C:/Programme/Apache Group/Apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</IfModule>
# End of aliases.
#
# Hiermit gibt der Server autom. Inhaltlisten z.B. von FTP-Verzeichnis aus
#
<IfModule mod_autoindex.c>
# Das Fancy-Indexing macht zusätzlich schöne Bildchen bei Dateien
#
IndexOptions FancyIndexing
#
# AddIcons steuert welche Icons bei FancyIndexing verwendet werden
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
#
ReadmeName README
HeaderName HEADER
# Diese Dateien werden beim indexing übergangen..
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
</IfModule>
# End of indexing directives.
#
# zusätzliche Dokumenttypen
# Hier werden Dokumenttypen angegeben, die nicht in mime.types
# definiert sind.
#
<IfModule mod_mime.c>
#
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
# Die meisten zusätzlichen Sprachen kann man ebenso löschen
# wie die entspr. index-dateien in htdocs
AddLanguage en .en
AddLanguage de .de
# Mit AddType kann man zusätzliche Endungen definieren wi z.B. .php
#
#
# For example, the PHP 3.x module (not part of the Apache distribution
# http://www.php.net) will typically use:
#
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
#
# And for PHP 4.x, use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
# Wenn wir PHP4 verwenden wollen und
# ...wenn php4 in C:\php4 liegt...
#
# 1. Definition, dass .php an die Anwendung x-httpd-php
# übergeben wird.
#
AddType application/x-httpd-php .php .php3 .php4
AddType application/x-httpd-php-source .phps
#
# 2. Angabe welches Verzeichnis wir unter /php/ verstehen...
# Wichtig ist das angehängte / und alles in " "
ScriptAlias /php/ "C:/php4/"
#
# 3. Wie die Applikation heißt, die wir mit dem Typ verbunden..
Action application/x-httpd-php "/php/php.exe"
#
AddType application/x-tar .tgz
#
# To use CGI scripts:
#
#AddHandler cgi-script .cgi
#
# To use server-parsed HTML files
#
#AddType text/html .shtml
#AddHandler server-parsed .shtml
</IfModule>
# End of document types.
# Ende Minimal-Konfiguration
# Hier folgen dann noch etliche Abschnitte u.a. für Virtuelle Server und SSL
#
# Näheres darüber in "httpd-conf für Genießer"
... comment