我使用过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}
有什么想法吗?
谢谢,
答案 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慢得多。