PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache mit Subdomains



audience
12.07.06, 21:51
Hallo,

ich will meinen Apache Server so konfigurieren, dass er
1. Zugriffe auf domain.eu auf /var/www
2. und Zugriffe auf sub.domain.eu auf /var/www/sub
weiterleitet.
Soweit ich das in der Apachedoku richtig verstanden habe, muss ich namensbasierten vhosts in meiner httpd.conf konfiguerieren.

meine /etc/apache2/httpd.conf


# This is here for backwards compatability reasons and to support
# installing 3rd party modules directly via apxs2, rather than
# through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so

ServerName domain.eu

#Listen 80
NameVirtualHost domain.eu

<VirtualHost domain.eu:*>
ServerName domain.eu
DocumentRoot /var/www/
</VirtualHost>

<VirtualHost *>
ServerName kalender.domain.eu
DocumentRoot /var/www/webDAV-Kalender/
</VirtualHost>


Die Hauptseite wird richtig geladen. Aber wenn ich kalender.domain.eu eingebe, kann die Seite nicht geladen werden.
Was habe ich übersehen?

marce
12.07.06, 22:04
liess Dir mal

http://httpd.apache.org/docs/2.0/vhosts/name-based.html
und
http://httpd.apache.org/docs/2.0/mod/core.html#namevirtualhost

durch - Du solltest also keine Domain in der NameVirtualHost angeben...

audience
12.07.06, 22:21
Das funktioniert aber auch nicht.

Meine httpd



# This is here for backwards compatability reasons and to support
# installing 3rd party modules directly via apxs2, rather than
# through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so

ServerName domain.eu

#Listen 80
NameVirtualHost IP-Adresse:80

<VirtualHost IP-Adresse:80>
ServerName domain.eu
DocumentRoot /var/www/
</VirtualHost>

<VirtualHost IP-Adresse:80>
ServerName kalender.domain.eu
DocumentRoot /var/www/webDAV-Kalender/
</VirtualHost>



Damit habe ich das gleiche Ergebnis, wie mit meiner alten Config.
Wenn ich wie in der Doku geschrieben einfach bei NameVirtualHost ein * setze, dann bekomme ich folgende Fehlermeldung:


[error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
.
Oder hab ich in der Doku schon was falsch verstanden oder komplett übersehen?

marce
13.07.06, 00:25
hast Du es schon mal exakt so
NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost> probiert?

michael.sprick
13.07.06, 10:32
Aber wenn ich kalender.domain.eu eingebe, kann die Seite nicht geladen werden.

Wird garkeine Seite angzeigt oder nur die falsche?
Wenn garnix passiert, poste doch mal die Ausgabe von


nslookup domain.eu
und
nslookup kalender.domain.eu


Ansonsten wären die Logs ggf. interessant...

audience
13.07.06, 19:22
hast Du es schon mal exakt so
NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost> probiert?

Exakt so kann ich es ja nicht probieren, da ich ja keine zweite domain habe, sondern nur eine subdomain über meinen apache laufen lassen will. Aber ich habe es mit "*:80" probiert und erhalte die Fehlermeldung:



[error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results




nslookup domain.eu
und
nslookup kalender.domain.eu




Ergibt vom lokalen Netz aus:
nslookup domain.eu
Server: 192.168.178.1
Address: 192.168.178.1#53
Non-authoritative answer:
Name: domain.eu
Address: richtige externe IP

nslookup kalender.domain.eu
Server: 192.168.178.1
Address: 192.168.178.1#53

** server can't find kalender.domain.eu: NXDOMAIN


Welche Logs sind genau interessant?

marce
13.07.06, 19:29
** server can't find kalender.domain.eu: NXDOMAIN
na, das klingt doch mal recht logisch, oder?

... und Subdomain = Domain - das Bsp. aus der Apache-Doku würde also funktionieren, wenn da nicht das DNS-Problem wäre...

audience
13.07.06, 19:38
na, das klingt doch mal recht logisch, oder?

... und Subdomain = Domain - das Bsp. aus der Apache-Doku würde also funktionieren, wenn da nicht das DNS-Problem wäre...

DNS-Problem? Brauch ich nen eigenen DNS-Server um ne subdomain auf ein andres Root-Verzeichnis weiterzuleiten?

marce
13.07.06, 19:46
das nicht - aber irgendwo sollte die Domain ja registriert sein...

audience
13.07.06, 20:38
das nicht - aber irgendwo sollte die Domain ja registriert sein...

Das versteh ich nicht ganz. Was muss ich nun noch genau einstellen? Ich habe die Domain, wie auch DSL-Anschluss bei HostEurope. Der A-Record ist auf meine IP-Adresse gesetzt. Was fehlt noch?

marce
13.07.06, 20:42
_was_ hast Du genau?

DSL + Domain www.domain.de oder
DSL + Domain *.domain.de oder
DSL + Domain www.domain.de, sub.domain.de, ...?

audience
13.07.06, 20:47
Habe dieses Angebot hier: http://www.hosteurope.de/index.php?func=main&menu=40&prod=132
Z.Z. ist das so Konfiguriert, dass domain.eu und *.domain.eu auf meine IP zeigt (A-Record).

audience
13.07.06, 22:02
Problem hat sich erledigt. Ich musste doch einen DNS-Server haben. Jetzt geht alles. Danke an alle!

audience
13.07.06, 23:59
Problem hat sich doch noch nicht erledigt.
Durch den DNS-Server bekomme ich lediglich bei einigen subdomains die Hauptseite angezeigt. Allerdings nicht bei allen, die ich über die virtualhost definiert hab. Außerdem soll natürlich auch nicht immer die Hauptseite angezeigt werden, sondern jeweils eine andere.

marce
14.07.06, 12:18
[error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

... dann würde ich mal an der Fehlermeldung arbeiten.

Nur leider postest Du deine Konfiguration immer auf so verstümmelte Art, dass man irgendwie keine Chance hat, Dir effizient zu helfen.

audience
15.07.06, 01:20
Gut hier meine komplette /etc/apache2/httpd.conf



# This is here for backwards compatability reasons and to support
# installing 3rd party modules directly via apxs2, rather than
# through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so

ServerName domain.eu

NameVirtualHost *:80

<VirtualHost *:80>
ServerName domain.eu
DocumentRoot /var/www/
</VirtualHost>

<VirtualHost *:80>
ServerName kalender.domain.eu
DocumentRoot /var/www/webDAV-Kalender/
</VirtualHost>

<VirtualHost *:80>
ServerName mail.domain.eu
DocumentRoot /var/www/mail/
</VirtualHost>

<VirtualHost *:80>
ServerName torrent.domain.eu
DocumentRoot /var/www/torrent/
</VirtualHost>


Keine Ahnung warum, aber auf allen Subdomains können im Moment keine Seiten gefunden werden.
Außerdem frag ich mich, was der Ordner sites-available zu tun hat? Müssen da nicht in irgendeiner Form meine Subdomains rein? Davon steht allerdings nichts in der Doku.
Hier http://httpd.apache.org/docs/2.0/vhosts/examples.html hatte ich noch unter "Using the ServerPath directive" (ganz unten) eine Config gefunden, wo ich dachte die würde passen. Allerdings gibt es im aktuellen Apache2 keine RewriteEngine (mehr). Die genannte Fehlermeldung kommt übrigens nicht mehr.

tschloss
15.07.06, 05:40
Gut hier meine komplette /etc/apache2/httpd.conf



....Allerdings gibt es im aktuellen Apache2 keine RewriteEngine (mehr). Die genannte Fehlermeldung kommt übrigens nicht mehr.

Musst du vieleicht "mod_rewrite" hineinkonfigurieren!

Greetz
Thomas

ldi91
15.07.06, 11:49
Wenn das deine httpd.conf komplett ist fehlt da aber eininges. Unter anderem:


LoadModule vhost_alias_module modules/mod_vhost_alias.so
Serverroot /var/www
<VirtualHost *:80>

ServerAlias server.lusoft.dyndns.info
DocumentRoot /web/docviewer/server
ServerName server.lusoft.dyndns.info

</VirtualHost>

audience
15.07.06, 12:23
Danke. Jetzt hab ichs hinbekommen. Allerdings hab ich die ganze Konfiguration der vhosts in meiner /sites-available/default . Das ist das einzige was bei mir funktioniert.

LoadModule vhost_alias_module modules/mod_vhost_alias.so kann er übrigens nicht laden, da es die Dateien bei mir nicht geben soll?!

Das einzige Problem was ich jetzt noch habe ist, dass ich in vhosts keine php-seiten anzeigen lassen kann. Die Dateien werden mir zum Download angeboten. Im Hauptverzeichnis kann er sie allerdings anzeigen.

ldi91
15.07.06, 13:31
dann setz
AddType application/x-httpd-php .php .php3 .php4 in den Vhost ein

audience
15.07.06, 19:45
dann setz
AddType application/x-httpd-php .php .php3 .php4 in den Vhost ein
Habe damit noch genau das gleiche Problem.
Sorry, muss sagen, dass es im Hauptverzeichnis auch nicht geht. Habe die index.htm einfach in php umbenannt und es lief. Wenn ich allerdings domain.eu/torrent (torrent.domain.eu) aufrufe, wo eine "echte" index.php liegt, dann wird mir das als Download angezeigt.

audience
15.07.06, 21:18
Nun gehts wirklich. Musste noch den Browsercache leeren, dass der Firefox auch merkt, dass sich am Server was geändert hat.