apache2: alle subdomains liefern die gleiche seite

madmax

New Member
Guten Tag,

im letzten thread hatte ich den massiven Speicherverbrauch von lighttpd
komisch gefunden. Da ich das Problem nicht lösen konnte und es auch keine Antwork gab habe ich jetzt Apache2 mit prefork installiert. Um den Speicher zu schonen mit folgender Konfiguration:
Code:
<IfModule mpm_prefork_module>
    StartServers          2
    MinSpareServers       2
    MaxSpareServers      5
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
Das letzte mal als ich was mit Apache zu tun hatte war 1.3 und da gab es das ganze mods-available, sites-enabled usw. noch nicht.
Ich wollte nun meine Domain mit Subdomains von Apache ausliefern lassen.
Meine Verzeichnissstruktur ist wie folgt:
Code:
/srv/www/domain.tld/htdocs
/srv/www/domain.tld/log
/srv/www/sub1.domain.tld/htdocs
/srv/www/sub1.domain.tld/log
/srv/www/sub2.domain.tld/htdocs
/srv/www/sub2.domain.tld/log
[...]
nun habe ich in /etc/apache2/sites-available folgende dateien erstellt:
Code:
domain.tld
sub1.domain.tld
sub2.domain.tld
exemplarisch der inhalt von sub1.domain.tld (für die anderen wurde nur das verzeichniss und ServerName geändert)
Code:
<VirtualHost *>
        ServerAdmin webmaster@domain.tld
        ServerName  sub1.domain.tld
        #ServerAlias domain.tld

        # Indexes + Directory Root.
        DirectoryIndex index.php
        DocumentRoot /srv/www/sub1.domain.tld/htdocs/

        # Logfiles
        ErrorLog  /srv/www/sub1.domain.tld/log/error.log
        CustomLog /srv/www/sub1.domain.tld/log/access.log combined
</VirtualHost>
danach habe ich mit
Code:
a2ensite sub1.domain.tld
/etc/init.d/apache2 reload
die Seite versucht zu veröffentlichen.

Das Problem ist, dass egal ob ich sub1.domain.tld oder sub2.domain.tld usw. aufrufe immer die gleiche Seite aufgerufen wird.
Wenn ich einen 404 produziere auf verschiedenen Subdomains dann ist die subdomain im footer (Apache2 ... at sub1.domain.tld) immer die die ich auch im Browser aufgerufen habe.

Was ist an meiner konfiguration falsch?


Grüße
madmax
 
Wie sieht denn der Inhalt von "sites-enabled" aus?
Im Prinzip sieht das nämlich gut aus.

Was ist denn die Ausgabe von:
Code:
apache2 -S
 
MOD: Bitte keine Fullquotes! Danke

Hallo,

sites-enablet
Code:
root@srv:/etc/apache2/sites-enabled# ls -al
total 8
drwxr-xr-x 2 root root 4096 Dec 23 12:22 .
drwxr-xr-x 7 root root 4096 Dec 23 12:35 ..
lrwxrwxrwx 1 root root   41 Dec 23 12:22 webmail.meinedomain.tld -> ../sites-available/webmail.meinedomain.tld

apache2 -S
Code:
root@srv:/home/max# apache2 -S
apache2: bad user name ${APACHE_RUN_USER}

und was mir noch aufgefallen ist:
Code:
root@srv:/home/max# /etc/init.d/apache2 start
Starting web server: apache2[Tue Dec 23 16:11:18 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
.
ich habe aber in keiner meiner Konfigurationsdateien :80 stehen.

Das Verhalten des Servers ist immer noch so, dass z.B tmp.meinedomain.tld den Inhalt von webmail.meinedomain.tld liefert.

Grüße
 
Last edited by a moderator:
Hallo,

Die letzte Fehlermeldung mit dem [warn] kannst du getrost erstmal ignorieren, wenn sie dich stört kannst du hier im Forum mal schauen dazu gibts mehr als einmal eine Lösung, aber wie gesagt: Ist nicht so wichtig!

Der Fehler liegt hier:
/etc/apache2/sites-enabled
Dort ist auch nur eine Domain eingerichtet undzwar die Webmail. Du solltest noch die anderen Symlinks erstellen zu /sites-availible dann klappts auch mit der Vhost :)
 
Was ist denn die Ausgabe von:
Code:
apache2ctl -S
Hatte jdrick wohl einen Fipptehler drin...

Das listet alle VHosts mit zugehöriger Config.
Alle Hosts, die da nicht aufgelistet sind, sind auch nicht eingebunden.
 
Hallo,

ich glaube hier liegt der Fehler, aber keine Ahnung wie das Zustande kam bzw. wie ich das Lösen könnte...

Code:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:*                    webmail.meinedomain.tld (/etc/apache2/sites-enabled/webmail.maxstricker.it:1)
*:*                    tmp.meinedomain.tld (/etc/apache2/sites-enabled/webmail.meinedomain.tld:15)
Syntax OK
 
Was steht denn hier drin:
/etc/apache2/sites-enabled/webmail.meinedomain.tld

Wie gesagt: Du musst noch Symlinks zu den anderen Datieen in /sites-availible machen, dann funktionierts auch.
 
habe nun beide aktiviert:
Code:
lrwxrwxrwx 1 root root   37 Dec 23 16:50 tmp.meinedomain.tld -> ../sites-available/tmp.meinedomain.tld
lrwxrwxrwx 1 root root   41 Dec 23 16:49 webmail.meinedomain.tld -> ../sites-available/webmail.meinedomain.tld

nun ist das Verhalten genau andersrum, d.h ich bekomme bei webmail den Inhalt von tmp.
die vHost Konfiguration
Code:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:*                    tmp.meinedomain.tld (/etc/apache2/sites-enabled/tmp.meinedomain.tld:1)
*:*                    webmail.meinedomain.tld (/etc/apache2/sites-enabled/webmail.meinedomain.tld:1)
Syntax OK

der Inhalt von webmail.meinedomain.tld
Code:
<VirtualHost *>
        ServerAdmin webmaster@meinedomain.tld
        ServerName  webmail.meinedomain.tld
        #ServerAlias example.net

        # Indexes + Directory Root.
        DirectoryIndex index.php
        DocumentRoot /srv/www/webmail.meinedomain.tld/htdocs/

        # Logfiles
        ErrorLog  /srv/www/webmail.meinedomain.tld/log/error.log
        CustomLog /srv/www/webmail.meinedomain.tld/log/access.log combined
</VirtualHost>

und von tmp
Code:
<VirtualHost *>
        ServerAdmin webmaster@meinedomain.tld
        ServerName  tmp.meinedomain.tld
        #ServerAlias example.net

        # Indexes + Directory Root.
        DirectoryIndex index.html
        DocumentRoot /srv/www/tmp.meinedomain.tld/htdocs/

        # Logfiles
        ErrorLog  /srv/www/tmp.meinedomain.tld/log/error.log
        CustomLog /srv/www/tmp.meinedomain.tld/log/access.log combined
</VirtualHost>

Eigentlich sollte das ja so funktionieren, zumindest steht es so in allen HowTos die ich jetzt durchgelesen habe.
 
Code:
root@srv:/home/max# /etc/init.d/apache2 start
Starting web server: apache2[Tue Dec 23 16:11:18 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
Das wird das Problem sein. Entweder ergänzt du die VirtualHost-Direktiven um das :80 oder du nimmst es der NameVirtualHost-Direktive weg.
Beide _müssen_ übereinstimmen. Also entweder überall den Port angeben oder überall weglassen.
 
Back
Top