HHVM或PHP5 Zend正在运行吗?
经过一番努力,我终于在Ubuntu上安装了Facebook HipHop虚拟机。它在FastCGI(Apache2.22)下运行。以下是服务状态: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
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>