2014-09-02 3 views
5

Heute morgen begann ich HHVM als meinen lokalen Standardserver zu verwenden. Die meisten Dinge sind in Ordnung, aber ich habe immer noch Anwendungen, die HHVM noch nicht vollständig unterstützt.Führen Sie beide HHVM und Normal Apache Server

Anstatt meine Konfiguration zu ändern und Dienste neu zu starten, wäre es viel einfacher, wenn ich nur Ports oder Verzeichnisse wechseln könnte.

Meine Frage: Ist es möglich, einen normalen Apache-Server auf einem Port (80) und einen HHVM powered Server auf einem anderen Port (8080) zu betreiben? Ist es alternativ möglich, HHVM nur in einem bestimmten Verzeichnis (und seinen Unterverzeichnissen) auszuführen?

In Szenario 1 Umschaltung auf HHVM Anwendung würde wie folgt aussehen:

localhost/my-project/index.php 
    localhost/hhvm/my-project/index.php 

Ich würde vermuten, dass dies erreicht werden kann:

localhost/my-project/index.php 
    localhost:8080/my-project/index.php 

In Szenario 2 Umschaltung auf HHVM Anwendung würde wie folgt aussehen über die Konfigurationsdatei von Apache, aber ich weiß nicht genug darüber, wie die Config-Dateien funktionieren, um es selbst zu tun, bitte helfen !?


OS: Ubuntu 14.04
Apache Version: 2.4.7
HHVM Version: 3.2.0

+1

Sie können es in [FastCGI-Modus] (https://github.com/facebook/hhvm/wiki/fastcgi) neben Apache und PHP-FPM ausführen. – mario

+0

@mario Danke, ich denke das zeigt mir, wie man Szenario 2 macht. Aber wenn möglich, würde ich immer noch Szenario 1 bevorzugen; habe irgendwelche Ideen dafür ??? –

Antwort

6

Um /etc/apache2/ports.conf hinzufügen ...

Listen 8080 

Dann, um Ihre vhost Konfiguration (seit localhost als Ihre Domäne verwenden, wahrscheinlich/etc/apache2/sites-available/default. conf), kopiere alles hinein und füge es direkt darunter ein, damit du eine zweite VirtualHost-Instanz hast. Zur zweiten Instanz, ändern Sie die *: 80 zu *: 8080, dann fügen Sie Ihre ProxyPassMatch hinzu, um zu sagen, dass Sie HHVM für hh und php Dateierweiterungen verwenden möchten (vergessen Sie nicht, das richtige Verzeichnis zu aktualisieren).

Es sollte etwas aussehen ...

<VirtualHost *:80> 

    ... keep the same ... 

</VirtualHost> 
<VirtualHost *:8080> 

    ... keep the same ... 

    ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/$1 

</VirtualHost> 

in /etc/apache2/mods-available/hhvm_proxy_fcgi.conf gehen und kommentieren, was da drin ist. Sonst wird alles in Richtung HHVM gehen.

Schließlich startet Apache

sudo service apache2 restart 

ich diese schnell auf einem vorhandenen lokalen Standort getestet und es wurde Umleitung zurück auf 80 von 8080, die es getan haben sollte. Wenn das nicht klappt, lass es mich wissen.

UPDATE: Getestet ein bisschen mehr, und es sieht so aus, als sollte dies für Sie funktionieren. Nach dem Hinzufügen der folgenden Elemente wurde durch Springen zwischen local.site.com/hhvm.php und local.site.com:8080/hhvm.php das Echo korrekt umgedreht.

+0

Perfekt! = D (mehr als 15 Zeichen) –

+1

Ich möchte nur darauf hinweisen, dass der Schritt, in dem Sie '/ etc/apache2/mods-available/hhvm_proxy_fcgi.conf' Inhalte auskommentieren, sehr wichtig ist, und ** muss getan werden erneut, wenn Sie HHVM ** aktualisieren. –

1

Ja. Sie können Apache sowohl auf Port 80 als auch auf Port 8080 abhören (fügen Sie einfach zusätzliche Abhörkonfigurationen hinzu) und fügen dann einen virtuellen Host für localhost hinzu: 8080, der Anfragen über HCHVM über FastCGI weiterleitet.

+0

ok, ich bin mir ziemlich sicher, dass dies eine der Konfigurationsdateien von Apache beinhaltet. Wie oben erwähnt, weiß ich nicht genug über die Konfigurationsdateien, um es selbst zu tun. Können Sie Code hinzufügen, der zeigt, wie es für einen Port aussehen würde, um hhvm zu verwenden, und einen, der das nicht tut? –

Verwandte Themen