Archiv vom Mai, 2010

Host File Eintrag – Mac

Beim Programmieren richtet man sich oft eine lokale Testumgebung zum Entwickeln ein. Die Test-Webseiten sind dann z.B. unter http://localhost/demoseite.de/ zu finden. Doch wäre es nicht schön, wenn man auch eine Top-Level-Domain für die Enwicklung hat. z.B: http://demoseite.dev ? Alles kein Problem!

Als erstes müssen wir den Terminal öffnen (zu finden unter: Finder/Programme/Diensprogramme/Terminal). Danach geben wir den Befehl:

sudo pico /etc/hosts

ein. Wir öffnen also als Benutzer “root” die Datei /etc/hosts (mit dem Editor pico). Da wir die Datei als Root-Benutzer öffnen (wir müssen die Datei als Root-Benutzer öffnen, da wir ansonsten keine Änderungen speichern könnten) kommt nach der Eingabe des Befehls eine Passwortaufforderung. Hier müssen wir das Passwort des Root-Benutzers eingeben.

In die Datei tragen wir am Ende einfach die folgende Zeile ein:

127.0.0.1 demoseite.dev

und speichern das Dokument wieder (mit “Ctrl+X” und dann mit “y” bestätigen). Mit diesem Eintrag leiten wir alle Anfragen an demoseite.dev auf unseren Lokalen Server um.

Als nächstes müssen wir noch den DNS-Cache aktualisieren (anonsten würde die Test-Domain demoseite.dev erst beim nächsten Neustart des Rechners korrekt aufgelöst werden)

Dazu geben wir einfach den foldenden Befehl im Terminal ein:

dscacheutil -flushcache

Unsere Test-Domain ist somit fertig eingerichtet. Jetzt fehlt nur noch der VirtualHost Eintrag in der Apache Konfigurationsdatei (Damit sagen wir dem Server quasi wo sich die Seite testdomain.dev auf unserem Rechner befindet).

Wie man VHosts einrichtet steht auf dieser Seite.

Mai 25, 2010 Gepostet unter Mac OS X

Mehrere Webseiten auf einem Webspace

Um mehrere Webseiten auf einem Webspace laufen zu lassen benötigt man nicht unbedingt ein Webspace Paket für jede Domain (auch wenn dies von den meisten Webspace-Providern so mitgeteilt wird). Ist ja klar, die wollen auch Umsatz machen. Umsetzten kann man das Hosten von mehreren Webseiten auf einem Webspace mit einer .htaccess Datei auf dem Apache Webserver.

Im Normalfall haben Webspace Eingentümer einen Shared-Hosted-Webspace-Account.  Die eingene Webseite liegt also auf einem Server mit vielen anderen Webseiten. Dadurch hat man leider meist keinen Einfluss auf die Konfiguration des Servers wie es bei einem VServer oder Root-Server der Fall wäre. Im Normalfall würde das eigene Webspace-Paket leicht ausreichen um mehrere Webseiten darauf zu hosten, aber die Webspace-Provider richten die Pakete nicht so ein, dass man auf dem Webspace einfach mehrere Webseiten laufen lassen kann.

Unser Ziel ist also z.B domain1.com und domain2.de
auf einem Webspace laufen zu lassen.

Dazu müssen die beiden Domains klarerweise auf deinen Webspace zeigen. Am einfachsten kontakierst du dazu deinen Webspace-Provider. Der richtet dir die Domains für deinen Webspace ein.

Als nächstes müssen wir auf unserem Webspace 2 Ordner für unsere Webseiten erstellen. Wir gehen in userem Beispiel davon aus, dass der Document Root unseres Wespaces „/home/vserver/www/html/“ ist.

Wir legen jetzt den Ordner „domain1.com“ und „domain2.de“ in Unserem Document-Root an. In diese Ordner kommen dann die Dateien unserer Webseiten.

Unsere Verzeichnisstruktur sieht also folgendermaßen aus:

/home/vserver/www/html /domain1.com
/domain2.de

Als nächstes müssen wir eine „.htaccess“ Datei erstellen und diese in unserem Document-Root speichern.

In die .htaccess Dateie schreiben wir folgendes rein:

RewriteEngine On

#Eintrag für domain1.com
RewriteCond %{HTTP_HOST} domain1.com$ [NC]
RewriteCond %{REQUEST_URI} !^/domain1.com/?.*$
RewriteRule ^(.*)$ /domain1.com/$1 [L]

#Eintrag für domain2.de
RewriteCond %{HTTP_HOST} domain2.de$ [NC]
RewriteCond %{REQUEST_URI} !^/domain2.de/?.*$
RewriteRule ^(.*)$ /domain2.de/$1 [L]

In der Zeile 1 schalten wir mittels “RewriteEngine On” das mod_rewrite Modul vom Apache Webserver ein. Dieses Modul ist primär für das Umschreiben von URL’s zuständig. Danach folgen die RewriteRules für unsere Domains. In der Zeile 4 und 5 haben wir Rewrite Coditions erstellt. Das Umschreiben der URL’s erfolgt also nur, wenn die Condtions (Bedingungen) erfüllt sind. In der Zeile 4 sagen wir quasi “Wenn die aufgerufene Domain domain1.com ist, dann gehe zur nächsten Rewrite Codition, also Zeile 5. Schau ob diese zutrifft und schreibe dann die URL’s um”. Die Zeile 6 macht im Prinzip nichts anderes, als alle Anfragen in den Unterordner “domain1.com” umzuleiten. Bei den Rewrite Conditions ist die Zeile 5 sehr wichtig, da wir ansonsten eine Endlosschleife beim Umschreiben erzeugen würden!

Der Eitrag für die “domain2.de” ist der Selbe wie für die domain1.com (bis auf die Domain ;-) ).

Möchte man generell diese Technik zum Hosten von mehereren Webseiten auf einem Webspace anwenden, so könnte man auch folgendes in die .htaccess Datei eintragen:

RewriteEngine On

#Alle www. Subdomains auf die Domain ohne www. umleiten
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

#Rewrite Rules für die Webseiten
RewriteCond %{HTTP_HOST} (.*)$ [NC]
RewriteCond %{REQUEST_URI} !^/%1/?.*$
RewriteRule ^(.*)$ /%1/$1 [L]

Das Prinzip ist hier das Selbe wie im ersten Beispiel, außer dass wir hier Backreferences verwenden, und dass wir die Domains auf die Haupdomain (also ohne www.) weiterleiten. Wenn wir hier eine neue Webseite erstellen, so müssen wir nur mehr das Unterverzeichnis für die Domain erstellen.

Mai 16, 2010 Gepostet unter Apache Webserver

.de Domains ausgefallen

Am gestrigen Tag sind bei unseren deutschen Nachbarn einige Domains ausgefallen. Der Grund für den Ausfall war der Umzug der Denic von Amsterdam nach Frankfurt. Laut der Denic sollte es zu keinen Problemen aufrund des Umzugs kommen, aber da haben sie sich ein bisschen verschätzt.

Offensichtlich gab es technische Probleme wodurch die DNS Server der Denic falsche Informationen zurückgaben. Genauer gesagt lieferten die Server bei einer Anfrage auf eine .de Domain zurück, dass die Domain nicht existiert. Dadurch konnten die .de Domains nicht richtig aufgelöst werden. Es wäre ja nicht so schlimm, wenn kurzzeitig die Webseiten nicht erreichbar sind, aber viel ergerlächer ist es, dass dadurch auch der E-Mail Verkehr lahm gelegen ist.

Wenn nämlich eine E-Mail versendet wird, so versucht der empfangende Mailserver in der Regel den Domain Namen aufzulösen (Reverse DNS Lookup) um sicher zu stellen, dass es die Domain auch gibt. Das wird primär gemacht, um die Spamproblematik zu verringern. Da die Emfangenden Mail-Server nun allerdings zurück bekamen, dass die jeweilige .de Domain nicht existiert, wurden viele E-Mails nicht zugestellt. Das ist natürlich für viele Firmen sehr ärgerlich.

Mittlerweile ist das Problem mit den DNS Servern allerdings wieder gelöst und es funktioniert wieder so, wie es sollte.

Mai 14, 2010 Gepostet unter Allgemein