运行HHVM和Normal Apache Server

时间:2014-09-02 06:24:34

标签: php apache hhvm

今天早上我开始使用HHVM作为我的默认本地服务器。大多数事情都很好,但我仍然有HHVM尚未完全支持的应用程序。

如果我只能切换端口或目录,那么不是改变我的配置和重新启动服务,而是更容易。

我的问题:是否可以在一个端口(80)上运行普通的Apache服务器,在另一个端口(8080)上运行支持HHVM的服务器?或者,是否可以仅在特定目录(及其'子目录)中运行HHVM?

在方案1中,切换到HHVM应用程序将如下所示:

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

在方案2中,切换到HHVM应用程序将如下所示:

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

我猜这可以通过Apache的配置文件来实现,但是我不太了解配置文件如何自行完成,请帮忙!?


操作系统: Ubuntu 14.04
Apache版本: 2.4.7
HHVM版本: 3.2.0

2 个答案:

答案 0 :(得分:6)

到/etc/apache2/ports.conf添加...

Listen 8080

然后,对于您的vhost配置(因为使用localhost作为您的域,可能是/etc/apache2/sites-available/default.conf),复制其中的所有内容并将其粘贴到下面,以便您拥有第二个VirtualHost实例。对于第二个实例,将*:80更改为*:8080,然后添加您的ProxyPassMatch以告诉您,您希望将HHVM用于hh和php文件扩展名(不要忘记更新到正确的目录) 。

应该看起来像......

<VirtualHost *:80>

    ... keep the same ...

</VirtualHost>
<VirtualHost *:8080>

    ... keep the same ...

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

</VirtualHost>

进入/etc/apache2/mods-available/hhvm_proxy_fcgi.conf并注释掉那里的内容。否则一切都将转向HHVM。

最后,重启apache

sudo service apache2 restart

我在一个现有的本地站点上快速测试了它,它从8080重定向到80应该已经完成​​。如果这没有成功,请告诉我。

更新:测试了一下,看起来这应该适合你。添加以下内容后,在local.site.com/hhvm.php和local.site.com:8080/hhvm.php之间跳转可正确翻转回声。

<?php if (defined('HHVM_VERSION')) {
    echo "golden!";
} else {
    echo "doh...";
}

答案 1 :(得分:1)

是。您可以让Apache侦听端口80和端口8080(只需添加其他侦听配置),然后为localhost添加虚拟主机:8080,通过FastCGI将请求传递给HHVM。