HHVM或PHP5 Zend正在运行吗?

HHVM或PHP5 Zend正在运行吗?,php,apache,zend-framework,hhvm,Php,Apache,Zend Framework,Hhvm,经过一番努力,我终于在Ubuntu上安装了Facebook HipHop虚拟机。它在FastCGI(Apache2.22)下运行。以下是服务状态: marcelo@marcelo-VirtualBox:~$ service apache2 status Apache2 is running (pid 3330). marcelo@marcelo-VirtualBox:~$ service hhvm status * hhvm is running marcelo@marcelo-Virtual

经过一番努力,我终于在Ubuntu上安装了Facebook HipHop虚拟机。它在FastCGI(Apache2.22)下运行。以下是服务状态:

marcelo@marcelo-VirtualBox:~$ service apache2 status
Apache2 is running (pid 3330).
marcelo@marcelo-VirtualBox:~$ service hhvm status
 * hhvm is running
marcelo@marcelo-VirtualBox:~$ sudo service hhvm restart
 * Restarting HHVM FastCGI Daemon hhvm                                   [ OK ] 
marcelo@marcelo-VirtualBox:~$ 
同一台机器在Apache中启用并配置了PHP5模块


问题: 我想确保我真正使用
HHVM
而不是
Zend框架来呈现
PHP
代码

我所有的PHP脚本都在Web服务器上运行。但是,当我使用
sudoa2dismodphp5
禁用PHP5模块时,web服务器开始呈现
内部服务器错误

HHVM是否需要启用PHP5模块才能运行?据推测,由于我使用的是FastCGI,我的答案是否定的。另一方面,我认为我的页面是由Zend而不是HHVM呈现的

我错过了什么?我如何确保我真的在运行HHVM?(在我看来,一个明确的测试是禁用PHP5模块,但正如我所说,当我禁用时,php将停止在web浏览器中工作)

如果.php未在禁用
PHP5模块的情况下运行,是否意味着我的
HHVM
配置不正确

注意:我正在测试的脚本是一个默认的Hello World示例:

当我从命令行运行时,它会工作:

marcelo@marcelo-VirtualBox:/var/www$ sudo hhvm hello_world.php
Hello World.
marcelo@marcelo-VirtualBox:/var/www$ 

编辑

  • Apache错误日志:

    marcelo@marcelo-VirtualBox:/var/log/apache2$cat error.log 【2014年5月7日星期三14:02:10】【通知】FastCGI:流程管理器已初始化(pid 2627) 【2014年5月7日星期三14:02:10】【注意】Apache/2.2.22(Ubuntu)mod_fastcgi/mod_fastcgi-SNAP-0910052141已配置--恢复正常操作 [Wed May 07 14:04:52 2014][error][client 127.0.0.1](2)没有这样的文件或目录:FastCGI:无法连接到服务器“/var/www/FastCGI/hvm.FastCGI”:connect()失败 [Wed May 07 14:04:52 2014][error][client 127.0.0.1]FastCGI:从服务器接收到不完整的头文件(0字节)/var/www/FastCGI/hhvm.FastCGI” [Wed May 07 14:04:53 2014][error][client 127.0.0.1]文件不存在:/var/www/favicon.ico marcelo@marcelo-VirtualBox:/var/log/apache2$

(显然,我应该有'hhvm.fastcgi'文件。我只有目录。这里有什么问题吗?)

  • /var/www
    目录:

    marcelo@marcelo-VirtualBox:~$ls-l/var/www 总数20 DRWXRWX 2根根根4096年5月6日23:45 fastcgi -rw-r--r--1根根根5月31日6:21:57 hello_world.php -rw-r--r--1根根177 May 6 17:47 index.html -rw-r--r--1根根根5月21日6日17:50 info.php -rw-r--r--1根根0五月6日17:49 info.php~ drwxr-xr-x 13 997 1001 4096年5月6日18:13 mediawiki-1.22.6 marcelo@marcelo-VirtualBox:~$ls-l/var/www/fastcgi/ 总数0 marcelo@marcelo-虚拟箱:~$

-FastCGI配置: 我在apache2.conf文件的末尾添加了以下几行,如下所示:,。换句话说,在所有“已启用MOD”都已加载之后

# fastcgi added by M. Sardelich
<IfModule mod_fastcgi.c>
    Alias /hhvm.fastcgi /var/www/fastcgi/hhvm.fastcgi
    FastCGIExternalServer /var/www/fastcgi/hhvm.fastcgi -socket /var/run/hhvm/socket -pass-header Authorization -idle-timeout 300
    <Directory "/var/www/fastcgi">
        <Files "hhvm.fastcgi">
            Order deny,allow
        </Files>
    </Directory>

    AddHandler hhvm-hack-extension .hh
    AddHandler hhvm-php-extension .php

    Action hhvm-hack-extension /hhvm.fastcgi virtual
    Action hhvm-php-extension /hhvm.fastcgi virtual
</IfModule>
由M.Sardelich添加的fastcgi 别名/hhvm.fastcgi/var/www/fastcgi/hhvm.fastcgi FastCGIExternalServer/var/www/fastcgi/hhvm.fastcgi-socket/var/run/hhvm/socket-pass头授权-空闲超时300 命令拒绝,允许 AddHandler hhvm hack extension.hh AddHandler hhvm php extension.php 操作hhvm黑客扩展/hhvm.fastcgi虚拟 操作hhvm php扩展/hhvm.fastcgi虚拟
要确保您实际上正在运行HHVM,请运行以下命令:

phpinfo();
它应该生成
HipHop
作为输出,而不是普通的php信息

要以编程方式检查它,可以使用以下命令:

if(已定义('HHVM_版本')){
呼应“若宁HHVM”;
}
正如正确注意到的(谢谢@Petah),我的FastCGI配置是错误的

我把它改成了下面的代码片段(从这里:),一切正常!(将其添加到
apache2.conf
httpd.conf
文件中)


别名/hhvm.fastcgi/var/www/fastcgi/hhvm.fastcgi
FastCGIExternalServer/var/www/fastcgi/hhvm.fastcgi-主机127.0.0.1:9000-通过头授权-空闲超时300
命令拒绝,允许
AddHandler hhvm hack extension.hh
AddHandler hhvm php extension.php
操作hhvm黑客扩展/hhvm.fastcgi虚拟
操作hhvm php扩展/hhvm.fastcgi虚拟

因此它似乎没有运行。您的CGI配置可能是错误的。另外,我不建议将
mod_php
和CGI-php/HHVM混合使用。@Petah,感谢您的及时回复。我完全同意“混合”的说法。您建议如何修复我的apache服务器?我正在考虑完全删除“libapache2-mod-php5”。或者最好在不支持PHP的情况下重新安装Apache?HHVM是否以任何方式依赖于PHP Zend?
a2dismod
就足够了。Zend与此无关。它只是一个框架。你能发布你的CGI配置吗?以及当您收到“内部服务器错误”时日志中的错误。另请看我的回答,这里有一个CGI设置示例:@Petah,我用您要求的信息编辑了我的问题。感谢您的评论。谢谢您的评论。我想这个问题与FastCGI配置有关。它从命令行开始工作,并返回HipHop。
<IfModule mod_fastcgi.c>
    Alias /hhvm.fastcgi /var/www/fastcgi/hhvm.fastcgi
    FastCGIExternalServer /var/www/fastcgi/hhvm.fastcgi -host 127.0.0.1:9000 -pass-header Authorization -idle-timeout 300
    <Directory "/var/www/fastcgi">
        <Files "hhvm.fastcgi">
            Order deny,allow
        </Files>
    </Directory>

    AddHandler hhvm-hack-extension .hh
    AddHandler hhvm-php-extension .php

    Action hhvm-hack-extension /hhvm.fastcgi virtual
    Action hhvm-php-extension /hhvm.fastcgi virtual
</IfModule>