Apache 2.4.12 und VirtualHosts

Alles, was den Apache betrifft, kann hier besprochen werden.

Apache 2.4.12 und VirtualHosts

Postby TiTux » 15. May 2015 11:08

Hallo,

habe hier Apache in der Version 2.4.12 laufen. Bei der Installation bin nach dem Apache Buch 2.4 vorgegangen. Zuerst eine Minimalkonfiguration
angelegt, die so aussah und auch funktionierte:

Code: Select all
 ###  Globale Umgebung  ###
ServerRoot "/etc/httpd"
Listen 80
CoreDumpDirectory /opt/apache_dump

LoadModule..
LoadModule..

<Directory />
  Options None
  AllowOverride none
  Require all denied
</Directory>

###  Hauptserver Konfiguration  ###
ServerName www.test.de:80
UseCanonicalName on
ServerTokens OS
DocumentRoot /var/www/html/test

<Directory "/var/www/html/test">
    DirectoryIndex index.html
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
</Directory>


Dann ging es um die VirtualHosts und die Konfiguration sah so aus:

Code: Select all
 <VirtualHost *:80>
     ServerName marketing.test.de
     ServerAdmin admin@test.de
     DocumentRoot /var/www/html/test
     ErrorLog /var/log/httpd/mareting.error_log
     CustomLog /var/log/httpd/marketing.access_log common
 </VirtualHost>


Wenn ich nun den VirtualHost aufrufen wollte, bekam ich nur ein "You don't have permission to access / on this server."
Es stehen ja auch keine Berechtigungen wie Require all granted drin, dass hatte mich schon gewundert. Erst mit den zusätzlichen
Directory Container innerhalb des VirtualHost Containes ging es dann:

Code: Select all
<VirtualHost *:80>
  Servername www.rainer.de
  ServerAdmin post@invenient.de
  DocumentRoot /var/www/html/rainer
  ErrorLog /var/log/httpd/error_log
  CustomLog /var/log/httpd/access_log common
      <Directory /var/www/html/rainer>
         AllowOverride none
         Require all granted
         DirectoryIndex index.html
         Options Indexes FollowSymLinks MultiViews
      </Directory>
</VirtualHost>


Ist das so jetzt der richtige Weg? Ich verstehe halt nicht, weshalb das so nicht im Buch steht, auch auf der Apache-Webseite selber steht
es wie im Buch beschrieben: http://httpd.apache.org/docs/current/de/vhosts/name-based.html

Ich meine, DocumentRoot war ja angegeben, wofür dann nochmal der Dirctory Container?

Grüße
TiTux
TiTux
 
Posts: 2
Joined: 15. May 2015 10:26
Operating System: CentOS 7

Re: Apache 2.4.12 und VirtualHosts

Postby Nobbie » 15. May 2015 13:13

Das musst Du den Autor des Buches fragen.

Tatsache ist, wenn man auch nur einen einzigen VIrtualHost angibt, dann sind die "globalen" Angaben für andere Server ungültig und werden ignoriert. Du bist dann grundsätzlich im Kontext eines VIrtualHosts, wenn Du nur einen einzigen angibst, dann immer in diesem Kontext. Und wenn da keine Angaben zum DocumentRoot vergeben werden, dann zählen die Defaultwerte der jeweiligen Optionen, aber nicht die Werte aus dem globalen Server (der existiert quasi nicht mehr).

Bei so Beispielen wird eben oft vorausgesetzt, dass man andere grundsätzliche Kenntnisse schon besitzt. Insofern sind diese Beispiele oft nur rudimentär. Apache ist nicht leicht zu konfigurieren, das ist leider so.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: Apache 2.4.12 und VirtualHosts

Postby TiTux » 15. May 2015 14:48

Hi Nobbie,

Danke für die Info. Tja, dass wurde im Buch beschrieben, dass die globalen Einstellungen dann wegfallen und das immer VirtualHost bezogen funktioniert, aber es war doch etwas blöd
dargestellt, dass man dann die Directory Angaben dort auch unterbringen muss. Aber jetzt weiß ich's ja ;-)

Danke!
TiTux
 
Posts: 2
Joined: 15. May 2015 10:26
Operating System: CentOS 7

Re: Apache 2.4.12 und VirtualHosts

Postby glitzi85 » 17. May 2015 13:42

Bitte die Doku lesen, was Nobbie geschrieben hat ist leider nicht korrekt: http://httpd.apache.org/docs/2.4/vhosts/details.html

Die Minimal-Config von dir funktioniert bei mir ohne Probleme. Komischerweise sind die Pfade in deinem zweiten VirtualHost komplett anders als in der ersten Variante! Sicher dass du die Pfade richtig gesetzt hast? Wenn du in der Core-Config /var/www/html/test freigegeben hast, im vHost aber /var/www/html/rainer als DocumentRoot angibst, dann kann es natürlich nicht funktionieren.

Das hier funktioniert übrigens:

Code: Select all
ServerRoot "/xampp/apache"
Listen 80

<Directory />
  Options None
  AllowOverride none
  Require all denied
</Directory>

ServerName localhost
DocumentRoot /xampp/htdocs

<Directory "/xampp/htdocs">
    DirectoryIndex index.html
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
</Directory>

<VirtualHost *:80>

</VirtualHost>
 
<VirtualHost *:80>
 ServerName localtest
 DocumentRoot /test
 <Directory /test>
 DirectoryIndex index.html
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
 </Directory>
</VirtualHost>


Wen ich localhost aufrufe, bekomme ich "It Works!" angezeigt (index.html in htdocs), wenn ich localtest eingebe (das natürlich in der hosts-Datei eingetragen sein muss) dann bekomme ich ein Directory-Listing von C:\test angezeigt (ist ein Windows-System, macht ja aber nix).
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim


Return to Apache

Who is online

Users browsing this forum: No registered users and 3 guests