Christoph Schnauß: Apache: Mehrere Projekte per Browser aufrufen

Beitrag lesen

hi,

Ich habe in der httpd.conf noch so was:
Alias /projekt1/ "F:/projekt1"

ein Alias ist nicht zwingend nötig, wenn der virtualhost korrekt konfiguriert ist.

<Directory "F:/projekt1">
    Options Indexes FollowSymLinks MultiViews ExecCGI
    AddOutputFilter Includes html
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Ist da was faul ?|
Eigentlich nicht

Da muß ich lebhaft widersprechen: es fehlt etwas ganz Entscheidendes. Zwei Einträge sind in einem vrtualhost-Container nach allem, was ich bisher weiß, zwingend nötig. Nämlich der Servername und das DocumentRoot. Bei mir sieht ein vergleichbarer Container (vergleiche http://home.arcor.de/schnauss/temp/httpd.conf so aus:

<VirtualHost 192.168.0.1>
   ServerName www.christoph-schnauss.de
   ScriptAlias /cgi-bin "I:/Janssen/cgi-bin"
   DocumentRoot "I:/Janssen"
   Options Indexes FollowSymLinks MultiViews IncludesNoExec ExecCGI
   AddOutputFilter Includes html
</VirtualHost>

Selbstverständlich kann und darf man nach Belieben noch weitere Dinge hineinschreiben, aber ohne ServerName und ohne DocumentRoot gehts halt nicht.

Übrigens, Thomas: daß das bei dir mit IP-Adressen wie 127.0.0.x funktioniert, kann ich zwar nach etwas Nachdenken nachvollziehen, das ist aber in höchstem Maß (für mich) ungewöhnlich. Ich habe, wie mehrfach im Archiv nachzulesen, gerne dagegen votiert, die loopback-Adresse für virtualhosts zu verwenden und bisher hat mich noch keines der "Gegenargumente" überzeugt. 127.0.0.2 ist aber schon nicht mehr loopback, sondern _eigentlich_ gar nicht vorhanden.
Was ich in allen den anderen Diskussionen zu 127.0.0.x vielleicht noch nicht deutlich gemacht habe, ist: wenn man keine virtuelle Hosts braucht, kann man die loopback-Adresse natürlich als Serveradesse stehenlassen. Aber sobald es virtuelle hosts gibt (egal, wieviele), ist es nach meinen bisherigen Kenntnissen sicherer, auf irgendeinen privaten Adreßraum auszuweichen. Administriert sich auch leichter.

Im Section 1 bei Global Environment habe ich bei ServerName nichts stehehn bzw. die Zeile habe ich auskommentiert.

Ich darf mal zitieren:

"ServerName" erlaubt Ihnen, einen Hostnamen festzulegen, der an Clients

zurückgegeben wird -  falls er sich von dem unterscheiden soll, den das

Programm ausgeben würde (zum Beispiel können Sie "www" statt des realen

Hostnamens festlegen).

ACHTUNG: Sie können nicht einfach irgendeinen Hostnamen erfinden und erwarten,

daß er funktioniert. Ein Name, den Sie hier angeben, muß ein gültiger DNS-Name

sein.

Der DocumentRoot für den Server ist ident mit meinem ersten VitualHost-Eintrag. (Liegt aber absolute nichts drinn)

Das ist wurscht, sofern du virtuelle hosts hast. Aber ich darf nochmals zitieren:

"DocumentRoot": das Verzeichnis, von dem aus die zur Publikation

vorgesehenen Dokumente erreicht werden können. Im Standardfall werden

sämtliche Server-Anfragen von diesem Verzeichnis aus beantwortet, und

symbolische links sowie Aliase können auf andere Verzeichnisse verweisen.

Meine Alias-Verzeichnisse liegen alle wo anderes als der DocumentRoot für den Server, also damit hat nichts zu tun, dass sie Funktionieren ;-) )

Nein, haben sie nicht, solange du für deine virtuellen Hosts dann eigene DocumentRoot-Verzeichnisse definiert hast. Im übrigen sind Aliasnamen für virtuelle Hosts nicht zuständig.

Die Einträge im host. finde ich unnötig.

Ich finde die gar nicht unnötig. Man muß aber verstehen, daß beim Aufruf eines solchen Namens im Browser dann nicht zwingend der "virtuelle host" aufgerufen wird, sondern zuerst die IP, die in der HOSTS-Datei dafür vorgesehen ist. Stimmt die mit irgendeinem virtuellen Host überein, ist es Zufall, daß der Aufruf klappt. Die HOSTS-Datei ist (auch historisch) die Vorstufe für DNS, das sollte man nicht vergessen.

Grüße aus Berlin

Christoph S.