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)
3. Die SuSE-spezifische Apache2-Konfigurationsdatei /etc/sysconfig/apache2: (nach oben)
Alle Einstellungen für den Start von Apache2 werden hier vorgenommen. z.B.:
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 |