Heinrich Schiller  01.05.2019 09:28

VirtualHosts unter XAMPP und macOS Mojave

Ich habe es mir irgendwann mal angewöhnt Virtuelle Hosts unter XAMPP zu nutzen und nutze dieses Feature sehr gerne. Ein wichtiger Vorteil für mich ist, das ich meine Projekte nicht unbedingt im htdocs-Ordner vom XAMPP ablegen muss, wo sie mit der deinstallation/upgrade verschwinden können. Weiterer Vorteil ist auch, das die Projekte alle an einem Ort liegen und nicht verstreut sind, je nach Umgebung. Der Webserver von openSuSE Leap ist so konfiguriert, das man Virtuelle Hosts auch im eigenen home-Verzeichnen anlegen und nutzen kann. XAMPP nicht und bis auf openSuSE Leap kenne ich keine weitere Linux-Distribution, die es so ähnlich kompfortabell macht wie openSuSE.

Macht nichts! Machen wir aus der Not, eine Tugend. Hier ein paar der guten Neuigkeiten. XAMPP bietet eine nette kleine Dokumentation die man, wenn man XAMPP installiert hat, unter localhost/dashboard findet. Unter dem Link "HOW-TO Guides" findet man ein paar nette Anleitugen, zum Beispiel wie man so ein 'Virtual Host' anlegt. Sehr hilfreich, aber nach meiner Erfahrung funktioniert die Anleitung nur solange die 'Virtuelle Hosts' im htdocs-Ordner verbleiben. Unter Windows und XAMPP können die 'Virtuellen Hosts' auch außerhalb von htdocs liegen. Klar ist also das es an der Konfiguration des Apache-Servers liegen muss, welche je nach Betreuer und Betriebssystem leicht anders ausfällt.

Diese muss man eben nur finden und diese gute Neuigkeit lautet, es gibt das Internet und Nutzer die schon vor mir sich mit diesem Problem beschäftigen mussten/haben und netterweise ein Tutorial hinterlassen haben.

https://www.youtube.com/watch?v=wRq7dxvCR7U

Dieses Tutorial half mir die Wissenslücken für mein eigenen Problem zu schließen. Ich möchte ein meinem Home-Verzeichnis alle meine Projekte unter Projects ablegen und verarbeiten. Also sah meine vhost-Konfiguration zunächst so aus:

<VirtualHost *:80>
       DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/"
       ServerName localhost
</VirtualHost>
<VirtualHost *:80>
       DocumentRoot "/Users/heinrich/Projects/heinercms/"
       ServerName heinercms.localhost
</VirtualHost>

Das Problem ist nun das ein Fehler 403 erscheint, was mir die Ausführung meines Programms verweigert. Um das zu lösen, muss ich wie im YT-Video erst die passenden Einstellungen in der httpd.conf machen:

<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User heinrich
Group admin
</IfModule>

Dazu die passende httpd-vhost.conf:

<VirtualHost *:80>
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/heinrich/Projects/heinercms"
    ServerName heinercms.localhost
    ErrorLog "logs/heinercms.localhost-error_log"
    <Directory "/Users/heinrich/Projects/heinercms">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Fazit

Wenn man so ungefähr weiß wo mach greifen muss, ist die Konfiguration gar nicht so schwer. Ich kann jetzt mit meinem Editor oder IDE auf mein Projects-Ordner zugreifen und weiß das alle Projekte dort liegen. Mehr noch, sollte ich dann XAMPP irgendwann man wieder Aktualisiern müssen, weiß ich das die Deinstallation meinen Projekt-Ordner verschont und ich mit wenigen Handgriffen das neue XAMPP mit meinem Projekt-Ordner wieder verheiraten kann.