Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

tux:apache_vhost [2011/04/17 00:21]
wikisysop
tux:apache_vhost [2014/06/01 20:00] (aktuell)
wikisysop [Enable Site]
Zeile 1: Zeile 1:
 [[:tux|{{ :​linux.png?​40|}}]] [[:tux|{{ :​linux.png?​40|}}]]
-===== vhosts ​auf Apache2 Webserver einrichten ​(Debian) ​=====+====== Virtuelle Hosts auf Apache2 Webserver einrichten =====
 +Wenn Sie auf einem Server mehr als eine Webseite betreiben möchten, bietet die virtuelle Hostkonfiguration((http://​httpd.apache.org/​docs/​current/​vhosts/​)) zwei Möglichkeiten an. Virtuelle Hosts können <fc #​008000>​»IP-basiert«</​fc>​ sein, was bedeutet, dass jedes Webangebot eine andere IP besitzt, oder <fc #​008000>​»Namens-basiert«</​fc>,​ was bedeutet, dass unter jeder IP-Adresse mehrere Namen laufen. Dieses Tutorial beschränkt sich auf die Verwendung von >>​Namens-basierten<<​ virtuellen Hosts.
  
-Wenn Sie auf einem Server mehr als eine Webseite betreiben möchtenbietet die virtuelle Hostkonfiguration((http://​httpd.apache.org/​docs/​2.1/​de/​vhosts/​)) zwei Möglichkeiten an. Virtuelle Hosts können <fc #008000>»IP-basiert«</​fc> ​sein, was bedeutet, dass jedes Webangebot eine andere IP besitzt, oder <fc #​008000>​»Namens-basiert«</fc>, was bedeutet, dass unter jeder IP-Adresse mehrere Namen laufenDas folgende Tutorial beschränkt sich auf die Names-basierte Variante unter der Verwendung ​von Subdomains einer bestehenden Domain, es ist jedoch im Prinzip jeder FQDN((http://​www.prontosystems.org/​tux:​apache_vhost)) anwendbar. Die Verwendung von namensbasierten virtuellen Hosts ist gewöhnlich einfacher. Sie müssen lediglich Ihren DNS-Server darauf einstellen, jeden Hostnamen auf die richtige IP-Adresse abzubilden, und dann den Apache HTTP Server so konfigurieren,​ dass er die verschiedenen Hostnamen erkennt. Man kann aber auch eine Testumgebung ohne vorhandenen DNS A-Record betrieben, dazu steht mehr beim Testen der Konfiguration. Namensbasierte virtuelle Hosts entschärfen auch den Bedarf an knappen IP-Adressen. Daher sollten Sie namensbasierte virtuelle Hosts verwenden, sofern kein besonderer Grund dafür existiert, IP-basierte virtuelle Hosts zu wählen+**Note:** Die Apache Konfiguration wie zB der Speicherort der Document RootsLogFiles etc können ​möglicherweise von Ihrer abweichen, da ich mich nicht in dem Apache Standard Document Root >><fc #008000>/var/www</​fc><< ​aufhalteDie Installation basiert ​auf einer Minimal-Installation ​von Debian 7.5.0 x64.
  
-**Note:** Die Apache Konfiguration wie zB der Speicherort der Document Roots, LogFiles etc können möglicherweise von Ihrer abweichen, da ich mich nicht in dem Apache Standard Document Root <fc #​008000>/​var/​www</​fc>​ aufhalte.  +==== Apache Installation ==== 
- +Die Installation des Apache2 ​Webservers ​in seiner Grundausstattung ​ist denkbar ​einfach und in wenigen Sekunden erledigt
-=== Apache Installation === +<​xterm>#​ <fc #​008000>​aptitude install apache2</​fc></​xterm>​ 
- +Das wars auch schon, ​das Ergebnis ​können Sie sofort ​in Ihrem Browser überprüfen
-Die Installation des Apache ​Webservers ist denkbar ​simpel. Wenn Sie noch keinen Apache Webserver auf Ihrem System haben, installieren Sie diesen: +{{ ::vhostcfg_1.png |}}
- +
-<​xterm>#​ <fc #​008000>​aptitude install apache2</​fc>​ +
-</​xterm>​ +
- +
-Das wars schon, ​überprüfen ​können Sie dies in dem Sie die Default Webseite Ihres neuen Servers aufrufen: +
- +
-{{:tux:apacheworks.png|}}+
  
 So schaut dann Ihre neuer Internetauftritt aus! In der Standardinstallation befindet sich diese Standard <fc #​008000>​index.html</​fc>​ im Standard Document Root <fc #​008000>/​var/​www</​fc>​. So schaut dann Ihre neuer Internetauftritt aus! In der Standardinstallation befindet sich diese Standard <fc #​008000>​index.html</​fc>​ im Standard Document Root <fc #​008000>/​var/​www</​fc>​.
Zeile 21: Zeile 15:
 Die Verzeichnisstruktur von Apache gliedert sich auf einem Debian System wie folgt: Die Verzeichnisstruktur von Apache gliedert sich auf einem Debian System wie folgt:
  
-<​xterm>​/# <fc #​008000>​tree -d etc/​apache2/</​fc>​ +<​xterm>#​ <fc #​008000>​tree -d /etc/​apache2/</​fc>​ 
-etc/​apache2/​ +/etc/​apache2/​ 
-|-- conf.d ​         <fc #​ffa500><​- Beinhaltet zusätzliche Konfigurationsdateien</​fc>​ +├── ​conf.d ​         <fc #​ffa500><​- Beinhaltet zusätzliche Konfigurationsdateien</​fc>​ 
-|-- mods-available ​ <fc #​ffa500><​- Speicherort der installierten Apache Module (-> Debian)</​fc>​ +├── ​mods-available ​ <fc #​ffa500><​- Speicherort der installierten Apache Module (-> Debian)</​fc>​ 
-|-- mods-enabled ​   <fc #​ffa500><​- Symlink aus mods-enabled aktiviert das Modul (-> Debian)</​fc>​ +├── ​mods-enabled ​   <fc #​ffa500><​- Symlink aus mods-enabled aktiviert das Modul (-> Debian)</​fc>​ 
-|-- sites-available <fc #​ffa500><​- Speicherort der verfügbaren Virtual Hosts (-> Debian)</​fc>​ +├── ​sites-available <fc #​ffa500><​- Speicherort der verfügbaren Virtual Hosts (-> Debian)</​fc>​ 
-`-- sites-enabled ​  <​fc #​ffa500><​- Symlink aus sites-enabled aktiviert die Virtual Hosts (-> Debian)</​fc>​ +└── ​sites-enabled ​  <​fc #​ffa500><​- Symlink aus sites-enabled aktiviert die Virtual Hosts (-> Debian)</​fc></​xterm>​
-</​xterm>​+
  
-=== Virtual Host Direktive ​===+==== httpd.conf / apache2.conf ​==== 
 +Jüngere Releases des Apache Webservers haben die bislang üblicherweise verwendete >><​fc #​008000>​httpd.conf</​fc><<​ nicht mehr im Programm und bauen auf eine neue Konfigurationsdatei >><​fc #​008000>​apache2.conf</​fc><<​ auf. Ich verwende jedoch weiter eine >><​fc #​008000>​httpd.conf</​fc><<​ Datei, diese muss ich jedoch in der Standard KOnfigurationsdatei >><​fc #​008000>/​etc/​apache2/​apache2.conf</​fc><<​ mit einer >><​fc #​008000>​Include</​fc><<​-Anweisung einbinden und logischerweise noch anlegen. Ich habe mich für dieses Setup entschieden,​ weil ich somit alle benutzerdefinierten Einträge in der >><​fc #​008000>​httpd.conf</​fc><<​ sammeln kann und die >><​fc #​008000>​apache2.conf</​fc><<​ erstmal in ihrer Ursprünglichkeit erhalten kann. Bis zu einem gewissen Grad geht das, bei komplexeren Setups vermutlich nicht mehr.  ​
  
-<fc #800000>**Grundvoraussetzung**</​fc> ​für das Funktionieren einer name-based vhost Konfiguration ist das Vorhandensein eines <fc #008000>DNS A-Records</fcfür jeden Vhost. Da alle Vhosts idR über die Selbe IP Adresse angesprochen werden, kann bei Verwendung einer IP Adresse nicht zwischen den Vhosts unterschieden werden. Wird dennoch eine IP Adresse verwendet, zeigt der Server idR den ersten Vhost in seiner Konfiguration an. Für die Übergabe der angesprochenen URL ist der HTTP-Header verantwortlich,​ der vom HTTP-Server ausgewertet und vom Browser übergeben wird. Wenn im Entwicklungsstadium einer Webseite noch kein A-Record vorhanden ist, kann man sich mit einem entsprechenden Eintrag in die lokale ​<fc #​008000>/​etc/​hosts</fc>​-Datei der Entwicklungsmaschine(n) behelfenDazu mehr im Abschnitt ​<​fc ​#008000>»Testen der Konfiguration«</fc> +<​xterm># ​<fc #008000>touch /​etc/​apache2/​httpd.conf</​fc><​/xterm> 
-am Ende dieses Artikels.+<xterm><fc #008000>echo "​Include httpd.conf"​ <​nowiki>>></​nowiki> /etc/apache2/apache2.conf</fc></xterm>
  
-<fc #​800000>​**Note:​**</​fc>​ Anstelle der IP-Adresse des Servers können sie in der <fc #​008000><​Virtualhost></​fc>​ Anweisung auch mit einem <fc #​008000>​*-Zeichen</​fc>​ (-> <​Virtualhost *>) arbeiten. Das <fc #​008000>​*-Zeichen</​fc>​ bei den Anweisungen <fc #​008000>​NameVirtualHost</​fc>​ und <fc #​008000><​Virtualhost></​fc>​ bewirkt, dass Apache diese Website auf allen IP-Adressen anbietet, die mit Listen-Anweisungen (z.B. in <fc #​008000>/​etc/​apache2/​ports.conf</​fc>​) benannt wurden. Wünschen Sie eine Differenzierung,​ können Sie statt des *-Zeichens auch eine oder mehrere IP-Adressen (ggf. mit TCP-Port) (z.B. <fc #​008000>​192.168.1.1:​80</​fc>​ 192.168.1.2:​80) angeben.+==== Virtual Host Direktive ====
  
-Der Hauptbestandteil der virtuellen Hosts ist die <fc #008000>Virtual Host Direktive</​fc>​. ​Dazu wird für jeden verfügbaren (aber nicht aktiven) vhost eine Konfigurationsdatei ​in <fc #​008000>/​etc/apache2/sites-available</​fc> ​abgelegtDie Struktur einer vhost-Konfigurationsdatei gliedert sich in der Basis wie folgt:+Ein Server kann mehrere IP-Adressen haben, zB weil auf anderen Adressen noch andere Dienste angeboten werden. Dazu ist es bei einer >><fc #008000>Namens-basierten</fc><< Host Konfiguration notwendig dem Apache Webserver zu sagen auf welchen IP-Adressen er mit Anfragen zu rechnen hatDas wird mit der Direktive >><​fc #​008000>​NameVirtualHost</​fc><< ​in der >><fc #008000>httpd.conf<​/fc><<​ bzw. >><​fc #008000>apache2.conf</fc><<​ eingestellt. Man kann auch mit einem Asterix >><​fc #​008000>​*</fc><< arbeiten, dann hört der Apache Webserver jede IP-Adresse des Systems abWenn der Server auf mehreren TCP-Ports lauschen soll (zB 443 für HTTPS und 80 für HTTP), dann muss auch der Port noch mit angeben werden. Des Weiteren ist ein >><​fc #​008000><​VirtualHost></​fc><<​ Block für jeden Host notwendig. Wichtig ist dabei, dass die Angaben ​in der >><​fc #​008000>​NameVirtualHost</​fc><<​ Direktive und in der >><​fc #​008000><​VirtualHost></​fc><<​ Konfiguration identisch sind, d.h. eine IP-Adresse oder * für alle Adressen. ​
  
-<code xorg_conf|/etc/​apache2/​sites-available/​SAMPLEFILE> +Die >><​fc #​008000>​NameVirtualHost</fc><< Direktive wird in die >><​fc ​#008000>​httpd.conf</​fc><<​ (bzw apache2.conf) geschrieben:​
-NameVirtualHost * +
  
-<VirtualHost ​192.168.172.132> +<xterm># <fc #​008000>​echo "​NameVirtualHost ​192.168.167.162:​80"​ <nowiki>>><​/nowiki> ​/etc/apache2/httpd.conf</fc></xterm>
-  ServerName ​   # FQDN des vhost; zB www.mydomain.com +
-  ServerAlias ​  # FQDN eines Server Alias, welche auf den gleichen vhost zeigt; zB alias.mydomain.com (Optional) +
-  DocumentRoot ​ # Das Homeverzeichnis des vhosts; zB /home/www.mydomain.com +
-  ServerAdmin ​  # Wer ist für den Server verantwortlich?;​ zB admin@mydomain.com (Optional) +
-  CustomLog ​    # Logfile Pfad; zB /home/www.mydomain.com/logs/​access.log combined +
-  ErrorLog ​     # Pfad zum Error Log; zB /​home/​www.mydomain.com/​logs/​error.log  +
-  LogLevel ​     # Definiert wie ausführlich geloggt wird; zB +
-</VirtualHost>+
  
-</​code>​+==== Virtual Host Konfiguratiopnsdatei ====
  
-Nun können wir das mal an zwei Beispiel Vhosts durchspielen. Dazu werden im ersten ​Schritt die Document Root- und Log-Verzeichnisse für die beiden FQDNs erstellt:+Im nächsten ​Schritt ​werden ​die Konfigurationsdaten der Hosts angelegt. Man könnte ​die ganzen >><​fc #​008000><​VirtualHost></​fc><<​ Statements auch in einer Konfigurationsdatei zusammenfassen,​ ich bevorzuge jedoch für jeden Host eine eigene Konfigurationsdatei zu erzeugen:
  
-<​xterm>​vmdebian3:/​etc/​apache2# <fc #008000>mkdir -p <​nowiki>​/home/www.sample-1.com/​logs</​nowiki>​</​fc>​ +<​xterm>#​ <fc #008000>touch /etc/apache2/​sites-available/​sample1.com</​fc>​ 
-vmdebian3:/​etc/​apache2# <fc #008000>mkdir -p <​nowiki>​/home/www.sample-2.com/​logs</​nowiki>​</fc> +# <fc #008000>touch /etc/apache2/​sites-available/​sample2.com</​fc></​xterm>​
-</​xterm> ​ +
  
-<fc #​800000>​**Note:**</​fc>​ Sowohl der Pfad wie der Name für das Document Root Verzeichnis ist frei wählbar, es muss letztlich nur mit dem in der virtual Host Direktive übereinstimmen. Ich verwende aber idR wegen der Übersichtlichkeit den FQDN des Servers für den Verzeichnisnamen und lege die Document Root Verzeichnisse in <fc #​008000>/​home</​fc>​-Verzeichnis ab, was in meinen Installationen einen eigenen Mountpoint besitzt.+Der Inhalt dieser Datei besteht aus folgenden Punkten:
  
-Im nächsten Schritt kopieren wir in jedes Document Root Verzeichnis eine eigene index.htmldamit wird die Seite auch aufrufen können. Ich kopiere dafür ​zB die Default Apache ​<fc #008000>index.html</fcvon <fc #008000>/var/www</fc> und editiere diese zur einfacheren Unterscheidung noch mit eindeutige Angaben ​zum vhost:+  * **ServerName**:​ Das ist der FQDN des virtual Host, zB <nowiki>www.sample1.com</nowiki> 
 +  * **ServerAlias**:​ Nicht zwingend notwendig aber nützlich wenn der Host zB auch über eine Subdomain erreichbar sein soll zB <nowiki>test.sample1.com<​/nowiki>​ 
 +  * **DocumentRoot**:​ Das Homeverzeichnis des virtual Hosts; zB /home/<​nowiki>​www.sample1.com</nowiki> 
 +  * **ServerAdmin**:​ Gehört zum guten Ton und sollte die E-Mail Adresse des Server Administrators beinhalten 
 +  * **CustomLog**:​ Der absolute Pfad zum Access-Logfile 
 +  * **ErrorLog**Der absolute Pfad zum Errror-Logfile 
 +  * **LogLevel**:​ Definiert wie ausführlich geloggt wird
  
-<xterm>vmdebian3:/​etc/​apache2# ​<fc #008000>cp /​var/​www/​index.html <​nowiki>/​home/​www.sample-1.com/</​nowiki>​</fc> +Das >><fc #008000>DocumentRoot</​fc><< ​der beiden hier verwendeten virtual Hosts müssen noch angelegt werdenDer Name und Pfad sind frei wählbar, muss jedoch mit dem aus der og Konfigurationsdatei übereinstimmen:​
-vmdebian3:/​etc/​apache2# ​<fc #​008000>​cp /​var/​www/​index.html ​<nowiki>/​home/​www.sample-2.com/</​nowiki></​fc>​ +
-</​xterm>​+
  
-Im Anschluss daran erstelle ich die beiden Host Direktiven in <fc #​008000>/​etc/apache2/sites-available</​fc>​. ​Der Name der Host Direktiven ist frei wählbar, ich verwende dafür idR wegen der Übersichtlichkeit den domainnamen:​+<​xterm># ​<fc #008000>mkdir /home/<​nowiki>​www.sample1.com<​/nowiki></fc> 
 +# <fc #​008000>​mkdir /​home/<​nowiki>​www.sample2.com</​nowiki></​fc></​xterm>​
  
-<xterm>vmdebian3:/​etc/​apache2# ​<fc #008000>touch /etc/apache2/​sites-available/​sample-1.com</fc> +Die Logfiles sollten im Standardpfad für Logdateien >><fc #​008000>/​var/log/​apache2</​fc>​<< angelegt werden. Dadurch profitieren sie zum einen durch Logrotate um Platz zu sparen und zum anderen legt ein Amok laufendes Logfile nicht gleich den kompletten Server lahm; dazu muss aber >><fc #​008000>/​var</​fc><​< auf einer eigenen Partition liegen. Damit man jedoch bei mehreren Hosts noch sinnvoll zwischen den einzelnen Hosts unterscheiden kann, verwende ich den FQDN im Namen des Logfiles:
-vmdebian3:/​etc/​apache2# ​<fc #008000>touch /etc/​apache2/​sites-available/​sample-2.com</fc> +
-</xterm>+
  
-<code xorg_conf|/etc/apache2/sites-available/sample-1.com> +<xterm># <fc #​008000>​touch ​/var/log/apache2/<​nowiki>​www.sample1.com-access.log<​/nowiki></​fc>​ 
-NameVirtualHost 192.168.172.132+# <fc #​008000>​touch /​var/​log/​apache2/<​nowiki>​www.sample2.com-access.log</​nowiki></​fc>​ 
 +# <fc #​008000>​touch /​var/​log/​apache2/<​nowiki>​www.sample2.com-error.log</​nowiki></​fc
 +<fc #​008000>​touch /​var/​log/​apache2/<​nowiki>​www.sample2.com-error.log</​nowiki></​fc></​xterm>​
  
-<​VirtualHost 192.168.172.132+Daraus ergibt sich dann folgende Konfigurationsdatei für den ersten der beiden virtuellen Hosts: 
- ​ServerName www.sample-1.com+ 
 +<code xorg_conf|/​etc/​apache2/​sites-available/​www.sample1.com>​ 
 +<​VirtualHost 192.168.167.162:80
 + ​ServerName www.sample1.com
  ​ServerAlias  ​ServerAlias
- ​DocumentRoot /home/www.sample-1.com/ + ​DocumentRoot /home/www.sample1.com/ 
- ​ServerAdmin ​Pronto + ​ServerAdmin ​prontos@email.de 
- ​CustomLog /home/www.sample-1.com/logs/access.log combined + ​CustomLog /var/​log/​apache2/www.sample1.com-access.log combined 
- ​ErrorLog /home/www.sample-1.com/logs/error.log+ ​ErrorLog /var/​log/​apache2/www.sample1.com-error.log
  ​LogLevel warn  ​LogLevel warn
 </​VirtualHost>​ </​VirtualHost>​
 </​code>​ </​code>​
  
-<code xorg_conf|/​etc/​apache2/​sites-available/​sample-2.com> +Für den zweiten Host verfahren Sie analog dazu.
-# NameVirtualHost 192.168.172.132+
  
-<​VirtualHost 192.168.172.132>​ +==== Enable Site ====
- ​ServerName www.sample-2.com +
- ​ServerAlias +
- ​DocumentRoot /​home/​www.sample-2.com/​ +
- ​ServerAdmin Pronto +
- ​CustomLog /​home/​www.sample-2.com/​logs/​access.log combined +
- ​ErrorLog /​home/​www.sample-2.com/​logs/​error.log +
- ​LogLevel warn +
-</​VirtualHost>​ +
-</​code>​+
  
-Im Anschluss daran legen wir einen Symlink der Host Direktiven aus /​etc/​apache2/​sites-available nach /etc/apache2/​sites-enabled+Die beiden virtuellen Hosts müssen nun noch aktiviert werden. Dazu legen Sie einen Symlink der beiden soeben erstellten Konfigurationsdateien in >><​fc #008000>/​etc/​apache2/​sites-enabled</fc><<​ an. Verwenden Sie hierfür das Apache2 Utility >><​fc #​008000>​a2ensite<​/fc><<​ für apache2 ​enable site:
  
-<​xterm>​vmdebian3:/​etc/​apache2# <fc #008000>ln -s /​etc/​apache2/​sites-available/​sample-1.com /​etc/​apache2/​sites-enabled/​sample-1.com</fc> +<​xterm>#​ <fc #008000>a2ensite ​<nowiki>www.sample1.com</nowiki></​fc>​ 
-vmdebian3:/​etc/​apache2#​ <fc #​008000>​ln -s /​etc/​apache2/​sites-available/​sample-2.com /​etc/​apache2/​sites-enabled/​sample-2.com</fc> +Enabling site <nowiki>www.sample1.com</nowiki>. 
-vmdebian3:/​etc/​apache2#​ <fc #​008000>​ls -l /​etc/​apache2/​sites-enabled/​</​fc>​ +To activate the new configuration,​ you need to run: 
-insgesamt 0 +  service ​apache2 ​reload</​xterm>​
-lrwxrwxrwx 1 root root 26 25. Apr 13:33 000-default -> ../sites-available/​default +
-lrwxrwxrwx 1 root root 41 25. Apr 17:15 sample-1.com -/​etc/​apache2/​sites-available/​sample-1.com +
-lrwxrwxrwx 1 root root 41 25. Apr 17:16 sample-2.com -> /etc/apache2/​sites-available/​sample-2.com +
-</​xterm>​+
  
-Jetzt teilen wir dem Apache noch mit, dass er sich auf eine NameVirtualHost Direktive einstellen soll. Fügen Sie dazu in der <fc #008000>/​etc/​apache2/​httpd.conf</fcdie Zeile <​fc ​#008000>NameVirtualHost [IP Adresse des Servers]</fcein:+<​xterm># ​<fc #008000>a2ensite <​nowiki>​www.sample2.com</nowiki></fc> 
 +Enabling site <​nowiki>​www.sample2.com</nowiki>
 +To activate the new configuration,​ you need to run: 
 +  service apache2 reload</​xterm>​
  
-<​xterm>​vmdebian3:/​etc/​apache2#​ <fc #​008000>​echo <​nowiki>"​NameVirtualHost 192.168.172.132" ​>> ​/​etc/​apache2/​httpd.conf</​nowiki></​fc>​ +**Note**Um einen virtuellen Host wieder zu deaktivieren bzwum den Symlink wieder zu entfernen verwenden Sie das Utility ​>><​fc #008000>a2dissite</​fc><​<.
-vmdebian3:/​etc/​apache2# ​<fc #008000>cat /​etc/​apache2/​httpd.conf</​fc> ​ +
-<fc #​0000FF>​NameVirtualHost 192.168.172.132</​fc>​ +
-</​xterm>​+
  
-Zuletzt wird noch das IP/Hostname Binding in die >>/​etc/​hosts<<​ geschrieben:+Eigentlich ist die Kofiguration für zwei virtuelle Hosts nun fertig. Es ist eine gute Idee bevor Sie den Apache neu starten bzw. die Konfiguration neu laden, zuerst einen Syntaxcheck durchzuführen. Dieser ist besonders nützlich, wenn der Server bereits Webseiten online hat, weil durch den Reload einer fehlerhaften Konfiguration uU die bereits laufenden Seiten gestört werden könnten:
  
-<​xterm>​vmdebian3:/​etc/​apache2# <fc #008000>echo '​192.168.172.132 <​nowiki>​www.sample-2.com www.sample-1.com'​ >></​nowiki>​ /etc/hosts</​fc></​xterm>​+<​xterm>#​ <fc #008000>apachectl configtest</fc> 
 +Syntax OK</​xterm>​
  
-Am Ende laden wird die Apachekonfiguration neuum den HTTP-Server unsere Änderungen mitzuteilen:+Schaut gut ausnachdem wir nun durchgeladen haben schießen wir zum Schluss noch mal scharf:
  
-<​xterm>​vmdebian3:/​etc/​apache2# <fc #008000>/​etc/​init.d/​apache2 reload</​fc>​ +<​xterm>#​ <fc #008000>service ​apache2 reload</​fc>​ 
-Reloading web server config: apache2. +[ ok ] Reloading web server config: apache2.</​xterm>​
-</​xterm>​+
  
-=== Testen der Konfiguration ===+==== Testen der Konfiguration ===
 +Schön das unsere Einstellungen scheinbar funktionieren aber sinnvolles lässt sich damit noch nicht anstellen. Um die Konfiguration anschließend zu testen sollten wir jedem Host zumindest eine >><​fc #​008000>​index.html</​fc><<​ spendieren und diese mit eindeutige Text zu füttern, damit wir die Unterschiede auch feststellen können:
  
-Da ich für diese Doku hier lokal auf meinen Test Systemen arbeite, kann ich nicht auf einen Internet DNS A-Record zurückgreifen und lege mir daher das Binding der FQDNs zur IP Adresse in meiner lokalen Hostsdatei anDie Hostsdatei ist quasi der lokale DNS des Systems und es wird immer vor der eigentliche Anfrage an einen DNS Server geprüft, ob die lokale Hosts-Datei den Namen bereits auflösen kannDie Hosts-Datei ist sowohl auf einem Linux-, wie auch auf einem Mac- und Windows-System verfügbar:+<​xterm>#​ <fc #​008000>​echo "It works on <​nowiki>​www.sample1.com</​nowiki>"​ <​nowiki>>></​nowiki>​ /​home/<​nowiki>​www.sample1.com</​nowiki>/​index.html</​fc>​ 
 +# <fc #​008000>​echo "It works on <​nowiki>​www.sample2.com</​nowiki>"​ <​nowiki>>></​nowiki>​ /​home/<​nowiki>​www.sample2.com</​nowiki>/​index.html</​fc></​xterm>​
  
-<xterm>pronto-macpro:​~ pronto$ ​<fc #008000>sudo -s</fc> +Wie der Name >><fc #008000>Namens-basiert</fc><< schon ausdrückt, wird hier durch die Angabe des FQDN des Hosts entschieden welcher Host aufgerufen wirdAlso entweder >><fc #​008000><​nowiki>​www.sample1.com</​nowiki></​fc>​<< oder >><fc #​008000><​nowiki>​www.sample2.com</​nowiki></​fc>​<<. Dieses Argument übergibt der Web-Broser und wird vom Web-Server ausgewertetDa unsere Test-Domänen aber keinen gültigen A-Record besitzen müssen wir zum Testen der Konfiguration die DNS Einträge in der lokalen >><fc #008000>/etc/hosts</​fc><​< Datei auf dem Rechner anlegen, von welchem aus am Ende die Konfiguration getestet werden soll; hier zB mein Heim-PC.
-Password: +
-bash-3.2# <fc #​008000><​nowiki>​echo "​192.168.172.132 ​www.sample-1.com" >> /etc/hosts</​nowiki></​fc>​ +
-bash-3.2# ​<fc #​008000><​nowiki>​echo "​192.168.172.132 ​www.sample-2.com" >> /etc/hosts</​nowiki></​fc>​ +
-bash-3.2# <fc #008000>exit</fc> +
-</xterm>+
  
-<code xorg_conf|/​etc/​hosts>​ +<code xorg_conf|/​etc/​hosts>##​
-##+
 # Host Database # Host Database
 # #
Zeile 148: Zeile 122:
 # when the system is booting. ​ Do not change this entry. # when the system is booting. ​ Do not change this entry.
 ## ##
-127.0.0.1 localhost +127.0.0.1 ​      ​localhost 
-255.255.255.255 broadcasthost +192.168.167.162 www.sample1.com 
-::1             ​localhost  +192.168.167.162 www.sample2.com 
-fe80::​1%lo0 localhost+255.255.255.255 broadcasthost 
 +::1             ​localhost 
 +fe80::​1%lo0 ​    ​localhost</​code>​
  
-192.168.172.132 www.sample-1.com +Fortan hören die beiden virtuellen Hosts auf Ohre Namen und werten das dazugehörige DocumentRoot aus: 
-192.168.172.132 www.sample-2.com + 
-</​code>​+|{{::​vhostcfg_2.png?​400|}}|{{::​vhostcfg_3.png?400|}}|
  
-Beim Aufruf der eingestellten URLs sollten Sie nun auf den jeweiligen vhost gelangen:+It's just that simple ;-)
  
-{{:​tux:​sample1.png?​400|}} {{:​tux:​sample2.png?​400|}}\\ ​+''//<​fc #​800000>​prontosystems - we are connecting more than computers</​fc>//''​
  
-**Wuppt! Enjoy and have fun** 
-\\  
  --- //pronto 2010/04/25 18:08//  --- //pronto 2010/04/25 18:08//
-{{keywords>​apache ​vhost debian sites-available sites-enabled host direktive virtuell host apache2}}+ --- //pronto 2014/06/01 17:12// ''//​Update Article//''​ 
 +{{keywords>​apache2 ​vhost debian sites-available sites-enabled host direktive virtuell host apache2.conf httpd.conf}}
tux/apache_vhost.1302992465.txt.gz (21879 views) · Zuletzt geändert: 2011/04/17 00:21 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0