Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Packaging of unmodified PHP 5.6.18 for rumprun.



None required.


The build script also requires genisoimage in order to build the ISO image for /data.

Run make:


Bake the final unikernel images:

rumprun-bake xen_pv bin/php-cgi.bin bin/php-cgi
rumprun-bake xen_pv bin/phpi.bin bin/php

(Replace xen_pv with the platform you are baking for.)


Running a standalone PHP unikernel

PHP includes a built-in webserver for development and testing. You can use this to run a standalone PHP unikernel with no need for Nginx.

rumprun xen -di -M 128 \
    -I net1,xenif -W net1,inet,static, \
    -b ../images/data.iso,/data \
    -- ../bin/php.bin -S -t /data/www

Note that this is not intended for production use, for that you will want a setup using FastCGI, see below. The above script is also included as examples/

Running a nginx + PHP demo

(TODO: Someone should write up this example for KVM)

To run a full demo stack consisting of an nginx unikernel talking over FastCGI to a PHP unikernel:

You will need a working Xen network set up, and two IP addresses for the demo. One will be used by the Xen domU running the HTTP server, the other by the domU running PHP serving FastCGI.

  1. Build the nginx unikernel (packaged as ../nginx).
  2. Edit examples/ and examples/, replacing the IP addresses used as appropriate.
  3. Edit images/data/conf/nginx.conf replacing the IP address in fastcgi_pass to match the IP you will use for the PHP domU.
  4. Rebuild the data.img file (run make).
  5. As root on your Xen dom0, run ./ in one window and ./ in another.
  6. Browse to http://<nginx_ip>/.
You can’t perform that action at this time.