2014-02-21 5 views
5

Ich versuche, ein virtualHost für mamstack einzurichten (nicht MAMP). Dies ist, was ich bisher getan:VirtualHost Setup funktioniert immer nicht

In meiner httpd.conf habe ich überprüft

Listen 8080 

Das ist richtig (Ich bin an dem Port 8080, nicht mehr als 80 hören).
Dann habe ich unkommentiert: Include conf/extra/httpd-vhosts.conf in meiner httpd.conf Datei
In meiner hosts-Datei Ich habe folgendes hinzugefügt: 127.0.0.1 mext-pst.local.

In httpd-vhosts.conf Ich habe hinzugefügt:

NameVirtualHost *:8080 
<VirtualHost *:8080> 
    DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs" 
    ServerName    127.0.0.1 
    ServerAlias    localhost 
    SetEnv APPLICATION_ENV development 
    SetEnv APPLICATION_DOMAIN localhost 
</VirtualHost> 

<VirtualHost *:8080> 
    DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/mext-pst-dashboard/web" 
    ServerName mext-pst.local 
    ServerAlias mext-pst.local 
    SetEnv APPLICATION_ENV development 
    SetEnv APPLICATION_DOMAIN mext-pst.local 
    RewriteEngine on 
    RewriteCond %{SERVER_PORT} ^80$ 
    RewriteRule^http://%{HTTP_HOST}:8080%{REQUEST_URI} [P] 
</VirtualHost> 

Nun, wenn ich zu http://mext-pst.local/ gehen bekomme ich nur einen Fehler von meinem Browser, dass er nicht mit der Seite ... anschließen.
Wenn ich auf http://mext-pst.local:8080/ ich die folgende Fehlermeldung erhalten:

Proxy Error 

The proxy server received an invalid response from an upstream server. 
The proxy server could not handle the request GET /index.php. 

Reason: DNS lookup failure for: mext-pst.local:8080 

Als ich nach http://mext-pst.local:8080/index.php gehe es funktioniert ...

+0

Sie müssen den Port für Apache ändern oder mod_proxy und 'ProxyPass/http: // localhost: 8080/ProxyPassReverse/http: // localhost: 8080 /' verwenden. – mkjasinski

Antwort

2

ändern 8080-80 seine die Standardeinstellung. Wenn Sie jedoch möchten, dass Ihre Site auf 8080 ausgeführt wird, müssen Sie sie verwenden. Eine andere Lösung könnte sein, die URL neu zu schreiben, das heißt, wenn Ihr Server die URL bekommt, schreibt er sie mit der Portnummer (8080) um.

Zunächst Änderung 8080 zu Listen 80, wie Sie möchten, dass Ihre Anwendung nur mit http zugänglich sein soll. In Ihrer http-vhost.conf-Datei folgende Zeilen einfügen (natürlich nach dem Entfernen der vorherigen Änderungen). In der folgenden Konfiguration bedeutet "yourDefaultHttpFolder" den Standard-HTTP-Ordner. Sie haben es vielleicht geändert. Korrigieren Sie es entsprechend Ihrem System.

<VirtualHost *:80> 
    DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/yourDefaultHttpFolder" 
    ServerName    127.0.0.1 
    ServerAlias    localhost 
    SetEnv APPLICATION_ENV development 
    SetEnv APPLICATION_DOMAIN localhost 

    <Directory /Applications/mampstack-5.4.20-0/apache2/htdocs/yourDefaultHttpFolder> 
     RewriteEngine on 
     RewriteCond %{SERVER_PORT} ^80$ 
     RewriteRule^http://%{HTTP_HOST}:8080%{REQUEST_URI} [P] 
    </Directory> 

</VirtualHost> 

<VirtualHost *:8080> 
    DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/mext-pst-dashboard/web" 
    ServerName mext-pst.local 
    ServerAlias mext-pst.local 
    SetEnv APPLICATION_ENV development 
    SetEnv APPLICATION_DOMAIN mext-pst.local  
</VirtualHost> 

Diese Konfiguration auf meinem Server arbeitet, wann immer ich versuche, es die URL zu meinem 8080-Port umschreibt den Zugriff auf 80 verwendet, und ich sehe den Inhalt dieses Ordners, nicht die der Standard-Index-Seite.

+0

Ich habe 8080 in 80 geändert (siehe Thema Post), aber dann bekomme ich nur meine localhost index.php – nielsv

+0

Ok ist es das erwartete Ergebnis, wenn Ihre Konfiguration berücksichtigt wird. Bitte lesen Sie über Apache mod_rewrite Modul. Es ist ein Modul, um angeforderte URLs im laufenden Betrieb zu ändern. –

+0

Ich lese über das mod_rewrite-Modul, aber ich kann nicht herausfinden, wie man das macht, könnten Sie einen Code (Beispiel) posten, um mir dabei zu helfen? – nielsv

2

Sie müssen den Port zu *: 80 ändern und auch, wenn Sie einen anderen Namen verwenden wollen, dann nehmen Sie den Servernamen NameVirtualHost *: 80 in Ihrer httpd.conf auf.

+0

Was meinst du mit 'nimm NameVirtualHost *: 80 in deiner httpd.conf'? – nielsv

0

Da Sie nicht auf Port 80 hören, scheint ein Fehler, wenn Sie auf die URL ohne einen Port gehen, das richtige Ergebnis zu sein, oder?

Und wenn Sie Port 8080 gehen, bekommen Sie eine Proxy Error. Sind Sie sicher, dass keine andere Software auf Port 8080 läuft oder Ihr Browser keinen Proxy eingegeben hat? Apache würde keine Proxy Error geben. Ich vermute, dass dieser Fehler von woanders kommt.

Über die Konfiguration, ich bin nicht ganz sicher, was es ist, dass Sie versuchen zu erreichen, aber wenn Sie einige Dokumente serviert zu bekommen versuchen, wenn Sie localhost:8080 gehen und eine andere Reihe von Dokumenten gedient, wenn Sie mext-pst.local:8080 gehen als Sie sind fast da, NameVirtualHost *:8080 ist korrekt und muss da sein, entfernen Sie die Umleitungen, wie Sie sie nicht brauchen (es sei denn, meine Annahme ist falsch).