今天早上我开始使用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
答案 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。