Mehrere Webseiten oder Webdienste auf einem Server zu betreiben, spart Kosten sowie Administrations- und Wartungsaufwand. Damit der Apache-Dienst Anfragen von verschiedenen Hostnames auf den selben Server und in den korrekten Unterordner leitet, müssen einige Dateien angepasst werden.

 

 

Sei hier das exemplarische Ziel, verschiedene Webprojekte unter unterschiedlichen lokalen Adressen verfügbar zu machen:

http://site1.localdomain.de

http://site2.localdomain.de

Anlegen der DNS-Einträge

Zu Testzwecken simulieren wir die Umgebung auf dem localhost, daher muss die Namensauflösung in der hosts-Datei erfolgen. Im Produktivbetrieb würden die oben genannten Adressen im DNS-Server angelegt und mit der späteren Server-IP verknüpft werden.

  1. Notepad++ (oder einen belibieger anderer Texteditor) als Administrator öffnen
  2. C:\Windows\System32\drivers\etc\hosts öffnen
  3. Die Datei am Ende um folgende Einträge ergänzen:
127.0.0.1 site1.localdomain.de 
127.0.0.1 site2.localdomain.de

Danach die Änderungen speichern.

Anlegen von VirtualHosts-Einträgen (Apache) mit XAMPP

Angenommen, der Installationspfad von XAMPP lautet C:\xampp, so befindet sich die Datei httpd-vhosts.conf im Ordner C:/xampp/apache/conf/extra.

Die Datei enthält standardmäßig ausschließlich auskommentierte Blöcke, in denen eine Beispielkonfiguration eines VirtualHosts beschrieben ist.

An dieser Stelle ist zu prüfen, ob in der Datei httpd.conf im Ordner C:\xampp\apache\conf die Zeile

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

einkommentiert bzw. aktiv ist.

Folgender Inhalt muss nun am Ende der Datei hinzugefügt werden:

NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs"
  ServerName localhost
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs/site1"
  ServerName site1.localdomain.de
  ServerAlias site1.localdomain.de
  ErrorLog "logs/site1.localdomain.de-error.log"
  CustomLog "logs/site1.localdomain.de-access.log" common
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs/site2"
  ServerName site2.localdomain.de
  ServerAlias site2.localdomain.de
  ErrorLog "logs/site2.localdomain.de-error.log"
  CustomLog "logs/site2.localdomain.de-access.log" common
</VirtualHost>

Dies setzt voraus, dass sich unsere beiden Webprojekte in den Ordnern site1 bzw. site2 befinden.

Neustart des Dienstes

Anschließend muss der Apache-Dienst (z.B. über das XAMPP-Control-Panel) neu gestartet werden.

Die beiden Seiten sind nun unter den eingangs genannten Adressen im Browser erreichbar.

Troubleshooting

Je nach verwendeten CMS kann es beim Aufruf der Seiten zu Problemen kommen.

Hinweis

Generell sollte bei der Verwendung von VirtualHosts auf Rewrite-Befehle in der Datei .htaccess im Website-Root verzichtet werden. Dies kann zu Endlosschleifen im internen Routing führen.

Folgender Eintrag in der .htaccess-Datei eines Webseiten-Wurzelverzeichnisses ist kritisch zu betrachen:

<IfModule mod_rewrite.c>

# Enable rewrite rules
RewriteEngine on

# Base directory
RewriteBase /subfolder/

</IfModule>

Das führt zu Problemen, weil Apache in einer Endlosschleife versucht, auf den Unterordner zu routen.

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at postmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Das Auskommentieren des RewriteBase-Befehls genügt, aber es können Anpassungen an anderen Stellen nötig sein.

Bludit: Admin Panel > Einstellungen > Erweitert > Adresse der Website. Hier ist der vollständige DNS-Name (samt Subdomain) einzutragen. Nun werden alle Website-internen Links (CSS, JQuery und Unterseiten) wieder korrekt aufgelöst.

Verwendete Programme

  • Windows 10
  • XAMPP v 3.2.2
  • Notepad++
  • Mozilla Firefox
Quellen

apache.org

See also

  • OpenMediaVault
    NAS: Installation von openMediaVault auf dem Raspberry Pi 3

    Ein Raspberry Pi eignet sich hervorragend, um einen Dateiserver (NAS) zu betreiben - es ist klein, stromsparend und einfach zu konfigurieren. Die Software openMediaVault (OVM) gibt es entweder als vorkonfigurierte Debian-Distribution, oder es lässt sich separat auf einem bestehenden Betriebssystem installieren, um mehrere Services parallel zu betreiben (z.B. einen Apache-Dienst auf einem SmartMirror).

  • Joomla-Logo
    Joomla 3.7/4.x: Einbinden von Fußball.de-Widgets in Module

    Spielpläne, Tabellen und Ergebnisse einer oder mehrere Fußballmannschaften auf dem eigenen Server zu pflegen ist mühsam, zudem sind die Daten innerhalb kürzester Zeit unvollständig und veraltet. Daher gibt es Anbieter wie FuPa.net oder fussball.de, die alle Daten aus dem Jugend- und Amateurbereich verwalten und Widgets zur Verfügung stellen, die auf der Vereinhomepage eingebunden werden können.

    Wie das für Module (statt Beiträgen) in Joomla funktioniert, wird in diesem Beitrag demonstriert.

  • sebikolon/JModule
    JModule - Sample Joomla! module template

    Very simple, straight-forward & ready-to-install Joomla module. It was developed using version 3.9 of Joomla! CMS.

    After installing, you can create arbitrary instances of the module and place them on any module position of your template.

    It comes with 3 sample parameters which can be adjusted in the module settings.

    The sample module content shows some static text and a PHP button, which prints some text to the div container nearby.

Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
Ok