# Virtueller Host auf Apache 2.4



## airtime (2. November 2017)

Hallo,

nach mehreren examples und auch einer Anleitung eines Buches bin ich ein wenig am verzweifeln.
Ich möchte zunächst nur einen virtuellen Host auf den Apache Server 2.4 (Ubuntu 16) hinzufügen.

Wie ihr gleich an meinen Fragen merken werdet bin ich nicht sehr versiert bei der Einrichtung von Servern.
Es sollte nichts verstellt sein da ich sowohl Ubuntu als auch Apache neu aufgesetzt habe.
So nun zu dem was ich schon probiert habe:
- Ein Ordner für die Inhalte erstellt in /var/www/example/ und den Inhalt zunächst nur mit einer index.html datei mit einfacher Textzeile (html konform natürlich).
- In /etc/apache2/sites-available/example.conf erstellt und auch gefüllt mit z.B.: ServerName www.example.de
- dann mit a2ensite example.conf aktiviert und den server reloaded.

Bis hierhin sollte alles passen da sowohl apache2ctl confogtest -> Syntax OK als auch apache2ctl -S den virtuellen Host auflisted.

Ich glaube eher das ich zu blöd bin die Seite richtig aufzurufen. Hier kommen die etwas peinlicheren Fragen  Also der name sollte ja dann www.example.de sein, aber woher weiss der Browser welchen Server/PC ich meine also müsste ja die IP davor stehen, aber dann ergibt der virtuelle Host ja kein Sinn da ja die Seiten alle auf die gleiche IP aufbauen. (Der Server ist erstmal in einem internen System und da wird er vorerst bleiben)
Naja bei der IP wird die default Seite von Apache aufgerufen, muss ich die default dateien deaktivieren um die IP freizugeben?
Wie rufe ich den die Seite mit dem virtuellen Host auf?(mit einem anderen Rechner in Netzwerk)

P.S.: Im Buch wurde noch der virtuelle Host noch mit SSL verschlüsselt jedoch das erste was ich auf https://httpd.apache.org/docs/2.4/de/vhosts/name-based.html lese ist "Namensbasierte virtuelle Hosts können aufgrund der Natur des SSL-Protokolls nicht mit SSL-gesicherten Servern verwendet werden."

Gruß Air


----------



## merzi86 (2. November 2017)

Hallo also das du zu Blöd bist die Seite richtig aufzurufen glaube ich nicht.
Ich tippe auf ein Konfigurationsfehler.

Der Konfigurationstest kann ja nicht Gedankenlesen, deshalb kann er auch nicht feststellen, ob die Konfig das genauso macht, wie du es willst. Der Test schaut einfach nur in die Konfig, ob diese Korrekt aufgebaut ist und keine Groben Fehler enthalten sind.

Wenn man es sehr schnell und Vereinfacht beschreiben möchte läuft es ungefähr so ab:
Dein Browser weiß das nicht. Dies weiß ein Dienst Namens DNS (Domain Name System) dein Rechner fragt ein DNS-Server, wie die IP-Adresse des Servers zu dem der Domain Name www.example.de gehört.

Anschließend wird vom Browser nur dieser Server auf Port 80 aufgerufen und der Content abgerufen.
Der HTTP-Dienst auf dem Server Interpretiert den HTTP-Request header und liest die URL aus, die Aufgerufen wird und entscheidet so, welche Seite geliefert werden soll.

Das mit dem SSL kann ich nicht bestätigen.
   1. Arbeiten so ein Großteil der Webserver im Internet.
   2. der HTTP-Dienst baut die Verschlüsselte Verbindung auf und kann so auf die Übermittelten werte aus dem Header zugreifen. Nur Drittserver haben kein Zugriff auf die Übermittelten Daten.

Es ist schon eigenartig, dass dieser Hinweis im Englischen Original nicht existiert.

Wie dem auch sei, wo dein Problem genau liegt ist so schwer zu sagen.
Es kann schon bei der Namensauflösung anfangen oder doch eine Fehlkonfiguration des Apache.

Effektiv könnten wir dir Helfen, wenn du uns mal deine VHost Konfiguration postest und vielleicht auch die IP-Adresse des Servers.


----------



## strukturart (2. November 2017)

Zeig mal was in deiner

 /etc/apache2/apache2.conf
und
/etc/hosts

steht

wenn du localhost im browser aufrufst erscheint dann die Testseite von Apache ?


----------



## airtime (3. November 2017)

Vielen dank,
für die ausführlichen Antworten.
Es wird dann wohl die Namensauflösung sein da ich nicht Admin in unserem Netzwerk bin konnte ich dies für das Netzwerk nicht erstellen, werde mich dann gleich an den Admin wenden und berichten.
Falls das Problem dann noch weiterhin besteht melde ich mich mit den Dateiinhalten.
Hätte ich jetzt fast vergessen, wenn ich ServerAlias haben möchte müssen diese dann auch vom Admin freigegeben werden?

Zum Verständnis würde ich noch gerne fragen, wenn sich der Server mit nur einem weiteren PC im Netzwerk befinden würde, bräuchte man dann auch die Namensauflösung?
Da ja nur ein Server angesprochen werden kann ist doch eine IP Zuweisung überflüssig?
Wenn dieser Server dann von außen ersichtlich sein soll müsste die allgemeine IP (nicht die interne IP) einer noch freien Domain zugeordnet werden?

Gruß Air


----------



## merzi86 (3. November 2017)

Wenn es nur 1 Client-PC gibt, dann gibt es eine Möglichkeit die Namensauflösung zu umgehen.

Du nutzt ganz einfach den Vorgänger des DNS.
Nennt sich hosts.

Diese Datei liegt unter Windows im Verzeichnis c:\Windows\System32\drivers\etc und unter Linux in /etc.

In dieser Datei musst du nur einen Eintrag erstellen der wie folgt aussieht:

```
127.0.0.1 www.example.com
```

Dies kann man bei beliebig vielen Einträgen so machen.
Einzigste Nachteil ist, dass es wie gesagt nur für das System gilt, auf den es Konfiguriert wurde.


----------

