标签: hhvm

在浏览器中显示致命/通知错误

好吧,我刚开始使用hhvm/hack.但是我想向浏览器显示错误,但没有让它工作.

我按照以下方式设置了ini设置

error_reporting(E_ALL);
ini_set('display_errors', '1');
Run Code Online (Sandbox Code Playgroud)

根据var_dump ini_get的值设置为

string(5) "32767"
string(1) "1"
Run Code Online (Sandbox Code Playgroud)

但是当我这样做的时候

<?hh

error_reporting(E_ALL);
ini_set('display_errors', '1');

throw new InvalidArgumentException('test');
Run Code Online (Sandbox Code Playgroud)

当我通过浏览器访问页面时,我会得到一个白色屏幕和一个500 http头.所以没有解释致命/异常错误.

然而,我会通过终端hhvm index.php它会显示;

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'test' in /var/www/public/index.php:3
Stack trace:
#0 {main}
Run Code Online (Sandbox Code Playgroud)

所以现在问题.怎么来我在浏览器中没有收到任何消息,但在cli中做什么?第二个是,我如何让它在浏览器中工作以显示消息.

我遇到了这个问题这个问题.但第一个,好的是相同的,但是没有答案.第二个是关于静态检查的说法.IE给出了一个int等,至少这是我认为他的意思.

我来的其他问题,看起来像我的,但又没有答案.

根据文档,它应该工作,我猜.

阅读更多关于我遇到的文档

尽管display_errors可以在运行时设置(使用函数ini_set()),但如果脚本存在致命错误,则不会产生任何影响.这是因为未执行所需的运行时操作.

所以我认为异常是一个致命的错误,所以我就这么做了 $test = $bar + 1;

这让cli来了

Notice: Undefined variable: bar in /var/www/public/index.php on line 8
int(1)
Run Code Online (Sandbox Code Playgroud)

再次在浏览器中

int(1) 
Run Code Online (Sandbox Code Playgroud)

所以我也没有收到通知.

当我重新启动hhvm时,service hhvm restart我也收到错误消息 …

hhvm

8
推荐指数
1
解决办法
3722
查看次数

Chrome"停顿"请求约一分钟

我在FastCGI模式下运行带有HHVM 3.5.0的NGINX 1.2.1.

正如标题所说,在我执行以下操作后,Chrome会长时间"停止"请求:

  • 打开我的网站(只需1.5秒)
  • 等待约2分钟
  • 单击菜单上的其他链接
  • 去喝杯咖啡,等一下

我在IE 11,Firefox和Chrome for Android上重现了这个:

  • IE 11:没有停滞,没有问题,快速发展
  • Firefox:与Chrome相同
  • Chrome for Android(OnePlus One):没有停滞,没有问题,快速发展

我确信,我的服务器配置错误,因为它适用于其他浏览器.

任何帮助或提示表示赞赏.

谢谢

php google-chrome nginx hhvm

8
推荐指数
1
解决办法
1289
查看次数

时间()保证是闰秒意识吗?

PHP手册指出time()返回 "当前的UNIX时间戳"  microtime()返回 "当前Unix时间戳和微秒"  ʙ.

但是,这些功能是否保证严格符合POSIX.1系统的功能相同

具体来说,以time() | 的输出方式插入闰秒 在第二天开始时向后microtime() 跳1秒(也就是在闰秒结束时),在下一个第一秒的整个过程中给我们重复的返回值 - 与新鲜的唯一值相对天?

例如,如果我们轮询time() | microtime()在1998 -12-31和1999 -01 -01的整个范围内,每微秒,在915 148 800 <= x <915 148 801范围内,每个值是否会出现两次?

php linux windows time hhvm

7
推荐指数
2
解决办法
2017
查看次数

HHVM(HipHop)是否支持Postgresql/arbitary pecl扩展?

Facebook今天发布了一个重大声明--HHVM正在取代原来的hiphop编译器.

旧的HipHop对扩展的支持有限 - 包括IIRC,没有postgres支持.

HHVM是否支持所有pecl扩展?它支持多少标准PHP库?

什么 HHVM支持?

php postgresql pecl hiphop hhvm

7
推荐指数
1
解决办法
6151
查看次数

如何使用hacklang/hhvm的Mysql PDO驱动程序

当我尝试使用hacklang/hhvm(今天编译)通过PDO访问MySql时,我得到了一个pdo异常"找不到驱动程序".我尝试安装php5-mysql,但我甚至不确定它是否有用,因为我不确定php和hacklang之间的关系,特别是在扩展方面.我该怎么做才能让PDO在hacklang上工作?

更新:

我找到了支持的扩展名列表:https: //github.com/facebook/hhvm/wiki/Extensions

PDO和MySql都在那里,但我应该寻找mysql_pdo吗?或者我需要做一些配置吗?

php mysql pdo hhvm hacklang

7
推荐指数
1
解决办法
2461
查看次数

HHVM能否运行PHP7

我知道PHP7有一个新的编译器几乎和HHVM一样快,但我很好奇HHVM是否也能运行PHP7以及PHP5.

我找不到任何关于此的细节.我发现的一切只是一个HHVM与PHP7同样对于这个问题,任何人都可以找到将在HHVM上运行的PHP5版本.

谢谢

hhvm php-7

7
推荐指数
1
解决办法
636
查看次数

HHVM RepoMode分段故障

规格:Ubunutu 16.04.1服务器nginx 1.10 HHVM 3.17.0

我正在尝试收集文件列表,并通过hhvm编译器运行它们以利用repo模式,使用以下代码:

#!/bin/bash

if [ "$(whoami)" != "root" ]; then
    echo "Only root can do this.";
    exit 1;
else

    if [ $# -eq 0 ]; then
        echo "Please pass the account name to enable this for"
        exit 1;
    else

        #Get a list of files
        FLIST=$(find /home/$1/www/ -type f -name '*.php');
        for F in $FLIST
        do
            if [ -f $F ]; then
                echo "Adding; $F";
                echo $F >> $1-list.txt;
            fi;
        done;
        hhvm --hphp -t hhbc -v AllVolatile=false …
Run Code Online (Sandbox Code Playgroud)

php hhvm

7
推荐指数
1
解决办法
218
查看次数

在HHVM + Apache + fastCGI上部署Symfony2

我试图通过fastCGI在HHVM(3.0)和Apache(2.4)上部署Symfony2(2.4)应用程序,按照此处的说明 - https://github.com/facebook/hhvm/wiki/FastCGI

虽然我可以通过这种方式正确执行单个php文件,但它似乎不适用于Symfony2路由系统.路由已正确解析(例如localhost/myapp/web/app_dev.php/my/route/to/something),但页面本身不会加载.相反,页面只输出"未找到",HHVM记录以下内容:

没事做.要么传递.php文件来运行,要么使用-m server

这似乎表明它认为它没有通过正确的PHP文件.

应该注意的是,部署使用HHVM 2.x附带的内置Web服务器工作正常.但是,从HHVM 3.0开始,不再支持此服务器.

对于要改变哪些配置以使其工作,我感到非常遗憾.即使是能够正确解决这一问题的指针也是一个很好的答案.

php apache fastcgi symfony hhvm

6
推荐指数
1
解决办法
1966
查看次数

HHVM fastcgi + Nginx性能波动

目前,我们已开始在生产环境中使用HHVM,到目前为止,几乎所有结果都非常令人反感.与使用APC的PHP-FPM相比,我们的整体交易率大大提高.几乎所有请求都在500毫秒以下,但是每隔几个请求(5到10个左右)就会产生2到5秒的请求时间.

请求的页面似乎没有任何区别,并且一遍又一遍地请求同一页面将在几个请求中触发此行为.

我们使用以下命令行选项在服务器模式下运行HHVM:

/usr/bin/hhvm --mode server -vServer.Type=fastcgi -vServer.FileSocket=/usr/local/php55/sockets/admin.sock -vPidFile=/var/run/hhvm/admin.pid -vEval.Jit=true -vServer.ThreadCount=24 -vServer.APC.EnableApc=true
Run Code Online (Sandbox Code Playgroud)

我们正在为这些相关配置的网络服务器运行nginx(对不起,如果我忘记了一些重要的东西).

fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_read_timeout 240;
fastcgi_intercept_errors on;
Run Code Online (Sandbox Code Playgroud)

服务器有128GB内存和24个内核(超线程实际上是12个).

我们在https://github.com/facebook/hhvm/wiki/Runtime-options上进行了相当多的搜索,但大多数选项都没有得到很好的解释,所以我不知道他们做了什么,并在生产环境中测试它们是有点吓人.

如果这里的任何人有类似的问题,或者可能指出我的方向与一些HHVM选项我会非常感激.

使用的HHVM版本来自http://www.hop5.in/yum/el6/

HipHop VM 3.0.1 (rel)
Compiler: 
Repo schema: e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
Run Code Online (Sandbox Code Playgroud)

和/etc/hhvm/config.hdf

Log {
  Level = Warning
  AlwaysLogUnhandledExceptions = true
  RuntimeErrorReportingLevel = 8191
}

MySQL {
  TypedResults = false
}
Run Code Online (Sandbox Code Playgroud)

我们正在使用supervisord启动HHVM,所以这里的主管配置如下:

[program:hhvm]
stopasgroup=true
killasgroup=true
command=/usr/bin/hhvm --mode server -vServer.Type=fastcgi -vServer.FileSocket=/usr/local/php55/sockets/admin.sock -vPidFile=/var/run/hhvm/admin.pid -vEval.Jit=true -vServer.ThreadCount=24 -vServer.APC.EnableApc=true 
user=admin
stdout_logfile=/var/log/hhvm/admin.log
stderr_logfile=/var/log/hhvm/admin.error.log
directory=/home/admin
umask=000
Run Code Online (Sandbox Code Playgroud)

/etc/hhvm/php.ini中有一个php.ini,但内容为空.所有页面都尝试了一些数据库连接,但这通常是非常小的.完整的图片也是my.cnf.使用的mysql版本是percona

[mysql] …
Run Code Online (Sandbox Code Playgroud)

php mysql performance nginx hhvm

6
推荐指数
1
解决办法
3362
查看次数

Vagrant,PhpStorm,HHVM和Xdebug

我在使用PhpStorm和HHVM中的内部Xdebug在流浪盒上玩得很好时遇到了问题,下面是我的php.ini.

xdebug.enable=1
xdebug.remote_enable=1
xdebug.idekey="PHPSTORM"
xdebug.remote_host="10.0.2.2"
xdebug.remote_autostart=0
xdebug.remote_connect_back=1
Run Code Online (Sandbox Code Playgroud)

PhpStorm正在侦听端口9000,如果我在第一次运行时删除所有远程服务器PhpStorm给了我通常的"来自Xdebug的传入连接".

在我选择正确的映射并且第一个断点被命中后,HHVM似乎在返回504网关超时之前挂起.如果我删除断点然后加载是即时的,那么显然PhpStorm和Xdebug似乎正在通信,但是调试窗口从不显示任何堆栈信息/断点控制.

有没有人有任何指针,我的想法是:1)我需要在Vargrant框上打开一个端口,因为通信挂在某处2)HHVM/PhpStorm中的错误(不太可能)

我在Ubuntu 14.04,Vagrant 1.6.5

使用Nginx + HipHop VM 3.4.1,扩展API:20140829,VM也是14.04

PhpStorm 8.0.2


我现在已经启用了针对Xdebug远程连接的vagrant box的登录,这是输出....

Log opened at[2014-12-18 14:59:16]
I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.56.1:9089.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///var/www/public/index.php" language="PHP" protocol_version="1.0" appid="9660" idekey="PHPSTORM"><engine version=""><![CDATA[xdebug]]></engine><author><![CDATA[HHVM]]></author><url><![CDATA[http://hhvm.com/]]></url><copyright><![CDATA[Copyright (c) 2002-2013 by Derick Rethans]]></copyright></init>

<- feature_set -i 1 -n show_hidden -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="1" feature="show_hidden" success="1"></response>

<- feature_set -i 2 -n …
Run Code Online (Sandbox Code Playgroud)

php xdebug phpstorm vagrant hhvm

6
推荐指数
1
解决办法
1687
查看次数