Virtual Hosts für viele Webseiten auf einem Server

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

Virtual Hosts für viele Webseiten auf einem Server

Postby Big Mike » 31. July 2008 15:13

Hallo zusammen!

Beschreibung:
Wir haben auf einem SBS 2003 einen Apache-Server mit PHP öaufen. Im htdocs befinden sich mehrere Ordner für viele verschiedenen Webseiten. Diese sind über zwei wege erreichbar.
1. direkt per IP: http://xxx.xxx.xxx.xx/kunde/index.html
2. weiterleitung über provider mit URL: www.kunde.de

www.kunde.de verweist natürlich direkt auf xxx.xxx.xxx.xx/kunde/index.html, so dass wenn man z.B. bei einem Onlineshop in der config-Datei die IP-Adresse durch die URL ersetzte heilloses durcheinander bei den links entsteht.

Jetzt meine Frage: ist es irgendwie möglich im Apache einzustellen, dass die Ordner der einzelnen webseiten quasi wie einzelne eigene Webserver behandelt werden, ohne dass man irgendwo die ip-adresse benutzen muss?

also es gibt eine ip, die verweist auf den server und da gibt es ordner für jede einzelne site. wir haben keine IP für jede eigene site. nur eine einzige für den gesamten server.

also ziel ist es, dass im browser nachher nicht mehr die ip-adresse erscheint, sondern immer mit der url gearbeitet werden kann.

gruß, der micha
Big Mike
 
Posts: 6
Joined: 12. February 2008 20:19

Postby Xardas der Dunkle » 31. July 2008 15:43

Ich verstehe dein Problem nicht ganz, das was du da beschreibst ist doch genau das wofür ein vHost da ist.
Nämlich die Domain auf einem Ordner auf dem Server abzubilden.

http://httpd.apache.org/docs/2.2/vhosts/
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Postby Big Mike » 01. August 2008 10:11

Hallo!

Ja, wir haben es jetzt so hinbekommen, dass wenn wir bei unserem Provider 1&1 die Weiterleitung einer URL direkt auf die IP des Servers einstellen, dass wir durch den Virtual host in das korrekte verzeichnis geleitet werden.

Das ursprüngliche Problem ist, dass immer die IP-Adresse des Servers angezeigt wird.

Also statt www.domain.de steht in der Adresszeile dann immer 123.123.23.23/domain/shop/index.php.
Und diese Anzeige der IP wollen wir wegbekommen. Und virtual hosts benötigen wir dann deshalb - denke ich -, weil wir viele verschiedene websites auf dem einen server laufen haben.
Kann man mit mod_rewrite eventuell die IP-Adresse maskieren, entfernen umwandel o.ä. Kenn mich damit allerdings nicht aus.
Big Mike
 
Posts: 6
Joined: 12. February 2008 20:19

Postby Nobbie » 01. August 2008 12:41

Das geht nicht mit vhosts, die sind nicht dazu da, das ist ein Mißverständnis.

Man könnte es mit sog. RemoteProxies versuchen, aber die sollten richtigerweise schon auf dem 1und1 Rechner aktiv sein (ich bezweifle, dass ihr das dürft).

ABER: insgesamt ist die Architektur verkorkst. Die einzig richtige Lösung wäre, nicht bei 1&1 die Domain www.kunde.de mit einer Weiterleitung auf Euren Server einzurichten, sondern selbstverständlich die Domain www.kunde.de so zu registrieren, dass direkt Euer Server damit angesprochen wird (also ein anderer DNS Eintrag). Und dann geht es wieder mit vhosts (wenn ihr mehrerer solcher Domains habt).
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Postby Big Mike » 04. August 2008 08:29

Hallo!

Ja, wir haben bei 1&1 für diese Domains statt Weiterleitung den A-Record auf die IP unseres Servers angepasst und dann mal mit 2 Sites getestet.
Aber irgenetwas stimmte dort nicht. Habe die httpd.conf um folgende Zeilen ergänzt:
Code: Select all
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "E:/Programme/xampp/htdocs/kunde1/shop"
ServerName kunde1.de

<Directory "E:/Programme/xampp/htdocs/kunde1/shop">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "E:/Programme/xampp/htdocs/kunde2"
ServerName kunde2.de

<Directory "E:/Programme/xampp/htdocs/kunde2">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>


Zum einen war es anschließend so, dass wenn man kunde1.de eingegeben hat, auf die richtige seite geführt wurde. Nach der Änderung der shop-config klappte dann zwar kein Link mehr sondern man blieb auf der Startseite und zum anderen wurde man bei eingabe von kunde2.de auch auf die seite von kunde1 geleitet. Habe ich die Einträge in der httpd getauscht, war es genau umgekehrt.. so wie ich das sehe, ignoriert apache alle außer den 1. Eintrag.
Bitte sagt mir mal bescheid, ob die Einträge oben eigentlich so korrekt sein müssten, denn wenn ja, müssen wir bei uns an anderer Stelle mal nach dem Fehler suchen.
Big Mike
 
Posts: 6
Joined: 12. February 2008 20:19

Postby Nobbie » 04. August 2008 14:02

>ServerName kunde1.de

Wieso nur die Kurzform?

Richtig wäre:

Code: Select all
ServerName www.kunde1.de


Und falls auch kunde1.de funktionieren soll, definiert man noch einen Alias dazu:

Code: Select all
ServerAlias kunde1.de


Es steht übrigens nicht(!) die Todesstrafe darauf, mal selbst in die Doku zu schauen (die genau zu diesem Zweck geschrieben wurde):

http://httpd.apache.org/docs/2.0/de/vhosts/
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Postby glitzi85 » 04. August 2008 19:30

Nobbie wrote:>ServerName kunde1.de
Wieso nur die Kurzform?

Weil das schliesslich die Domain ist, oder? Ich hab auf meinem Server auch die Domain als ServerName und www als Alias definiert. Im DNS ist schliesslich auch die Domain der A-Record und www ein CNAME darauf. Warum also beim Apachen umdrehen?

mfg glitzi
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 28 guests