Apache2 vHost leitet auf Defaultseite um

Standardweiche

New Member
Hallo Leute,
ich habe mit Webmin auf dem Server einen neuen Virtual Server angelegt.

Die Direktiven scheinen auch in Ordnung zu sein. Sowohl in site-enabled, als auch in site-available wurde eine neue .conf angelegt mit ähnlichen Daten wie folgt:

<VirtualHost *:80>
DocumentRoot "/home/testuser"
ServerName testdomain.tld
<Directory "/home/testuser">
allow from all
Options +Indexes
</Directory>
</VirtualHost>

In httpd.conf ist nichts eingetragen. In /home/testuser habe ich eine modifizierte index.html angelegt. Rufe ich die Domain testdomain.tld auf, so findet er nichts und es erscheint in der URL testdomain.tld/defaultsite.
In den Apache-Logs sucht er dann vergeblich wie folgt: /home/testuser/defaultsite.

Rufe ich die Domain wie folgt auf: testdomain.tld/index.html, so sucht er dann in var/www/index.html und findet dort die Standard-Seite. Gebe ich testdomain.tld/abcdef.html, sucht er wiederum in var/www/abcded.html und findet nichts.


Das irritiert mich nun einwenig, wo der Fehler liegen könnte? Hätte jemand ein Tipp?
Nach dem ersten Aufrud von Webmin sind ja bereits zwei Server eingetragen.
  • Defaultserver mit Adress: Any, Server Name und Document Root: Automatic
  • Virtual Server mit Adress: Any, Server Name Automatic und Document Root: /var/www

Viele Grüße
Michi
 
Nachtrag:
Die Error-Log sieht wie folgt aus:

[Sat May 12 12:40:40 2012] [notice] SIGHUP received. Attempting to restart
[Sat May 12 12:40:40 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze9 with Suhosin-Patch configured -- resuming normal operations
[Sat May 12 12:40:50 2012] [notice] caught SIGTERM, shutting down
[Sat May 12 12:40:55 2012] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze9 with Suhosin-Patch configured -- resuming normal operations
[Sat May 12 12:43:23 2012] [error] [client 88.37.228.226] File does not exist: /home/testuser/defaultsite
 
Hey,

also er scheint ja zumindest schon einmal auf den Ordner zu zugreifen.

[Sat May 12 12:43:23 2012] [error] [client 88.37.228.226] File does not exist: /home/testuser/defaultsite
Ansonsten habe ich bisher die erfahrung gemacht, dass der Apache die VirtualHosts anhand der Dateinamen liest.
Daher nur als versuch, nenne den DefaultHost mal in 000-default um (wenn er nicht so heisst) und andere z.B. in 010-testuser

Grüße
 
Hi,
bei mir heißt der default nicht 000-default.
Ich habe proberweise mal die defualtsite deaktiviert mit a2dissite default, dann wurde es von site-enabled entfernt.

Wenn ich es in 010-testuser umbenenne, dann erhalte ich beim Neustart des Apache folgende Meldung:

Reloading web server config: apache2[Sat May 12 14:43:32 2012] [warn] NameVirtualHost *:80 has no VirtualHosts

1. NameVirtualHost taucht nirgends auf. Sollte dies in httpd.conf?
2. Muss man evtl. noch an /etc/hosts etwas machen?
3. Als ServerName habe ich testdomain.tld drinstehen. (In manchen Tutorials stand, dass man hier den DefaultServer eintragen muss -> Debian-60-squeeze-64-LAMP?)

Grüße
 
Mit 010-testuser funktioniert es nun. Warum das so ist, keine Ahnung. Danke.

1. Bzgl. NameVirtualHost. Muss dies eigentlich nirgends angegeben werden?

2. Worin unterscheidet sich eigentlich <VirtualHost *:80> und ServerName testdomain.tld?

Gehört oben eventuell nicht <VirtualHost testdomain.tld:80> hinein?
 
Ich habe nun dies so gelöst, dass in httpd.conf NameVirtualHost IP:Port drinsteht und in sites-available jeweils die Domains mit 010-domain1.tld, 020-domain2.tld.

Innerhalb von 010.domain1.tld steht in etwa folgendes:

VirtualHost IP:Port
ServerName domain1.tld
DocumentRoot /home/domain1.tld/public_html
<Directory /home/domain1.tld/public_html>
allow from all
Options +Indexes
</Directory>

PHP usw. funktioniert alles dort.


Gibt es ein Unterschied eigentlich zwischen DocumentRoot und Directory, wenn hier verschiedene Pfade angegeben sind?

Bsp.
DocumentRoot /home/domain1.tld/
<Directory /home/domain1.tld/public_html>

So dass in /home/domain1.tld ein Tomcat-Webserver installiert wird und über den Port 8080 erreichbar ist und Port 80 dann wiederum auf /domain.tld/public_html verweist? (Die Tomcat-Ordner sollten ja nicht im öffentlichen publich_html liegen und erreichbar sein)

Grüße
 
DocumentRoot - dieses Verzeichnis (im Dateisystem des Servers), in dem die Dateien liegen, die der Webserver ausliefert.
Directory Direktive: Für diese Verzeichnis (im Dateisystem des Servers) gelten die folgenden Einstellungen, in deinem Beispiel also
Code:
allow from all
Options +Indexes
Der Apache httpd und der Apache Tomcat sind übrigens zwei von einander unabhängige Server-Dienste, die auch normalerweise separate Verzeichnisse nutzen (mag Ausnahmen geben, aber so tief stecke in der Tomcat-Thematik nicht drin).
 
DocumentRoot - dieses Verzeichnis (im Dateisystem des Servers), in dem die Dateien liegen, die der Webserver ausliefert.
Directory Direktive: Für diese Verzeichnis (im Dateisystem des Servers) gelten die folgenden Einstellungen, in deinem Beispiel also

Ja,dann macht es sicherlich kein Sinn, verschiedene Verzeichnisse im DocumentRoot und Directory Direktive anzugeben.
Dann wäre es sinnvoll, dem User oder der Domain ein Home-Verzeichnis zuzuwiesen /home/domain.tld/ und für den vHost ein Unterverzeichnis /home/domain.tld/htdocs/, damit der User noch einen privaten (vom Web nicht erreichbaren) Bereich hat. Und dort könnte man dann den Tomcat installieren.

Der Apache httpd und der Apache Tomcat sind übrigens zwei von einander unabhängige Server-Dienste, die auch normalerweise separate Verzeichnisse nutzen (mag Ausnahmen geben, aber so tief stecke in der Tomcat-Thematik nicht drin).
Jep. Das Stimmt. Wäre aber nicht gut, wenn man den Tomcat in den öffentlichen Bereich /home/domain.tld/htdocs/ einfügt, bzw. wenn man den vHost auf /home/domain.tld legt und darin den Tomcat, ohne dass der User einen noch privaten Bereich zur Verfügung hat.
 
Back
Top