Hallo zusammen
Heute möchte ich euch zeigen, wie man mit einem Apachen, mehrere Webseiten auf einen Server packen kann.
Normalerweise haben Root Server nur eine IP Adresse. Mit einem Apachen kann man auf zwei verschiedene Arten Virtuelle Hosts ( Webseiten) erstellen. Eine ist die namensbasierten und einmal die IP basierten Vhosts. Bei der letzten Möglichkeit brauchen wir, für einen Host, eine IP Adresse. Sowas haben wir aber nicht, also doch die Namensbasierten Vhosts. Ich beschreibe das mal für einen Apachen der Version 2:
Es gibt im Verzeichniss des Apachen, normalerweise dieses Verzeichniss /etc/apache2, noch weitere Verzeichnisse, die nennen sich einmal sites-available und sites-enabled. Diese Verzeichnisse benutzen wir um dem Apachen die Konfiguration der einzelnen Webseiten mitzuteilen. Wir wechseln in das Verzeichniss sites-available und finden dort eine Datei die sich default nennt. Mit dem Befehl:
cp default neuerName
erzeugen wir noch eine Kopie dieser Datei in dem Verzeichniss. Die Datei kann heissen wie ihr es wollt, sinnigerweise sollte man einfach den Namen der Webseite nehmen, dann weiss man wo man rumbastelt. Doch nun weiter im Text.
Nun editieren wir die kopierte Datei, mit unserem Lieblingseditor, ich nehme meine Hassliebe den vi.
vi neuerName
und können dort, den Pfad, die Logdatei und einiges andere einstellen ( Am Ende des Beitrags kommt eine Beispieldatei). Speichern nicht vergessen!
So nun müssen wir dem Apachen, das auch bekannt geben, welche Webseiten wir denn nun haben. Wir erzeugen einen Link. Wechselt dazu in den Ordner sites-enabled und führen den Befehl
ln -s /etc/apache2/sites-available/neuerName 00x-default
aus. Das x steht für eine Zahl. Diese "Verknüpfungen" liest der Apache beim Start ein und erzeugt daraus seine VHosts.
Hier noch eine Bespieldatei mit Anmerkungen von mir:
NameVirtualHost Beispieldomain.de #-> Hier der Name eurer Domain
<VirtualHost Beispieldomain.de>
ServerAdmin webmaster@Bespieldomain.de # -> Die Mailadresse für Fehlermeldungen ( kann auch wegelassen werden)
ServerName Beispieldomain.de
ServerAlias www.Beispieldomain.de Beispieldomain.de *.Beispieldomain.de # -> Worauf soll der Server reagieren
DocumentRoot /var/www/ # -> Hier der Pfad zu euren Webseiten Dateien
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/> # -> Hier noch mal
#Options Indexes FollowSymLinks MultiViews
AllowOverride None
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error-Beispieldomain.log # -> Hier die Logdatei für Fehler
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access-Bespieldomain.log combined # -> und hier die Logdatei für die Zugriffe
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Alles anzeigen
So nach einem Neustart des Apachen mit dem Befehl
apache2 -k restart
lesen wir die neuen Konfigs ein und haben zwei Webseiten. Die Meldung können wir ignorieren, sie besagt nur, das wir zwei Webseiten auf dem selben Port ( 80) betreiben.
Etwas wichtiges noch: Die Domains müssen registriert sein und bei eurem Provider im DNS bekannt sein, sonst geht es nicht.
Viel Spass und
Gruss Karsten