mod_vhost_problem

mike

Well-Known Member
Hi!
Ich benutze den mod_vhost_alias:
UseCanonicalName Off

LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog /var/log/httpd-error.log vcommon

VirtualDocumentRoot /usr/local/www/data-dist/%-3/
VirtualScriptAlias /usr/local/www/data-dist/%-3/cgi-bin/

Das funktioniert soweit. Wenn ich sub.domain.org aufrufe wird die Seite im Ordner /usr/local/www/data-dist/sub angezeigt.
Nun hab ich 2 Probleme:
  1. Der VirtualScriptAlias wird ignoriert und es wird /usr/local/cgi-bin aufgerufen. Warum das? :-(
  2. Wenn ich domain.org schreibe bekomme ich einen Fehler - ich habe eine index Seite in /usr/local/www/data-dist liegen welche aber nicht aufgerufen wird :(

Danke im Voraus!!
mfg Michael
 
Morgen Mike,

grundsätzlich gibt es erstmal zwei Dinge zu unterscheiden, IP-basierte als auch namensbasierte virtuelle Hosts.

IP-basierte virtuelle Hosts verwenden die IP-Adresse der Verbindung, um den korrekten virtuellen Host zur Bedienung einer Anfrage zu ermitteln. Folglich benötigen IP-basierte Vhosts eine IP-Adresse für jeden virtuellen Host.

Bei der Verwendung von namensbasierten virtuellen Hosts verläßt sich der Server darauf, dass der Client den Hostnamen als Bestandteil der HTTP-Header angibt. Durch Anwendung dieser Technik können sich mehrere verschiedene Hosts die gleiche IP-Adresse teilen.

Für das was Du machen möchtest schau einfach mal unter http://httpd.apache.org/docs-2.0/vhosts/name-based.html nach, dort ist das relativ klar beschrieben eigentlich. Vermutlich möchtest Du auf eine IP-Adresse ja beide vHosts binden.

Gruß Bummibaer

PS: falls Du es nicht zum "Rennen" bekommst poste uns mal Deine Konfiguration.
 
Hi!
Vielen Dank für eure Antworten. Ich werde mir das heute mal durschaun. Auf den ersten Blick schaut das aber nach mod_vhost aus :-( Der funktioniert bei mir auch - aber ich muss für jeden Subdomain einen vhost Eintrag erstellen.
@Bummibaer: Meine Conf hab ich ganz oben gepostet

mfg
 
das könnte z.B. so aussehen:
Code:
NameVirtualHost 111.22.33.44

<VirtualHost 111.22.33.44>
ServerName www.customer-1.com
ServerAdmin you@customer-1.com
DocumentRoot /www/hosts/www.customer-1.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-1.com/cgi-bin
ErrorLog /var/log/customer-1/httpd-error.log
TransferLog /var/log/customer-1/httpd-access.log
</VirtualHost>

<VirtualHost 111.22.33.44>
ServerName www.customer-2.com
ServerAdmin you@customer-2.com
DocumentRoot /www/hosts/www.customer-2.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-2.com/cgi-bin
ErrorLog /var/log/customer-2/httpd-error.log
TransferLog /var/log/customer-2/httpd-access.log
</VirtualHost>

<VirtualHost 111.22.33.44>
ServerName www.customer-N.com
ServerAdmin you@customer-N.com
DocumentRoot /www/hosts/www.customer-N.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-N.com/cgi-bin
ErrorLog /var/log/customer-N/httpd-error.log
TransferLog /var/log/customer-N/httpd-access.log
</VirtualHost>

Sprich beim ScriptAlias zuerst /scriptaliasname/ /Pfad/zum/Ziel
Wenn die IP Adresse immer gleich ist muß ServerName noch auf die Domain gesetzt werden, damit der Apache unterscheiden kann welcher Virtual Host die Anfragen handlen soll.

Der Script Alias wird also nicht verwendet, da er falsch konfiguriert ist. Ein Pfad sollte auch keine % enthalten :)

Gruß Bummibaer
 
Zuletzt bearbeitet:
Hi!
Danke für deine Antwort!
Leider geht das bei vhost alias nicht:
Syntax error on line 1114 of /usr/local/etc/apache2/httpd.conf:
VirtualScriptAlias takes one argument, how to create a ScriptAlias based on the host
Ich schätze mal, dass das ein Bug ist. Denn in der apache doku stehts genau gleich und er nimmt immer den /usr/local/www/cgi-bin Ordner. Vielleicht sollte ich mal die Entwickler anfunken und fragen, obs ein Programm- oder Bedienungsfehler ist.

mfg
 
Kann deine Fehlermeldung vielleicht daran liegen, daß das Beispiel von Bummibaer ohne mod_vhost_alias auskommt.
Schalte doch mal mod_vhost_alias aus und benutze Bummibaers Beispiel.
 
Ja ich weiß dass ich mod_vhost_alias habe :-) der normale mod_vhost hat ja den Nachteil, dass man apache jedes mal restarten muss wenn ein Eintrag hinzufügt - dieses Problem hab ich beim alias nicht.
 
Zurück
Oben