问题标签 [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.
symfony - Symfony2 和 HHVM 声明 Doctrine\DBAL\Driver\PDOConnection::prepare() 必须兼容
我正在尝试在 HHVM 机器上建立一个 symfony2 项目,
HHVM 在 FastCGI 上运行,如 hhvm 教程中所述,因此在 Debian 上的 apache2 服务器后面运行。
我已经创建了所有内容,但是当我尝试运行我的应用程序时,出现以下错误:
我认为这与 HHVM 中的 PDO 有关,但我使用 class_exists('PDO') 对其进行了测试,并且表示启用了 PDO
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.hdf
在PidFile = /var/run/hhvm/pid
第一行。由于它默认附带 HHVM,因此我不想更改它。我认为sudo是这里的问题。没有 sudo HHVM 将无法运行。Chmod 777'ing pid 文件并指向另一个空文件并不能解决问题。
问题:
将 HHVM 安装为守护程序的正确方法是什么?
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。
php - 使用 Silex 和 HHVM 时请求 basePath 错误
当我调用/api/v1/foo
Silex 时,搜索匹配的路由/api/v1/foo
而不是/foo
. 我该如何解决?
我的 HHVM 配置:
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() 函数,并且不允许在客户端显示回复内容。
有没有其他人看过这个?
这不是我可以设置单元测试的东西,因为它总是通过,因为最终回复中总是有数据:/
任何输入都会很棒 - 我有兴趣了解如何解决这个问题。
谢谢。
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 完成了我想要做的事情,我也可以使用这种方法。
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 慢
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 构建
php - 你会如何从 PHP 迁移到 Hack?
Facebook 引入了一种新的编程语言,它看起来很像 PHP 的扩展。他们称它为Hack,它在他们的 HHVM 引擎上运行。
在查看了他们的网站并阅读了一些相关内容后,我想知道从PHP到Hack的迁移可能会有多流畅。
让我们围绕已经部署到 LEMP 或 LAMP 堆栈的 Web 应用程序展开讨论。
我最初的一些想法和行动清单包括:
- 如何在迁移代码库的过程中同时运行 PHP 和 Hack?
- 从 nginx/Apache 迁移到 HHVM
- 迭代迁移代码库
那么,您将如何处理这个问题?