Lokale Vhosts auf Mobile Devices

Lokalen vhost auf Mobile Devices aufrufen

Wenn man vhosts verwendet um mit z.B. eine Framework wie TYPO3 FLOW oder ein CMS wie TYPO3 CMS im DocumentRoot und mit verschiedenen Einstellungen (SetEnv FLOW3_CONTEXT Production) lokal zu entwickeln hat man unter Umständen Probleme mit mobilen Endgeräten die Seite zu testen.

Auch im Adobe Edge Inspect Blog wird auf dieses Problem hingewiesen.

Das kommt daher, dass der DNS Server den das Mobile Device verwendet den Namen nicht in eine IP auflösen kann. Gibt man am Mobile Device die IP direkt ein kann der Webserver den Aufruf nicht zum richtigen vhost zuordnen, weil der Host Header dann die IP-Adresse enthält. Man kann auch bei den meisten Mobile Devices nicht die hosts Datei ergänzen, die normalerweise "statische" DNS-Einträge managed.

Um dieses Problem zu lösen gibt es mehrere Möglichkeiten:

Beispiel Daten

  • IP-Adresse Computer mit Webserver: 192.168.100.20
  • Erwarteter Host Header (ServerName): 60.typo3.local
  1. Setzen eines Alias im DNS-Server
    Hat man Zugriff auf den DNS-Server und kann diesem Einträge hinzufügen erstellt man einen Alias-Record der auf die IP vom Computer zeigt.
    Dadurch kann jedes Gerät im Netzwerk das diesen DNS-Server verwendet den Name 60.typo3.local zur IP 192.168.100.20 auflösen.
    Der Browser kann den Namen richtig auflösen -> sendet den richtigen Host Header -> der Webserver zeigt den richtigen vhost.
  2. Nutzen von xip.io
    xip.io ist ein Dienst der für DNS Namen, die eine IP enthalten die enthaltene IP zurück liefert.
    Vorangestellte Zusätze werden Ignoriert, helfen aber bei mehreren vhosts.
    Gibt man im Terminal z.B. "nslookup 192.168.100.20.xip.io" ein, bekommt man die IP 192.168.100.20 zurück geliefert.
    Gibt man "nslookup 60.typo3.local.192.168.100.20.xip.io" ein bekommt man ebenfalls die IP 192.168.100.20 zurück geliefert.
    Um den Dienst nun zu nutzen bedarf es einer zusätzlichen Einstellungen im vhost:
    1. der vhost muss um einen Alias ergänzt werden:
      ServerAlias 60.typo3.local.*.xip.io
    2. Base href
      Wird ein base href verwendet, wie z.B. bei TYPO3 + RealURL muss dieser ebenfalls stimmen.
      Leider kann config.baseURL kein stdWrap deswegen muss der Eintrag an die IP angepasst werden.
      Beispiel siehe unten.
    Manche DNS-Server, wie der in der AVM Fritz!Box, blockieren jedoch aus Sicherheitsgründen DNS Antworten mit IP-Adressen aus der eigenen Zone. Infos Projekt Issue Tracker

TYPO3 TypoScript baseURL für xip.io

#Default base href
config.baseURL = http://60.typo3.local/
[globalString = IENV:HTTP_HOST = *.xip.io]
# Delete prior config
config.baseURL >
#Base href called via xip.io
config.baseURL = http://60.typo3.local.192.168.100.20.xip.io/
[global]

vhost mit Alias für xip.io

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents/60.typo3.local"
    ServerName 60.typo3.local
    # Alias for xip.io with ip wildcard:
    ServerAlias 60.typo3.local.*.xip.io
    ErrorLog "/private/var/log/apache2/60.typo3.local-error_log"
    CustomLog "/private/var/log/apache2/60.typo3.local-access_log" common
</VirtualHost>
Stichwörter zu dieser Seite: 
Generator: TYPO3 CMS 6.2
Google Page Speed
@t3easy_de folgen
Google+