====== Apache: Virtuelle Hosts und Direktiven ====== //<- Zurück zum Artikel [[software:apache]]// Um verschiedene Webseiten auf einem Server sauber voneinander zu trennen, hat Apache das Konzept der virtuellen Hosts. Je nach angefragtem Domainnamen oder IP-Adresse wird dann unterschiedliches von Apache auf die Anfrage ausgeliefert. Details zu den verschiedenen Arten können in der Apache-Dokumentation(([[http://httpd.apache.org/docs/2.2/de/vhosts/]])) abgerufen werden. Werden VHosts verwendet, ist die Standardkonfiguration nicht mehr aktiv und muss auch in einen entsprechenden VHost ausgelagert werden. Kollidieren zwei VHosts mit ihrer Konfiguration wird beim Start des Apache eine Fehlermeldung ausgegeben. Unter Ubuntu liegen die Apache-Konfigurationsdateien unter /etc/apache2/. Im Verzeichnis sites-available/ befinden sich alle verfügbarten VHost-Konfigurationen und im Verzeichnis sites-enabled/ ggf. ein Softlink zu der Konfiguration. ===== Aktivieren einer VHost-Konfiguration ===== # a2ensite [Domainname][.ssl] ===== Deaktivieren einer VHost-Konfiguration ===== # a2dissite [Domainname][.ssl] ===== Beispiel-Konfiguraionsdatei für einen VHost (ohne SSL) ===== # Minimal-Daten eines VHosts ServerName wiba10.de DocumentRoot "/srv/www/vhosts/wiba10.de/httpdocs" ServerAdmin webmaster@wiba10.de # Auf welche Domains "hört" dieser VHost auch noch? ServerAlias www2.wiba10.de www.wiba10.de # Logdateien für einen VHost von anderen Logs des Apache trennen ErrorLog /srv/www/vhosts/wiba10.de/logs/error.log LogLevel warn CustomLog /srv/www/vhosts/wiba10.de/logs/access.log "combined" # Berechtigungen für den Dateizugriff setzen allow from all #Die folgende Zeile bewirkt, dass der Client den Browserinhalt als Liste darstellen darf. Mit "Options -Indexes" kann das unterbunden werden. Options +Indexes ===== Logging ===== Sollen die Log-Dateien nicht in das standard Verzeichnis /var/log/apache2 geschrieben werden, sondern in ein anderes, muss man bei der Vergabe der Zugriffsrechte aufpassen. Existieren die log Dateien nicht und werden von Apache angelegt werden die Zugriffsrechte für den Nutzer root und die Gruppe adm vergeben. Man muss also die Nutzerrechte manuell auf den entsprechenden User/Gruppe ändern, oder die Dateien händisch erstellen und mit entsprechenden Rechten ausstatten. Wichtig ist, dass die Gruppe von apache (www-data) schreibrechte auf die Datei hat ===== Permanente Weiterleitungen ===== Soll ein Host permanent auf einen anderen weitergeleitet werden, so lässt sich das mittels "redirect" lösen. Dies ist beispielsweise hilfreich, wenn man einen :80 Host dauerhaft auf einen :443 SSL-Host weiterleiten will. #Name des Hosts Servername webmail.wiba10.de # Dauerhafte Weiterleitung einer ganzen Domain auf eine andere Seite RedirectMatch 301 (.*) http://www.newDomain.de # Dauerhafte Weiterleitung aller Anfragen für den Host ( / ) (obere Variante wird empfohlen) Redirect permanent / https://webmail.wiba10.de * 301 ist der Fehlercode der dem Aufrufer zurückgegeben wird, in diesem Falle "Moved Permanently to new Address"(([[wpde>HTTP-Statuscode#3xx_.E2.80.93_Umleitung]])) * (.*) : Alle Anfragen werden an die neue Adresse weitergeleitet (mit RedirectMatch lassen sich auch z.B. alle Anfragen die auf .html enden weiterleiten auf .shtml (RedirectMatch permanent (.*)\.html$ http://www.domain.de$1.shtml)((http://www.schmager.de/rematch.shtml))((http://www.schmager.de/rematch2.shtml)) {{tag>apache vhost}}