Samstag, 5. August 2006
Apache httpd.conf für Minimalisten
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"

... comment