Edited at

HipHopVM(HHVM)のPHP7モード

More than 3 years have passed since last update.

HHVMは3.11のリリースから、PHP7モードを備えるようになったそうな。

PHP 7 Support « HHVM

試してみるぞ。


PHP7モード設定

設定項目の案内はこちら。

Configuration: INI Settings #php-7-settings

とりあえず有効にしてみるなら、hhvm.php7.all = 1 で良いっしょ。


WordPressとAmazon Linuxで試してみる

HHVMは毎度自分でビルドして、AmazonLinux用のRPMを作っている。 ビルドの内訳はこちら。 => OpsRockin/hhvm-for-amazon-linux

これをインストール済AMIがあるので、起動する。

WordPress Powered by AMIMOTO (HHVM)

      ___         _            __

/ _ | __ _ (_)_ _ ___ / /____
/ __ |/ ' \/ / ' \/ _ \/ __/ _ \
/_/ |_/_/_/_/_/_/_/_/\___/\__/\___/

https://aws.amazon.com/amazon-linux-ami/2015.09-release-notes/

Nginx 1.9.12, HHVM 3.12.1, Percona MySQL 5.6.29, WP-CLI 0.22.0

amimoto http://www.amimoto-ami.com/
digitalcube https://en.digitalcube.jp/

うむ、3.12.1が入ってる。PHP7モードを有効にするため、/etc/hhvm/server.iniを編集。


/etc/hhvm/server.ini

...

hhvm.php7.all = true

...


コンパイルされたバイナリを消しつつ、リスタートしよう。

$ sudo service hhvm stop

$ sudo rm -f /tmp/.hhvm.hhbc
$ sudo service hhvm start

このあとシステムの情報をチェックすれば、PHPバージョンが7.0.99-hhvmになっている。

## Server Environment ##

Server Info: nginx/1.9.12
Host: DBH: localhost, SRV: _
Default Timezone: UTC
MySQL Version: 5.6.29-76.2-log

-- PHP Configuration

PHP Version: 7.0.99-hhvm
PHP Post Max Size:
PHP Time Limit: 0
PHP Max Input Vars:
PHP Safe Mode: No
PHP Memory Limit: 256M
PHP Upload Max Size:
PHP Upload Max Filesize:
PHP Arg Separator: &
PHP Allow URL File Open: Yes


WordPress的に注意するとこ

基本的には動くんだけど、気になる点があったのでメモ。


  • /var/log/hhvm/error.log に、わんさかと型のWarningがでる。


    • ちょっと厳密にチェックするようにしたせいかしらね。

    • ex: Warning: version_compare() expects parameter 1 to be string,

    • ex: Warning: setcookie() expects parameter 5 to be string,



  • 管理画面から新規プラグインが探せない(w


    • 多分PHPバージョンが7.0.99-hhvmを返すからかな?下記画像のように止まる。



Add_Plugins_‹_HHVM_mode_php7_—_WordPress.jpg

このあたりはそのうち調整されそう。