Virtual Hosts: Rootserver mit einer IP und mehreren Domains – Suse Linux

Besitzt man einen Rootserver, so will man häufig nicht nur eine Domain auf diesem Rechner verwalten, sondern mehrere. Vielleicht beginnt man ja mal mit nur einer Domain, aber die Server besitzen heutzutage soviel CPU-Power, RAM und Speicherplatz und verkraften dadurch durchaus mehrere Datenbanken, sowie Last.

Wie geht man dabei nun vor? Das im DNS Nameserver ein entsprechender Domaineintrag vorhanden sein muss, der auf die IP des Rootservers zeigt, sollte klar sein. Wie weiss aber der Apache Server, wo die Daten für die jeweilige Domain liegen? Im Nameserver wird ja zuerst nur von www.meinedomain.tld –> IP aufgelöst.
Das Zauberwort hierzu lautet “Virtual Host”1, bzw. auf deutsch “Virtuelle Hosts”. Suse Linux ist hierfür schon relativ gut vorbereitet. Unter /etc/apache2/vhosts.d findet sich die Datei vhost.template als Vorlage. Diese kopieren wir uns um zu /etc/apache2/vhost.d/yourvhost.conf. Für yourhost nimmt man natürlich einen aussagekräftigen Namen. Die Dateiendung .conf ist wichtig, da nur hiermit der Apacheserver beim Start die Konfigurationsdatei(en) finden kann.
Eine voll funktionsfähige (aber um die Kommentare bereinigte) Konfigurationsdatei sieht wie folgt aus:

<VirtualHost *:80>
    ServerAdmin webmaster@meinedomain.de
    ServerName www.meinedomain.de
    ServerAlias meinedomain.de *.meinedomain.de
    DocumentRoot /srv/www/meinedomain_de

    ErrorLog /var/log/apache2/meinedomain_de-error_log
    CustomLog /var/log/apache2/meinedomain_de-access_log combined

    HostnameLookups Off
    UseCanonicalName Off
    ServerSignature On
    ScriptAlias /cgi-bin/ "/srv/www/meinedomain_de/cgi-bin/"

    <Directory "/srv/www/meinedomain_de/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 "/srv/www/meinedomain_de">
      Order allow,deny
      Allow from all
    </Directory>

</VirtualHost>

Ersetzt einfach meinedomain.de durch den Namen eurer Domain. DocumentRoot gibt den Pfad an, in dem ihr eure .html, .php etc. Dateien für diese Domain ablegen wollt. In meinem Fall ist es der Speicherort /srv/www/meinedomain_de. Wichtig ist auch der Eintrag unter ServerAlias. Vergesst ihr diesen Eintrag, so ist die Domain zwar unter www.meinedomain.de, aber nicht unter meinedomain.de zu erreichen.
Für die zweite, dritte, vierte usw. Domain verfahrt ihr genauso. Sind alle Domains eingerichtet, so könnt ihr den Apache Server mit

/etc/init.d/apache2 restart

neu starten. Erhaltet ihr folgende Fehlermeldung:

[warn] _default_ VirtualHost overlap on port 80, the first has precedence

und kann nur eine – nämlich die, die im alphabetisch ersten Konfigurationssript eingetragen wurde -der von euch eingestellten Domains erreicht werden, so müsst ihr in /etc/apache2/listen.conf noch folgenden Eintrag vornehmen:

NameVirtualHost *:80

Mit dieser Einstellung wird die Verwendung namensbasierter virtueller Hosts2 eingestellt. Hierzu scrollt ihr im Script einfach bis ganz nach unten und tragt diesen Eintrag ein. Den Apache Server nochmal neu starten und nun sollte alles funktionieren.

Weitere Informationen zu virtuellen Hosts findet ihr natürlich auf der Apache Dokumentationsseite (Links siehe unten), sowie bei SelfHTML ((http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf06.htm)).

  1. http://httpd.apache.org/docs/2.2/de/vhosts/ []
  2. http://httpd.apache.org/docs/2.0/de/vhosts/name-based.html []

2 comments to Virtual Hosts: Rootserver mit einer IP und mehreren Domains – Suse Linux

  • Rui

    Guten Tag,

    ich bin neu hier. Ich kenne mich damit noch nicht so aus, aber ich bin auf der Suche nach Hilfe. Ich würde gerne mehr über die Nutzung von mehreren Domains wissen, aber ich finde immer wieder nur Seiten, auf denen es sehr genau und technisch erklärt wird. Ich bin aber technisch nicht so bewandert und bräuchte eine Anleitung die vielleicht etwas leichter zu verstehen ist. Gibt es so was oder ist das nicht möglich? Ich setze m ich mit der Technik schon auseinander aber ich bin halt noch nicht ganz soweit.

  • Meiko

    Vielen Dank für diese kurze und schnelle Anleitung für OpenSUSE Einsteiger! Funktioniert tadellos!

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>