php – 为archlinux配置hhvm和apache
首先,我从AUR安装了apache24,从AUR安装了hhvm(HipHop VM 2.4.0(rel)). apache24启用了mod_proxy_fcgi.使用hhvm从终端运行php文件似乎工作正常,但我无法配置它与apache一起使用.
在httpd.conf我有: ProxyPass / fcgi://127.0.0.1:9000/srv/http/ ,然后我从doc_root运行hhvm服务器: sudo hhvm --mode server -vServer.Type=fastcgi -vServer.Port=9000 ,但是当从浏览器访问http链接时,我得到: "HipHop Notice: File could not be loaded: proxy:fcgi://127.0.0.1:9000/srv/http/index.php" 有什么建议? 解决方法
可以办到.这是我的Ubuntu Web服务器示例:
您需要一种方法将HHVM挂钩到Apache Web服务器.这是使用您需要安装的FastCGI完成的.幸运的是,HHVM提供了一个shell脚本来设置它.运行以下… sudo /usr/share/hhvm/install_fastcgi.sh 确保HHVM在启动时启动,运行此…(可选) sudo update-rc.d hhvm defaults 配置HHVM和Apache虚拟主机 安装脚本将要求您重新启动HHVM和Apache.不仅如此,否则您的网站访问者将看到一些404行动.相反,打开hhvmproxyfcgi.conf并注释其中的单个ProxyPassMatch行. sudo emacs /etc/apache2/mods-available/hhvm_proxy_fcgi.conf # ProxyPassMatch ^/(.+.(hh|php)(/.*)?)$fcgi://127.0.0.1:9000/v 这会阻止所有PHP / Hack脚本通过FastCGI进行路由,这将允许您选择要通过HHVM发送的Web应用程序.如果您只在Web服务器根目录中运行单个Web应用程序,则不需要执行此操作,但我觉得无论如何都是明智之举. 现在HHVM正在运行但是无法将脚本传递给它.我们需要将ProxyPassMatch配置添加到我们希望HHVM供电的Web应用程序的虚拟主机配置中.将其添加到每个配置文件中的每个虚拟主机实例(以下示例中介绍的安全和非安全流量). sudo nano /etc/apache2/sites-available/hhvm.example.com.conf #HHVM示例 – hhvm.example.com <VirtualHost *:80> ServerName hhvm.example.com DirectoryIndex index.php DocumentRoot /var/www/sites/hhvm.example ProxyPassMatch ^/(.+.(hh|php)(/.*)?)$fcgi://127.0.0.1:9000/var/www/sites/hhvm.example/$1 </VirtualHost> <VirtualHost *:443> ServerName hhvm.example.com DirectoryIndex index.php DocumentRoot /var/www/sites/hhvm.example SSLEngine On SSLCertificateFile /etc/ssl/certs/hhvm.crt SSLCertificateKeyFile /etc/ssl/private/hhvm.key SSLCACertificateFile /etc/ssl/certs/hhvm.ca.crt ProxyPassMatch ^/(.+.(hh|php)(/.*)?)$fcgi://127.0.0.1:9000/var/www/sites/hhvm.example/$1 </VirtualHost> 如果您想快速A / B测试性能提升,您还可以指定另一个端口来显式使用HHVM.要执行此操作,只需在/etc/apache2/ports.conf中打开端口即可 Listen 8080 然后在虚拟主机配置中,使用指定的新端口创建另一个实例,并将ProxyPassMatch配置添加到您要在其上运行HHVM的配置. <VirtualHost *:80> ... </VirtualHost> <VirtualHost *:8080> ... ProxyPassMatch ^/(.+.(hh|php)(/.*)?)$fcgi://127.0.0.1:9000/var/www/$1 </VirtualHost> 重启Apache和HHVM 现在,我们已准备好迎接Apache和HHVM.重启两项服务…… sudo service apache2 restart sudo service hhvm restart (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |