作曲家安装&使用HHVM 3.14运行composer失败(msg上的错误)

时间:2016-06-29 02:33:16

标签: php laravel composer-php hhvm

我使用过ubuntu 14.04并使用了laravel。 我用hhvm安装了nginx,如下所示:

$ php -v 

HipHop VM 3.14.1 (rel) Compiler: tags/HHVM-3.14.1-0-gd99b370804b7e0234ab794869d1ba1774c848e85 Repo schema: ac0c6851ba5643ce00ae67bbe67c50973efd65d6

我如上所述。然后我尝试在我的主目录上安装composer

$ curl -sS https://getcomposer.org/installer | php 

所有设置都适用于使用Composer

Downloading 1.1.3...
Fatal error: Uncaught TypeError: Argument 1 passed to unserialize() must be an instance of string, null given in /tmp/php-wrap-xpYu3V:586 
Stack trace:

0 (): unserialize()
1 (): __SystemLib\PharArchiveHandler->parsePhar()
2 (): __SystemLib\PharArchiveHandler->__construct()
3 /tmp/php-wrap-xpYu3V(586): Phar->__construct()
4 /tmp/php-wrap-xpYu3V(55): installComposer()
5 /tmp/php-wrap-xpYu3V(13): process()
6 {main}

我得到了这样的错误。

然而,

如果我选择php7.0,并下载作曲家,它将正常工作。 但无论何时我安装hhvm并使用nginx运行它, 它给出了:

$ composer

Fatal error: Uncaught TypeError: Argument 1 passed to unserialize() must be an instance of string, null given in /usr/local/bin/composer:23 Stack trace:

0 (): unserialize()
1 (): __SystemLib\PharArchiveHandler->parsePhar()
2 (): __SystemLib\PharArchiveHandler->__construct()
3 (): Phar->__construct()
4 /usr/local/bin/composer(23): Phar::mapPhar()
5 {main}

有什么想法吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

我想我明白了。

hhve 3.14与php7版本无法正常工作。

我补充说 /etc/hhvm/php.ini中的hhvm.php7.all = true 那给了php7然后它不稳定,如果我用php5使用hhvm,一切正常。只需删除hhvm.php7.all = true,它将转为使用hhvm的php5。

不要过多依赖hhvm + php7选项,有很多基准测试说使用opcache的php7(JIT编译)比hhvm略快。 甚至是laravel,wp和drupal。

与编写器执行相比,hhvm比使用php7慢得多。