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.
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
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
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.
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:
git clone git://libvirt.org/libvirt-php
git config --local format.subjectprefix "libvirt-php"
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).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.