PHP API bindings

Presentation

The libvirt-php, originally called php-libvirt, is the PHP API bindings for the libvirt virtualization toolkit originally developed by Radek Hladik but currently maintained by Red Hat.

Getting the source

The PHP bindings code source is now maintained in a git repository available on libvirt.org:

git clone git://libvirt.org/libvirt-php.git

It can also be browsed at

http://libvirt.org/git/?p=libvirt-php.git;a=summary

Building

The code is using autotools to generate the files necessary for compilation. The preferred way of building is to run autogen.sh to generate configure script and then go on with the standard linux make commands, i.e.

$ cd libvirt-php
$ ./autogen.sh
$ make

Enabling the module in PHP

Before you start using the module you have to install the module first. The module php_libvirt.so is being generated when you compile it. This is necessary to be loaded in the extensions sections of php.ini file for PHP version older than PHP-5.

Starting with PHP-5 you can create a file called libvirt.ini in /etc/php.d having just one line extension=php_libvirt.so to enable the extension. Of course, you need to have this module copied in the directory with the rest of your PHP modules to make PHP find the module for you.

If you're using PHP as a module (mod_php5.so) in the Apache webserver you need to restart your Apache to trigger configuration reload for PHP.

If you're not sure that you have everything set up right and you don't want to restart your Apache webserver before you're sure everything will be working fine you could try running the test using cli-based PHP interpreter. There are some example scripts coming along the source codes in the example subdirectory so you can try to run php on the index.php script to check whether it's working fine to establish connection or not.

When you're having some issues with the connection make sure the apache user is having access to libvirt. For more information please see Libvirt access control page.

Contribution

If you would like to contribute to the libvirt-php project you could write patches for it but please make sure you're following the procedure below:

  1. Sign up to libvirt list if you're not on it yet (libvir-list@redhat.com)
  2. Clone the repository from libvirt.org site using:
    git clone git://libvirt.org/libvirt-php
  3. Set your git username and e-mail and also set the subject prefix in the project's repository using:
    git config --local format.subjectprefix "libvirt-php"
  4. Create the patch in the form of the commits and include also information about usage (example source codes maybe) and testing
  5. Format it using git format-patch -X where X is the number of patch parts to be posted, for multipart patch (X is greater than 1) please use also numbering (-n) option and include the cover-letter (--cover-letter).
  6. Send to libvir-list@redhat.com using the git send-email <files> --to libvir-list@redhat.com command where <files> can be 000* to send all the patches formatted by git format-patch since git format-patch names the files starting with the 4 digit numbers.
When you send the patch you're patch will be reviewed and later committed to the libvirt-php repository. You'll be contacted in case some flaws are found during the review.