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 165 166 167 168 169 170 171 172 173 174 175 176
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Get a connection to the Hypervisor</title>
</head>
<body><div class="manualnavbar" style="text-align: center;">
<div class="prev" style="text-align: left; float: left;"><a href="ref.libvirt.html">Libvirt Functions</a></div>
<div class="next" style="text-align: right; float: right;"><a href="function.libvirt-domain-block-stats.html">libvirt_domain_block_stats</a></div>
<div class="up"><a href="ref.libvirt.html">Libvirt Functions</a></div>
<div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="function.libvirt-connect" class="refentry">
<div class="refnamediv">
<h1 class="refname">libvirt_connect</h1>
<p class="verinfo">(php-libvirt 0.1)</p><p class="refpurpose"><span class="refname">libvirt_connect</span> — <span class="dc-title">Get a connection to the Hypervisor</span></p>
</div>
<a name="function.libvirt-connect.description"></a><div class="refsect1 description">
<h3 class="title">Description</h3>
<div class="methodsynopsis dc-description">
<span class="type">resource</span> <span class="methodname"><b>libvirt_connect</b></span>
([ <span class="methodparam"><span class="type">string</span> <tt class="parameter">$url</tt><span class="initializer">= NULL</span></span>
[, <span class="methodparam"><span class="type">bool</span> <tt class="parameter">$readonly</tt><span class="initializer">= true</span></span>
[, <span class="methodparam"><span class="type">array</span> <tt class="parameter">$credentials</tt><span class="initializer">= Array()</span></span>
]]] )</div>
<p class="para rdfs-comment">
This function should be called first to get a connection to the Hypervisor. If necessary, authentication will be performed using supplied credentials.
</p>
</div>
<a name="function.libvirt-connect.parameters"></a><div class="refsect1 parameters">
<h3 class="title">Parameters</h3>
<p class="para">
</p><dl>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">url</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
URL of the hypervisor to connect to. Can be for example <strong class="userinput"><code>qemu:///system</code></strong>
or <strong class="userinput"><code>qemu+tcp:///system</code></strong>
.
</p>
</dd>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">readonly</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
If <b><tt class="constant">TRUE</tt></b> (default) connection is made readonly.
</p>
</dd>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">credentials</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
Credentials to authenticate with. See <a href="function.libvirt-connect.html#libvirt.connect.authentiaction" class="link">authentication</a> for more details.
</p>
</dd>
</dl>
<p>
</p>
</div>
<a name="function.libvirt-connect.returnvalues"></a><div class="refsect1 returnvalues">
<h3 class="title">Return Values</h3>
<p class="para">
Returns <b><tt class="constant">FALSE</tt></b> on failure and connection resource on success. This connection resource must be used for all subsequent calls.
</p>
</div>
<a name="function.libvirt-connect.errors"></a><div class="refsect1 errors">
<h3 class="title">Errors/Exceptions</h3>
<p class="para">
This function returns errors via PHP E_* error mechanism.
</p>
</div>
<a name="function.libvirt-connect.notes"></a><div class="refsect1 notes">
<h3 class="title">Notes</h3>
<blockquote><p><b class="note">Note</b>:
<b>Libvirt version</b><br />
Version prior to 0.6.2 are not supported and using phplibvirt with libvirt prior to 0.6.2 will probably cause problems. <b>libvirt_connect()</b> will refuse to connect to libvirt daemon if the version is not at least 0.6.2.
<br />
</p></blockquote>
<blockquote><p><b class="note">Note</b>:
<b>Authentication</b><br />
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 <var class="filename">/etc/PolicyKit/PolicyKit.conf</var>:
</p><div class="example-contents programlisting">
<div class="xmlcode"><pre class="xmlcode"><match action="org.libvirt.unix.manage">
<match user="httpduser">
<return result="yes"/>
</match>
</match></pre>
</div>
</div>
<p>
<br />
If you are connecting to the TCP socket, you need to provide credentials. These credentials must be set beforehand using SASL. See <a href="http://libvirt.org/auth.html#ACL_server_username" class="link external">» http://libvirt.org/auth.html#ACL_server_username</a> 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:
</p><div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
Array(VIR_CRED_AUTHNAME=>"fred",VIR_CRED_PASSPHRASE=>"fred");</span>
</code></div>
</div>
<p>
<br />
</p></blockquote>
</div>
<a name="function.libvirt-connect.examples"></a><div class="refsect1 examples">
<h3 class="title">Examples</h3>
<p class="para">
</p><div class="example">
<p><b>Example #1 <b>libvirt_connect()</b> example</b></p>
<div class="example-contents para"><p>
This example connects to the hypervisor in various ways.
</p></div>
<div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">//Anonymous readonly connection<br /></span><span style="color: #0000BB">$res1</span><span style="color: #007700">=</span><span style="color: #0000BB">libvirt_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"qemu:///system"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$res1</span><span style="color: #007700">); </span><span style="color: #0000BB">printf </span><span style="color: #007700">(</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//Anonymous read-write connection<br /></span><span style="color: #0000BB">$res2</span><span style="color: #007700">=</span><span style="color: #0000BB">libvirt_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"qemu:///system"</span><span style="color: #007700">,</span><span style="color: #0000BB">false</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$res2</span><span style="color: #007700">); </span><span style="color: #0000BB">printf </span><span style="color: #007700">(</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//Read-write connection with authentication<br /></span><span style="color: #0000BB">$res3</span><span style="color: #007700">=</span><span style="color: #0000BB">libvirt_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"qemu:///system"</span><span style="color: #007700">,</span><span style="color: #0000BB">false</span><span style="color: #007700">,Array(</span><span style="color: #0000BB">VIR_CRED_AUTHNAME</span><span style="color: #007700">=></span><span style="color: #DD0000">"fred"</span><span style="color: #007700">,</span><span style="color: #0000BB">VIR_CRED_PASSPHRASE</span><span style="color: #007700">=></span><span style="color: #DD0000">"fred"</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$res3</span><span style="color: #007700">); </span><span style="color: #0000BB">printf </span><span style="color: #007700">(</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
</span>
</code></div>
</div>
<div class="example-contents para"><p>The above example will output
something similar to:</p></div>
<div class="example-contents screen">
<div class="cdata"><pre>
Resource id #4
Resource id #5
Resource id #6
</pre></div>
</div>
</div><p>
</p>
</div>
</div><hr /><div class="manualnavbar" style="text-align: center;">
<div class="prev" style="text-align: left; float: left;"><a href="ref.libvirt.html">Libvirt Functions</a></div>
<div class="next" style="text-align: right; float: right;"><a href="function.libvirt-domain-block-stats.html">libvirt_domain_block_stats</a></div>
<div class="up"><a href="ref.libvirt.html">Libvirt Functions</a></div>
<div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
|