andere Farbe:
andere Schriftgröße: 60% 70% 80% 90%

Apache-Webserver

1. Was ist apache?
2. Alle wichtigen Dateien und verzeichnisse im Überblick
3. Die SuSE-spezifische Apache2-Konfigurationsdatei /etc/sysconfig/apache2
4. Die Hauptkonfigurationsdatei /etc/apache2/httpd.conf
5. Die Konfigurationsdatei /etc/apache2/vhosts.conf
6. Beschreibung einiger Apache-Module

1. Was ist apache? (nach oben)

Der Apache ist ein Programm, das Web-Seiten zur Verfügung stellt. Immer wenn Sie über Ihren Browser eine Web-Seite anfordern, wird der Webserver, auf dem die Seite liegt, angesprochen und schickt Ihnen die entsprechenden Web-Seite zurück. Der apache-Webserver ist der am häufigster eingesetzter Web-Server. Ein großer Vorteil ist, dass der apache-Webserver kostenlos ist und auf Open Source basiert. Weitere Vorteile des apache2-Webservers sind: Stabilität, Sicher, Flexibel, Modular und Verlässlichkeit. Weiter Informationen siehe: Apache-Webseite: "The Apache Software Foundation"

2. Alle wichtigen Dateien und Verzeichnisse im Überblick: (nach oben)

  • /etc/sysconfig/apache2
  • /etc/apache2/httpd.conf
  • /etc/apache2/vhosts/ (Verzeichnis)
  • /var/log/apache/ (Verzeichnis)

3. Die SuSE-spezifische Apache2-Konfigurationsdatei /etc/sysconfig/apache2: (nach oben)

Alle Einstellungen für den Start von Apache2 werden hier vorgenommen. z.B.:

  • welche Konfigurationsdatei soll benutzt werden. Standardmäßig wird die Datei /etc/apache2/httpd.conf benutzt.
  • welche Module sollen geladen werden.

Die Liste der Module wird zwar in /etc/apache2/sysconfig.d/loadmodule.conf dem Apache zur Verfügung gestellt, aber dieser Teil der Apache-Konfiguration wird über /etc/sysconfig/apache2 verändert beziehungsweise gesteuert, so dass es nicht sinnvoll ist, individuelle Einstellungen in loadmodule.conf vornehmen zu wollen. Stattdessen muss das Skript /etc/sysconfig/apache2 bearbeitet werden - oder man nimmt yast zu Hilfe. Module, die geladen werden sollen, befinden sich in der Zeile "APACHE_MODULES"

4. Die Hauptkonfigurationsdatei /etc/apache2/httpd.conf: (nach oben)

#/etc/apache2/httpd.conf
Include /etc/apache2/uid.conf
Include /etc/apache2/server-tuning.conf
ErrorLog /var/log/apache2/error_log
Include /etc/apache2/sysconfig.d/loadmodule.conf
Include /etc/apache2/listen.conf
Include /etc/apache2/mod_log_config.conf
Include /etc/apache2/sysconfig.d/global.conf
Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf
Include /etc/apache2/mod_usertrack.conf
Include /etc/apache2/mod_autoindex-defaults.conf
TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf
Include /etc/apache2/errors.conf
Include /etc/apache2/ssl-global.conf
<Directory/>
  Options None
  AllowOverride None
  Order deny,allow
  Deny from all
</Directory>
AccessFileName .htaccess
<Files ~ "^\.ht">
  Order allow,deny
  Deny from all
</Files>
DirectoryIndex index.html index.htm index.html.var index.php
Include /etc/apache2/default-server.conf
Include /etc/apache2/sysconfig.d/include.conf
Include /etc/apache2/vhosts.d/*.conf

5. Die Konfigurationsdatei /etc/apache2/vhosts.conf: (nach oben)

Für jeden virtuellen Host muss eine Datei mit der Endung .conf erzeugt werden und diese unter /etc/apache2/vhosts gespeichert werden. z.B.: www.domain.tld.conf

Beispiel einer vhosts.conf:

#VirtualHost domain.tld <VirtualHost *:80>
  ServerAdmin webmaster@domain.tld
  ServerName domain.tld
  DocumentRoot /home/www/domain.tld/
  ErrorLog /var/log/apache2/domain.tld-error_log
  CustomLog /var/log/apache2/domain.tld-access_log combined
  HostnameLookups Off
  UseCanonicalName Off
  ServerSignature On
  ScriptAlias /cgi-bin/ "/home/www/domain.tld/cgi-bin/"
  <Directory "/home/www/domain.tld/cgi-bin">
    AllowOverride None
    Options +ExecCGI -Includes
    Order allow,deny
    Allow from all
  </Directory>
  <IfModule mod_userdir.c>
    UserDir public_html
    Include /etc/apache2/mod_userdir.conf
  </IfModule>
  <Directory "/home/www/domain.tld/">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

6. Beschreibung einiger Apache-Module: (nach oben)

Für den Apache-Webserver existieren eine Vielzahl an Modulen. Eine komplette Liste können sie auf der Apache-Webseite sehen. http://httpd.apache.org/docs/2.2/mod/

Modul-Name Beschreibung
access Standardmodul: Mit diesem Modul kann der Zugriff auf Inhalte des Webservers auf Basis von Hostnamen und IP-Adressen kontrolliert werden.
actions Standardmodul: Hiermit lassen sich CGi-Skripte bestimmten MIME-Typen zuordnen und bei Zugriff auf Dateien mit diesem Typ automatisch ausführen.
alias Standardmodul: Mit alias lassen sich URL-Pfade intern auf ein anderes Verzeichnis oder komplett an eine andere URL umleiten. (Redirect).
asis Standardmodul: Dieses Modul stellt den Handler send-as-is bereit, der Dokumente so ausliefern kann "wie sie sind", d.h. ohne Hinzufügung der normalen HTTP-Header. Damit lassen sich beliebige Inhalte und benutzerdefinierte HTTP-Header an den Client senden und somit beispielsweise Umleitungen (so genannte Redirects) realisieren.
auth Standardmodul: auth stellt die drei Directiven AuthGroupFile, AuthUserFile und AuthAuthoritative zur Verfügung, die zur Konfiguration von passwortgeschützten Verzeichnissen und Inhalten benötigt werden.
auth_anon Dieses Modul ist in etwa vergleichbar mit Anonymous FTP, d.h ein Benutzer kann unter Angaben des Benutzernamens anonymous und seiner E-Mail-Adresse authentifiziert werden und bestimmte Bereiche des Webservers erreichen.
auth_dbm Authentifizierung via datenbankähnlicher DBM-Dateien, die mit dem Programm dbmmanage erstellt und aktualiseirt werden können.
auth_digest Dieses Modul implementiert die MD5-Digest Authentication. Der Vorteil gegenüber der veralteten Basic Authentifikation ist, dass die Passwörter der Nutzer nicht mehr im Klartext übertragen werden.
auth_ldap Ab dem Apache 2.0.41 besteht die Möglichkeit, den Verzeichnisdienst LDAP zur einfachen Authentifikation eines Benutzers zu verwenden.
autoindex Standardmodul: Existiert in einem Verzeichnis keine Indexdatei, erzeugt dieses Modul einen Verzeichnisindex, der teilweise an die eigene Wünsche angepasst werden kann.
cache Cachingfunktion cern_meta Falls Sie von CERN HTTPD auf den Apache umgestiegen sind, können Sie dieses Modul dazu benutzen, Ihre CERN-Meta-Files weiter zu verwenden.
cgi Standardmodul: Damit der Aoache CGI-Skripte überhaupt ausführen kann, wird dieses Modul benötigt.
charset_lite Hiermit kann der Administrator Zeichensätze definieren, in die die Inhalte übersetzt werden sollen, bevor diese an den Client gesendet werden.
dav DAV (deutsch: verteilte und versionskontrollierte Verwaltung und Entwicklung). Es bietet praktisch die Möglichkeit auf Verzeichnisse eines entfernten Webservers zuzugreifen, als sei dieser eine lokale Ressource.  
deflate Mit dem Modul können Sie Informationen komprimieren, bevor diese an einen Client gesendet werden. Dabei ist das Modul als Ausgabefilter konzipiert und sorgt je nach Typ der Komprimierten Daten zum Teil für große Komprimierungsraten.
dir Standardmodul: Dieses Modul stellt nur eine Konfigurationsoption namens DirectoryIndex zur Verfügung und diese legt fest, welche Datei dem Client gesendet wird, wenn dieser ein Verzeichnis aufruft. z.B.: index.htm, index.html, index.php,... . Außerdem vervollständigt dieses Modul Clientanfragen, wenn diese auf Verzeichnisse zugreifen, aber den abschließenden Slash vergessen haben, und leitet sie auf die korrekte URL um.
echo Multiprotokollunterstützung. Implementiert einen einfachen Echo-Server.
env Standardmodul: Dieses Modul sorgt dafür, dass Umgebungsvariablen aus der Shell an den Apache bzw. an ein auf dem Server laufendes Skript übergeben werden können. Ebenso können beliebige Variablen in der Serverkonfiguration gesetzt und ausgelesen werden.
expires Durch dieses Modul kann man einem Dokument den HTTP-Header Expires hinzufügen, der die Lebensdauer eines Dukomentes definiert. Dies ist besonders dann sinnvoll, wenn man Dokumente hat, deren Inhalte sich häufig ändern und von denen immer die jeweils aktuellste Version an den Client gesendet werden soll. So kann man Proxyserver und lokale Zwischenspeicher auf dem jeweiligen Client umgehen.
ext_filter Durch das Modul können externe Programme, die Daten von der Standardeigabe lesen, diese verarbeiten und in die Standardausgabe schreiben, als Filter benutzt werden, bevor Daten an den Client geschickt werden.
file_cache Beim Start des apache können Dateien direkt im Speicher abgelegt werden. Diesen Vorgang nennt man Memory Mapping und er erhöht die Zugriffszeiten auf diese Dateien erheblich, da die Daten direkt aus dem Speicher kommen. Allerdings werden Veränderungen an diesen Dateien nicht sofort bemerkt und erst nach einem Neustart des Servers angezeigt.
headers Dieses Modul kann HTTP-Header beliebig modifizieren, hinzufügen, ersetzen oder auch löschen. imap Standardmodul: Unterstützt ein Clientbrowser keine Bilder (z.B. Textbrowser wie lynx), dann wird automatisch ein Textmenü erzeugt.
include Standardmodul: Durch dieses Modul werden die sog. Server-Side Includes aktiviert d.h. Dokumente können auf einschließende Verweise auf externe Datenquellen (z.B. Shellskripte, CGI-Skripte) untersucht werden. Falls solche externen Verweise vorhanden sind, werden diese ausgeführt und das Ergebnis wird an der Stelle des Verweises eingefügt.
info Dieses Modul erzeugt eine umfassende Übersicht über die Konfiguration des Servers, die unter einer freiwählbaren URL erreichbar sein kann.
ldap Um die Geschwindigkeit von Webseiten zu verbessern, die auf Verbindungen zu LDAP-Verzeichnisdienste beruhen, wurde dieses Modul entwickelt. Es sorgt ab dem Aoache 2.0.41 für eine gesteigerte Performence.
log_config Standardmodul: Dieses Modul erzeugt u.a. Zugriffsstatistiken über die Art und Häufigkeit der aufgerufenen Webseiten. Bei Bedarf lässt sich dieses Aussehen und der Inhalt der Logfiles an die eigenen Wünsche anpassen.  
mime Standardmodul: Basierend auf der Endung einer Datei (z.B. html) werden so genannte MIME-Header (Multipurpose Internet Mail Extensions) erzeugt, die an den Clients gesendet werden. Ohne dieses Kennzeichen könnten die Clients mit den abgerufenen Daten nichts anfangen. Deshalb gehört dieses Modul zu den absolut notwendigsten und sollte auf jeden Fall integriert werden.
mime_magic Basierend auf dem Unix-Befehl file untersucht dieses Modul Dateien nicht anhand ihrer Endungen, sondern anhand ihrer Inhalte und versucht so, den richtigen MIME-Typen zu finden und diesen an den Client zu senden.
mod_jk Dieses Modul stellt die Verbindung zwischen den einzelnen Anwendungen, tomcat und Apache her.
mod_perl PERL-Modul
negotiation Standardmodul: Anhand der HTTP-Header, die ein Client sendet, allsen sich mit diesem Modul transparent, d.h. für den Client nicht direkt ersichtlich, Inhalte bereitstellen, die an persönlichen Gegebenheiten des Nutzers angepasst sind. Ein Beispiel dafür ist die bei der Installation des Apaches standardmäßig vorhandene Startseite, die je nach Spracheinstellung des Clients eine entsprechende Variante (etwa in Deutsch) darstellt.
php4 PHP-Modul
proxy Dieses Modul erweitern den Apache um Proxyfunktionalitäten. In Verbindung mit mod_rewrite kann dieses Modul unter Umständen durchaus Sinn machen.
proxy_connect Connect-Unterstützung für das Modul mod_proxy.
proxy_ftp FTP-Unterstützung für das Modul mod_proxy.
proxy_http HTTP-Unterstützung für das Modul mod_proxy.
rewrite Dieses Modul bietet die Möglichkeit, ähnlich wie mod_alias, interne Aliase und externe Redirects zu realisieren, wobei zu mod_alias auch auf Basis von regulären Ausdrücken (POSIX regular expression) und externen Programmen möglich sind.
setenvif Standardmodul: Mit diesem Modul lassen sich anhand der bei einer Clientanfrage zur Verfügung stehenden Informationen (z.B. IP-Adresse, Browserversion,..) Umgebungsvariablen setzen. Es wird auch u.a. dazu verwendet, Funktionalität des Apache unter bestimmten Umständen auszuschalten bzw. zu umgehen.
speling korrigiert Tippfehler der Benutzer und versucht dennoch die gewünschte Datei an den Client zu senden.
ssl Dieses Modul bildet die Schnittstelle zwischen Apache und OpenSSL
status Standardmodul: Dieses Modul erzeugt einen Statusbericht der unter einer vorher definierten Adresse erreichbar ist.
suexec Normalerweise werden CGI und SSI-Skripte unter dem Benutzer ausgeführt, unter dem auch Apache läuft. Mit mod_suEXEC (su = switch user) können diese ab Apache 1.2 durch einen beliebigen anderen Benutzer oder eine andere Gruppe ausgeführt werden.
unique_id Dieses Modul erzeugt eine Umgebungsvariable mit einer einzigartigen Zahl, die für jede Clientanfrage neu und einzigartig erzeugt wird.
userdir Standardmodul: Lokale user können mit diesem Modul Ihre privaten Verzeichnisse unter einer gewissen Adresse freigeben und ins Internet stellen.
usertrack Dieses Modul bietet die Möglichkeit, mit sogenannter Cookies die Aktion eines Benutzers zu verfolgen oder aufzuzeichnen.
vhost_alias Ein sehr hilfreiches Modul für die bereitstellung von vituellen Hosting. Es bezieht die Informationen für eine neue Domain nicht aus dem "VirtualHosting"-Eintrag in der httpd.conf, sondern direkt aus dem Dateisystem und somit findet eigentlich ein Aliasing von Verzeichnisnamen auf fertige Domainnamen statt.

Zusätzlich Module:

Modul-Name Beschreibung
apache2-mod_auth_mysql Unterstützung für mySQ
apache2-mod_fastcgi Unterstützung für fastercgi
apache2-mod_macro Mit dem Modul kann man sich "Macros" definieren, die man dann an beliebige Stellen im Sourcecode einfügen kann.
apache2-mod_perl Unterstützung für perl
apache2-mod_php4 Unterstützung für php4
apache2-mod_php5 Unterstützung für php5
apache2-mod_python Unterstützung für python
apache2-mod_ruby Unterstützung für ruby