Der Martin: absolute Pfade --> ... dann also doch mit Apache2

Beitrag lesen

Hallo,

Das doofe ist nur, dass es die von dir beschriebenen Verzeichnisse/Dateien bei mir unter Debian nicht gibt.

ach was, machen die wieder etwas eigenes??

Deutsche Version

Das ist *exakt* dieselbe URL, die ich in meinem letzten Beitrag schon verlinkt hatte. Aber ganz exakt. ;-)

Nach Neustart des Indianers erscheint die Fehlermeldung:
[Wed Feb 02 16:43:15 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
... was nicht weiter verwundert, weil DNS für die vhosts (noch) nicht konfiguriert ist.

Das eine hat mit dem anderen nichts zu tun. Aber ich werde ehrlich gesagt aus dieser Meldung auch nicht schlau. Google führt mich aber zum Apache-Wiki - hast du die Direktive NameVirtualHost mehrmals in der Config?

Ich wollte das durch einen Eintrag in /etc/hosts erledigen, nur weiß ich nicht genau, was ich dort eingeben müsste.

In der hosts-Datei stehen Zeile für Zeile je eine IP-Adresse und dahinter, durch Leerzeichen oder Tabs abgetrennt ein oder mehrere Domainnamen, für die diese IP gelten soll. Trägst du also zum Beispiel ein:

127.0.0.1  holiday.local holiday.de

... dann wird dein Rechner künftig die Domainnamen holiday.local und holiday.de "bei sich selbst" suchen. Was natürlich zur Folge hat, dass du holiday.de im öffentlichen Internet nicht mehr erreichen kannst.
Konkret also: Lege einen Domainnamen fest, unter dem du die lokale Entwicklungsversion deines Projekts ansprechen willst. Trage diesen Domainnamen sowohl als ServerName im zugehörigen Apache-VHost ein, als auch in der hosts-Datei zur IP 127.0.0.1, wie oben demonstriert. Das sollte alles sein.
Der Apache braucht einen Neustart, damit er die geänderte Konfiguration zur Kenntnis nimmt; die Änderungen in der hosts-Datei werden sofort wirksam.

<VirtualHost *:80>
ServerName <domain.tld>
ServerAlias <domain.tld> *.<domain.tld>
DocumentRoot /home/user/proj/name/hp/<domain.tld>
</VirtualHost>

Den ServerName unter ServerAlias nochmal zu wiederholen, ist unnötig. Ansonsten sieht das plausibel aus, aber es fehlt noch ein Directory-Container. Bei mir sehen die Virtual Hosts ungefähr so aus:

<VirtualHost *:80>
ServerName example.local
ServerAlias www.example.local
ServerAdmin me@localhost

DocumentRoot "/server/web/example.com"

<Directory "/server/web/example.com">
   Options Indexes FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>

<IfModule mpm_peruser_module>
ServerEnvironment apache apache
</IfModule>
</VirtualHost>

Die letzten drei Zeilen sind Teil der Defaultkonfiguration; ich habe noch nicht darüber nachgedacht, ob sie sinnvoll oder gar nötig sind.

Nur wenn ich in der /etc/hosts
127.0.0.1    <domain.tld>
eingeben würde, dann könnte ich (wenn ich das dann mal richtig mache) so die lokale Version erreichen, dafür wäre dann natürlich die reale Domain auf dem entfernten Webserver nicht mehr erreichbar.

Richtig. Eine geht nur. ;-)

Muss ich also lokal einen anderen Namen wählen? Was wäre denn sinnvoll?

Sinnvoll und nötig. Bewährt hat sich zum Beispiel die Konvention, für die lokale Testversion die TLD des öffentlichen Servers durch ".local" zu ersetzen.

So long,
 Martin

--
Ordnung ist, wenn man etwas findet, was man gar nicht sucht.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(