Beim Versuch, mehrere virtuelle Hosts in Apache zu definieren, habe ich ein seltsames Problem. Dies ist mein Code für die Datei httpd.conf:
<VirtualHost *:8888>
ServerName site1.local
DocumentRoot /Applications/MAMP/htdocs/site1/public
<Directory /Applications/MAMP/htdocs/site1/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:8888>
ServerName site2.local
DocumentRoot /Applications/MAMP/htdocs/site2/public
<Directory /Applications/MAMP/htdocs/site2/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Wenn ich versuche, im Browser auf „site2.local“ zuzugreifen, werde ich auf „site1.local“ umgeleitet. Dies passiert mit allen VirtualHost-Definitionen, die ich unten in die Datei httpd.conf einfüge. Wenn ich auf „site2.local“ oder eine andere Site zugreifen möchte, muss ich deren VirtualHost-Definition ganz oben (als erste) einfügen. Daher gehe ich davon aus, dass Apache nur den ersten VirtualHost korrekt ausführt.
Außerdem gibt es noch ein weiteres Problem: Wenn ich versuche, auf eine Projektdatei in meinem htdocs-Ordner zuzugreifen, die nicht in VirtualHost definiert ist, erhalte ich die Meldung „Verboten. Sie haben keine Berechtigung, auf diesem Server auf /project/ zuzugreifen.“ Wenn ich auf eines dieser Projekte zugreifen möchte, muss ich alle VirtualHost-Definitionen in der Datei httpd.conf entfernen.
Was mache ich falsch?
In meinem Fall handelt es sich dabei (definiert in VirtualHost) um PHP-Projekte mit Zend Framework. Ich verwende MacOSX.
Danke
Antwort1
du fehlst
NameVirtualHost *:8888
Und
<VirtualHost _default_:8888>
DocumentRoot /www/default
</VirtualHost>
Weitere Informationen zum virtuellen Standardhost von Apache finden Sie in diesem Online-Dokument
http://httpd.apache.org/docs/2.2/vhosts/examples.html