1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.28 $ -->
<refentry xml:id="function.libvirt-connect" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>libvirt_connect</refname>
<refpurpose>Get a connection to the Hypervisor</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>libvirt_connect</methodname>
<methodparam choice="opt"><type>string</type><parameter>url</parameter><initializer>NULL</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>readonly</parameter><initializer>true</initializer></methodparam>
<methodparam choice="opt"><type>array</type><parameter>credentials</parameter><initializer>Array()</initializer></methodparam>
</methodsynopsis>
<para>
This function should be called first to get a connection to the Hypervisor. If necessary, authentication will be performed using supplied credentials.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>url</parameter></term>
<listitem>
<para>
URL of the hypervisor to connect to. Can be for example <userinput>qemu:///system</userinput> or <userinput>qemu+tcp:///system</userinput>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>readonly</parameter></term>
<listitem>
<para>
If &true; (default) connection is made readonly.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>credentials</parameter></term>
<listitem>
<para>
Credentials to authenticate with. See <link linkend="libvirt.connect.authentiaction">authentication</link> for more details.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<!-- See also &return.success; -->
<para>
Returns &false; on failure and connection resource on success. This connection resource must be used for all subsequent calls.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
This function returns errors via PHP E_* error mechanism.
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title >Libvirt version</title>
<para>
Version prior to 0.6.2 are not supported and using phplibvirt with libvirt prior to 0.6.2 will probably cause problems. <function>libvirt_connect</function> will refuse to connect to libvirt daemon if the version is not at least 0.6.2.
</para>
</note>
<note>
<title xml:id="libvirt.connect.authentiaction">Authentication</title>
<para >
You can authenticate to the libvirt daemon in several ways. If you are using policy kit and you are connecting locally, you can set it up to allow nonroot users. Just add to <filename>/etc/PolicyKit/PolicyKit.conf</filename>:
<programlisting role="xml">
<![CDATA[
<match action="org.libvirt.unix.manage">
<match user="httpduser">
<return result="yes"/>
</match>
</match>
]]>
</programlisting>
</para>
<para>If you are connecting to the TCP socket, you need to provide credentials. These credentials must be set beforehand using SASL. See <link xlink:href="http://libvirt.org/auth.html#ACL_server_username">http://libvirt.org/auth.html#ACL_server_username</link> for more details. You can You can specify the creentials as third argument. It is supposed to be an array in form of credential_type=>credential value. In example:
<programlisting role="php">
<![CDATA[
Array(VIR_CRED_AUTHNAME=>"fred",VIR_CRED_PASSPHRASE=>"fred");
]]>
</programlisting>
</para>
</note>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>libvirt_connect</function> example</title>
<para>
This example connects to the hypervisor in various ways.
</para>
<programlisting role="php">
<![CDATA[
<?php
//Anonymous readonly connection
$res1=libvirt_connect("qemu:///system");
print_r($res1); printf ("\n");
//Anonymous read-write connection
$res2=libvirt_connect("qemu:///system",false);
print_r($res2); printf ("\n");
//Read-write connection with authentication
$res3=libvirt_connect("qemu:///system",false,Array(VIR_CRED_AUTHNAME=>"fred",VIR_CRED_PASSPHRASE=>"fred"));
print_r($res3); printf ("\n");
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Resource id #4
Resource id #5
Resource id #6
]]>
</screen>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|