OpenShift HHVM Cartridge
Nginx 1.10.0 with HHVM 3.13.1. Built with the shiny GCC 5.2.0.
Partly based on pinodex/openshift-nginx-php-fpm.
The www root is located in
www folder of your code repository, unless
app.php is detected at the root folder of the repository, in which case the www root will be the root folder.
$ rhc app create appname http://cartreflect-claytondev.rhcloud.com/github/tengyifei/openshift-cartridge-nginx-hhvm $ cd appname $ echo '<?php echo "Hello HHVM " . HHVM_VERSION; ?>' > www/index.php $ git add . $ git commit -m 'Testing' $ git push
On the Web
OpenShift also offers a web-based application launcher workflow. PHP project maintainers can build their own launch buttons using this cart, with
Note: from HHVM version 3.5.0 onwards this cartridge uses INI settings instead of the deprecated HDF. You'll still have to do a manual upgrade to pick up this change.
OpenShift Online has made it next to impossible to update web cartridges unintrusively. Previous methods involved removing the cartridge (therefore the entire app!) and reinstalling it to let OpenShift grab the latest version in the repository.
This cartridge now comes with a script to update HHVM and Nginx binaries without reinstalls necessary. To update your cartridge binaries, simply SSH into it and run
bin/control update from shell:
rhc ssh hhvmtest # In SSH cd nginx-hhvm bin/control update
The HHVM packaged with this cartridge is built directly from the newest released version of HHVM source. Different from the official version, it comes with the experimental Zend Compatibility Layer (enabling many Zend extensions e.g. gettext, oauth) and a GeoIP plug-in.
Place your nginx .conf files inside config/nginx.d/. It will be include()ed from "http" scope.
You may edit the config.ini inside config/hhvm.d/. This configuration file will be loaded by HHVM.