问题标签 [hhvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3075 浏览

symfony - Symfony2 和 HHVM 声明 Doctrine\DBAL\Driver\PDOConnection::prepare() 必须兼容

我正在尝试在 HHVM 机器上建立一个 symfony2 项目,

HHVM 在 FastCGI 上运行,如 hhvm 教程中所述,因此在 Debian 上的 apache2 服务器后面运行。

我已经创建了所有内容,但是当我尝试运行我的应用程序时,出现以下错误:

我认为这与 HHVM 中的 PDO 有关,但我使用 class_exists('PDO') 对其进行了测试,并且表示启用了 PDO

0 投票
1 回答
10205 浏览

php - 为什么服务器重启后处于守护模式的 HHVM 不会自动启动?

HipHop/HHVM 可以作为守护进程运行(因此它会在重新启动后自动启动)

运行时,它运行良好(这表明配置没问题)。但是重启机器后HHVM就没了,需要手动重启。上述行包括。这些配置已从 HHVM 创建者的官方教程中删除。类似的经典服务语法sudo service hhvm start也可以完美运行,但无法在机器重新启动时使用。

我为追查问题所做的工作:

/var/log/hhvm/error.log 中的 HHVM 错误日志在每次重新启动时记录此行:Unable to open pid file /var/run/hhvm/pid for write. /etc/hhvm/server.hdfPidFile = /var/run/hhvm/pid第一行。由于它默认附带 HHVM,因此我不想更改它。我认为sudo是这里的问题。没有 sudo HHVM 将无法运行。Chmod 777'ing pid 文件并指向另一个空文件并不能解决问题。

问题:

将 HHVM 安装为守护程序的正确方法是什么?

0 投票
1 回答
370 浏览

php - _POST 参数在通过 Apache 和 HHVM 之间的代理传递时出错

我一直在努力让 Apache/HHVM/Symfony 相互配合。大多数事情似乎都可以正常工作,但是在上传文件时我遇到了问题。结果 _POST 是单个条目,而不是预期的数组。

代理设置是:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/root/directory/$1

使用 PHP5-FPM(不破坏_POST参数)时,代理设置为:

SetEnvIf Request_URI . proxy-fcgi-pathinfo=1

设置因多次尝试错误而有所不同。如果代理设置与 PHP5-FPM 类似,HHVM 会一直提示找不到 404 文件。如果没有文件,表单可以正常工作,所以我怀疑它与 HHVM 处理表单中的文件有关,但我找不到任何相关信息。

代理设置是否需要更改?或者使用 HHVM 上传文件有什么特别需要的吗?

堆栈是 Symfony 1.4、HHVM 2.4 和 Ubuntu 12.04 上的 Apache 2.4。

0 投票
1 回答
270 浏览

php - 使用 Silex 和 HHVM 时请求 basePath 错误

当我调用/api/v1/fooSilex 时,搜索匹配的路由/api/v1/foo而不是/foo. 我该如何解决?

我的 HHVM 配置:

0 投票
1 回答
364 浏览

php - Laravel 的 Response::json() 在 HHVM 下什么都不返回给客户端

我在 virtualbox VM 上运行 HHVM,将 webroot 映射到我的本地 laravel 安装,在内部 IP 上提供服务。

在本地,我在 http://[localhost]:8000 下为站点提供服务。

代码库是相同的。

MembersController.php(资源丰富的控制器)的代码:

假设一切正常:

当我向 LOCALHOST 运行 GET 请求时:http://[localhost]:8000/api/v1/member/1,客户端正常返回 JSON - 一切都很好。

当我向 HHVM(相同的客户端,相同的代码库)运行 GET 请求时:http://[vm_ip_address]/api/v1/member/1,客户端没有收到任何数据。

数据正在通过 HHVM 中的调用传回,就像我将“return”更改为“echo”一样,在两种情况下都会返回有效负载(也包括标题)

看起来 HHVM 正在影响 laravel 的 Response::json() 函数,并且不允许在客户端显示回复内容。

有没有其他人看过这个?

这不是我可以设置单元测试的东西,因为它总是通过,因为最终回复中总是有数据:/

任何输入都会很棒 - 我有兴趣了解如何解决这个问题。

谢谢。

0 投票
1 回答
576 浏览

laravel-4 - 通过 HHVM 访问系统变量

问题:我想通过 HHVM 访问通常不会暴露于默认 php 设置的环境变量

上下文:我依靠几个系统变量为在 Docker 容器中运行的 Laravel4 项目提供动态配置选项。我想连接到在另一个 docker 容器中运行的 mysql 数据库,该容器在启动时会公开一个随机 IP 地址。此 IP 地址使用 Docker 的选项传递到 Laravel4 容器中--link,并自动作为 Laravel-4 容器中的系统变量公开。

以前的方法:使用 php-fpm 时,我可以使用这样的文件将 Docker 创建的系统变量暴露给 php www.conf然后只需使用 getenv('VAR_NAME') 在我的 php 代码中获取变量。

但是,使用 HHVM,我无法弄清楚如何访问“非标准”环境变量。似乎没有与www.conf我能找到的等价物。有没有人尝试过这个?是否可以使用 HHVM 访问 PHP 外部的系统变量?是否有特定于 HHVM 配置的内容,而我只是在文档中找不到它?

附加信息:我在这里支持 Nginx。我认为 fastcgi-param 指令不适用于我的情况,但我可能只是做错了。如果有人使用 fastcgi-params 完成了我想要做的事情,我也可以使用这种方法。

0 投票
1 回答
1612 浏览

php - 需要帮助了解粗略的基准:常规 PHP、HHVM 和 Zephir

我使用一个简单的阶乘函数执行了这个测试(借用了http://avelino.xxx/2014/03/golang-c-and-python-the-benchmark-time的逻辑)

常规 PHP 代码

PHP 使用 Zephir

西菲尔代码

我使用 time 命令以下列方式执行了这些片段:

常规 PHP

结果

PHP 使用 Zephir 类

结果

HHVM

结果

问题:

从上面的结果可以看出,常规的 PHP 代码似乎比使用编译的 Zephyr 类作为 PHP 扩展的代码执行得更好。这让我感到困惑。

脚本代码如何最终比编译代码更快,尤其是当两者都使用相同的逻辑时?我想我在这里遗漏了一些东西,如果有人能帮助我理解这一点,我将不胜感激。

编辑:看起来其他人也面临与 Zephir 类似的问题:Zephir 2x 慢

0 投票
0 回答
425 浏览

php - 为什么 FastCGI HHVM 挂在更大的数据集上?

我编写了一个小型基准测试套件,其中包括针对 PHP、HHVM 和 Zephir 的 CLI 测试。我现在正在尝试为 PHP、HHVM 和 Zephir 添加 FastCGI 测试。对于上下文,您可以查看我最初为此撰写的文章

代码可在 GitHub 上的 fcgi 分支中找到。

本质上,我创建了一个 HHVM 扩展、PHP 和 Hack 版本的相同 Mandelbrot 集生成代码(参见fcgi-hhvm-*GitHub 项目)。我为它们中的每一个设置(setup.sh)一个 HHVM FastCGI 服务器,通过对它发出一些请求来预热它,然后进行基准测试。FastCGI 请求由 C++ FastCGI CLI 客户端处理,以使其在基准上的足迹尽可能小,而不是说 nginx。

它适用于 100x100 和 200x200 的 Mandelbrot 集,但一旦增加到 1,000,它就会在运行 PHP、Hack 或通过 HHVM 扩展的 HHVM 的一次迭代中随机挂起。

不幸的是,日志也没有写入任何内容,它只是默默地挂起。如果我终止作业并尝试重新运行它而不停止并启动服务器,它会再次挂起。所以它使服务器处于故障状态,但不会导致服务器崩溃或死亡。

我已尝试更改许多配置选项 - 请参阅我的项目中的相关问题:https ://github.com/treffynnon/Benchmark-PHP-HHVM-Zephir/issues/7

有谁知道是否有我应该调整的设置或可能导致此问题的问题?

顺便说一句,PHP 脚本需要更长的时间才能运行,但它们每次都能成功完成,所以我很确定这不是我的客户端实现中的东西,而是 HHVM 本身中的东西。相同的测试通过 CLI 上的 HHVM 运行良好,但不能通过 FastCGI。

HHVM 版本:从 master@190a12a 构建

0 投票
2 回答
6257 浏览

php - 你会如何从 PHP 迁移到 Hack?

Facebook 引入了一种新的编程语言,它看起来很像 PHP 的扩展。他们称它为Hack,它在他们的 HHVM 引擎上运行。

在查看了他们的网站并阅读了一些相关内容后,我想知道从PHPHack的迁移可能会有多流畅。

让我们围绕已经部署到 LEMP 或 LAMP 堆栈的 Web 应用程序展开讨论。

我最初的一些想法和行动清单包括:

  • 如何在迁移代码库的过程中同时运行 PHP 和 Hack?
  • 从 nginx/Apache 迁移到 HHVM
  • 迭代迁移代码库

那么,您将如何处理这个问题?

0 投票
0 回答
196 浏览

ubuntu - 构建 HHVM 缺少 GCC 4.7 但已安装

我尝试根据本手册在 Ubuntu 12.04 上编译 HHVM 。

我收到此错误:

但 GCC 4.7 似乎安装正确