<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Twenty Square Meter &#187; PHP</title>
	<atom:link href="http://www.twentysqm.com/tag/php-programmierung/feed" rel="self" type="application/rss+xml" />
	<link>http://www.twentysqm.com</link>
	<description>Ihr Ansprechpartner für innovative Ideen</description>
	<lastBuildDate>Tue, 04 Oct 2011 18:35:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Webservices (WSDL) mit PHP</title>
		<link>http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=webservices-wsdl-mit-php</link>
		<comments>http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html#comments</comments>
		<pubDate>Thu, 07 Jan 2010 22:37:30 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[webservice]]></category>
		<category><![CDATA[wsdl]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=1015</guid>
		<description><![CDATA[Beim Thema Webservices mit PHP scheiden sich wohl die Geister. Nach dem ich aus aktuellem Anlass einige Bibliotheken getestet habe, bin ich zu sehr unterschiedlichen Erkenntnissen gelangt. Während einige Bibliotheken einen sehr schönen Ansatz haben und dem Gedanken der einfachen Handhabung nachkommen, funktionieren lediglich andere Bibliotheken die nicht unbedingt Benutzerfreundlich aber dafür fehlerfrei agieren können. [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Thema Webservices mit PHP scheiden sich wohl die Geister. Nach dem ich aus aktuellem Anlass einige Bibliotheken getestet habe, bin ich zu sehr unterschiedlichen Erkenntnissen gelangt. Während einige Bibliotheken einen sehr schönen Ansatz haben und dem Gedanken der einfachen Handhabung nachkommen, funktionieren lediglich andere Bibliotheken die nicht unbedingt Benutzerfreundlich aber dafür fehlerfrei agieren können.</p>
<p>Folgende Bibliotheken wurden getestet:</p>
<ul>
<li>PHP2WSDL<sup><a href="http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html#footnote_0_1015" id="identifier_0_1015" class="footnote-link footnote-identifier-link" title=" http://sourceforge.net/projects/php2wsdl ">1</a></sup></li>
<li>WSDLDocument<sup><a href="http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html#footnote_1_1015" id="identifier_1_1015" class="footnote-link footnote-identifier-link" title=" http://code.google.com/p/wsdldocument ">2</a></sup></li>
<li>NuSoap<sup><a href="http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html#footnote_2_1015" id="identifier_2_1015" class="footnote-link footnote-identifier-link" title=" PHP -5: http://sourceforge.net/projects/nusoap
PHP +5: http://code.google.com/p/nusoap-for-php5 ">3</a></sup></li>
</ul>
<p>Positiv hervorzuheben ist, dass jede Bibliothek unter der <a href="http://de.wikipedia.org/wiki/GNU_Lesser_General_Public_License">GNU Lesser General Public License</a> veröffentlicht wurde und somit frei für die eigene und kommerzielle Verwendung zur Verfügung steht.</p>
<p>Ausgangsbasis für alle getesteten Bibliotheken sind die folgenden 3 Klassen. Erstere ist die sogenannte Funktionsklasse. Sie beinhaltet die Klasse und Methoden die als Service zur Verfügung gestellt werden sollen. Als Beispiel wurde eine Klasse aufbereitet, welche die Grundrechenarten zur Verfügung stellt. Als Übergabeparameter werden jeweils zwei Zahlen vom Datentyp <em>float</em> verlangt. Der Rückgabewert ist in diesem Beispiel ebenfalls eine Zahl vom Typ <em>float</em>.</p>
<p><em>Mathematics.class.php</em></p>
<pre class="brush: php; title: ; notranslate">/**
 * Service class documentation.
 */
class Mathematics {

    /**
     * Addition of two numbers.
     *
     * @param float x
     * @param float y
     * @return float
     */
    public function add($x, $y) {
    	return $x + $y;
    }

    /**
     * Subtraction of two numbers.
     *
     * @param float x
     * @param float y
     * @return float
     */
    public function minus($x, $y) {
    	return $x - $y;
    }

    /**
     * Multiply of two numbers.
     *
     * @param float x
     * @param float y
     * @return float
     */
    public function multiply($x, $y) {
    	return $x * $y;
    }

    /**
     * Divide of two numbers.
     *
     * @param float x
     * @param float y
     * @return float
     */
    public function divide($x, $y) {
    	return $x / $y;
    }
}</pre>
<p>Bei der zweiten Klasse handelt es sich um die SoapClient.php. Diese wird als Test-Klasse gesehen und prüft die zu Verfügung stehenden Methoden. Diese muss bei der Verwendung von unterschiedlichen Bibliotheken auch entsprechend abgeändert werden. Aber im großen und ganzen ändert sich nur die URL zur Serverklasse. Ebenfalls kann es nötig sein diverse Bibliotheken vorher einzubinden.</p>
<p><em>ServerSoap.php</em></p>
<pre class="brush: php; title: ; notranslate">&lt;?php

ini_set('soap.wsdl_cache_enabled', &quot;0&quot;);

try {
	// create the client instance
	$client = new SoapClient('http://localhost/SoapServer.php');

	$baseMetrics = array(
		'add' =&gt; '+',
		'minus' =&gt; '-',
		'multiply' =&gt; '*',
		'divide' =&gt; '/'
	);
	$format = '%.2f %s %.2f = %.2f &lt;br /&gt;';

	foreach($baseMetrics as $key =&gt; $value) {
		// call the SOAP method
		$x = random(); $y = random();
		$result = $client-&gt;__soapCall($key, array('x' =&gt; $x, 'y' =&gt; $y));
		printf($format, $x, $value, $y, $result);
	}

} catch (SoapFault $fault) {
	echo '&lt;h2&gt;Fault&lt;/h2&gt;&lt;pre&gt;';
	print_r($fault);
	echo '&lt;/pre&gt;';
}

// seed with microseconds
function random() {
   list($usec, $sec) = explode(' ', microtime());
   mt_srand((float) $sec + ( (float) $usec * 100000));
   return mt_rand(1,9) / pi();
}

/*
echo 'Request: &lt;xmp&gt;'.$client-&gt;request.'&lt;/xmp&gt;';
echo 'Response: &lt;xmp&gt;'.$client-&gt;response.'&lt;/xmp&gt;';
echo 'Debug log: &lt;pre&gt;'.$client-&gt;debug_str.'&lt;/pre&gt;';
*/
?&gt;</pre>
<p>Die ServerSoap-Klasse soll an dieser Stelle nur grob erklärt werden. Beginnend mit einem <em>ini_set</em> wird die Cache-Funktion von Soap außer Kraft gesetzt. Zu Testzwecken ist dies zwingend erforderlich. Im Produktiveinsatz muss diese dann nicht mehr initiiert werden. Innerhalb einer try-catch Anweisung wird der eigentliche Prozess abgearbeitet. Hierfür wird ein SoapClient initialisiert, welche als erstes Argument die URL vom SoapServer trägt. Ab dem zweiten Argument wird ein Array mit Optionen erwartet, auf die an dieser Stelle aber nicht weiter eingegangen wird. In einem ersten Array werden alle Funktionsnamen festgehalten die getestet werden sollen. Dabei handelt es sich um die Grundrechenarten aus der <em>Mathematics.class.php</em>. Diese werden nach einander abgearbeitet. Mit dem client-Objekt wird ein sogenannter <em>__soapCall</em> gestartet. Das erste Argument trägt den Namen der Methode. Das zweite Argument trägt ein Array mit den jeweiligen Übergabeparametern die verarbeitet werden sollen. Abschließend ist nur noch zu sagen das die Zahlen, zum testen der Methoden, zufällig generiert werden. Hierfür wurde eine eigene random-Methode implementiert. Für fanatische Debugger wurde ganz zum Schluss dieser Klasse einige Ausgaben getätigt. Hier nun auskommentiert, da diese nicht mit jeder Bibliothek kompatibel sind.</p>
<p>Allgemein wird für jede Grundrechenart ein Request gestartet. Und in Form einer Gleichung auf dem Bildschirm ausgegeben. Die Rückgabe stellt das Ergebnis der jeweiligen Gleichung dar. Wie es nun mit den jeweiligen SoapServern aussieht, wird mit den folgenden, getesteten Bibliotheken erklärt.</p>
<p><strong>PHP2WSDL</strong></p>
<p>Dieses doch recht junge Projekt wurde vom Rumänen <a href="http://www.protung.ro/">Dragos Protung</a> veröffentlicht. Eine recht schlanke Bibliothek mit gerade mal 3 Bibliotheksklassen, ermöglicht es dem Anwender, aus einer bestehenden und dokumentierten PHP-Klasse ein WSDL-Dokument zu generieren. Der dahinter stehende Gedanke bezieht sich auf die Arbeitserleichterung, der zu registrierenden Klassen und Methoden. Bei der Verwendung dieser Bibliothek entfallen diese Schritte. Der Anwender hat lediglich eine wohl dokumentiere PHP-Klasse vorzulegen und muss sich um nichts anderes mehr kümmern.</p>
<p>So schön dies auch klingen mag, birgt diese Bibliothek, in der Version 1.0, eine schier von Formfehlern. So muss bereits bei der ersten Verwendung kleinere Anpassung an den Sourcen vorgenommen werden. Auch die automatische Generierung von Variablen läuft nicht fehlerfrei ab. So werden zum Beispiel an den bereits verwendeten Variablen, einer Methode in einer Klasse, fortlaufende Zahlen angehängt. Das ist natürlich unvorteilhaft, wenn das Script selbst die Dokumentationsvariablen und die Übergabeparameter der Methode vergleicht und dementsprechende Datentypen zuweist. Diese werden beim Anhängen von fortlaufenden Zahlen nicht mehr richtig erkannt und erhalten einen unbekannten Datentyp im WSDL-Dokument.</p>
<p>Zum aktuellen Zeitpunkt (Januar 2010) ist im hauseigenen Supportforum nachzulesen das der Entwickler an der nächsten Version (2.0) arbeitet, die solche Fehler einerseits beseitigen soll und neue Features und Unterstützungen für die Dokumentation und Datentypen von PHP bereit halten soll. Es bleibt abzuwarten ob hieraus noch was werden wird, da diese Meldung bereits mehrere Monate alt ist.</p>
<p>So, oder so ähnlich kann diesbezüglich die SoapServer-Klasse aussehen. Eine vernüftige Dokumentation habe ich leider nicht gefunden. Daher habe ich auskommentierte Funktionsaufrufe im folgendem Beispiel belassen. Die Pfade sind dementsprechend abzuändern.</p>
<p><em>SoapServer.php</em></p>
<pre class="brush: php; title: ; notranslate">&lt;?php

ini_set('soap.wsdl_cache_enabled', &quot;0&quot;);

require_once(&quot;../WSDLCreator.php&quot;);
//header(&quot;Content-Type: application/xml&quot;);

$test = new WSDLCreator(&quot;Mathematics&quot;, &quot;http://localhost/php2wsdl/SoapServer.php&quot;);
//$test-&gt;includeMethodsDocumentation(false);

$test-&gt;addFile(Mathematics.class.php&quot;);
$test-&gt;setClassesGeneralURL(&quot;http://localhost/php2wsdl/example&quot;);

$test-&gt;addURLToClass(&quot;Mathematics&quot;, &quot;http://localhost/php2wsdl/Mathematics.class.php&quot;);
$test-&gt;addURLToTypens(&quot;XMLCreator&quot;, &quot;http://localhost/php2wsdl&quot;);

$test-&gt;createWSDL();

$test-&gt;printWSDL(true); // print with headers
//print $test-&gt;getWSDL();
//$test-&gt;downloadWSDL();
//$test-&gt;saveWSDL(dirname(__FILE__).&quot;/test.wsdl&quot;, false);
?&gt;</pre>
<p>Ein unbestreitbarer Vorteil ist die einfache Integrierung von mehreren Dateien und Klassen. Es muss lediglich mittelst <em>addFile</em> eine neue Funktionsbibliothek hinzugefügt werden. Der Rest wird vom Script selbst erledigt. Aus den bereits genannten Nachteilen kommt beschwerend hinzu das ich mittelst dieser Bibliothek noch nie ein Response erhalten habe. Dieser war bisher immer NULL.</p>
<p><strong>WSDLDocument</strong></p>
<p>Bei dieser Bibliothek handelt es sich lediglich um eine Bibliothek die ein WSDL-Dokument generiert. Es verfolgt den gleichen Gedanken wie die PHP2WSDL-Bibliothek. Nur mit dem gravierenden Unterschied das diese fehlerfrei funktioniert. Datentypen werden aus der Dokumentation richtig erkannt und in einem WSDL-Dokument aufbereitet. Wie auch beim Vorgänger sind hier ebenfalls Komplexe Datentypen möglich. Dazu gehören unter anderem verschachtelte Arrays. Die Einbindung des Scripts, habe ich einfachshalber gleich in der Funktionsklasse Mathematics erledigt. Dazu ist folgender Quellcode in der Klasse Mathematics.class.php unterzubringen. Beim Aufruf erhält man dann das WSDL-Dokument.</p>
<pre class="brush: php; title: ; notranslate">header (&quot;content-type: text/xml&quot;);
require_once('WSDLDocument.php');
$wsdl = new WSDLDocument('Mathematics','urn:Mathematics');
echo $wsdl-&gt;saveXML();</pre>
<p>Dennoch sei gesagt, das dieses Dokument nach einer alten Spezifikation arbeitet. Eine entsprechende Anpassung ist aber relativ zügig realisiert. Was leider nicht funktioniert ist die Ansteuerung des Service selbst. Es wird hierbei wirklich nur ein XML-Dokument ausgegeben.</p>
<p><strong>NuSoap</strong></p>
<p>Nicht Perfekt, aber eine der am erfolgreichsten getesteten Bibliotheken, ist NuSoap. Diese kommt mit einer relativen großen Anzahl an Klassen daher und realisiert das generieren von WSDL-Dokumenten. Leider wird hier nicht der Gedanke des Parsens von PHP-Klassen verfolgt. Wie es von PHP-Soap bereits bekannt ist, müssen Methoden registriert und zusätzlich in der ServerSoap geschrieben werden. Da man dies eigentlich nur einmal macht, kann man diesen Mehraufwand allerdings vernachlässigen. Eine <em>Mathematics.class.php</em> wird hierbei nicht benötigt.</p>
<p><em>SoapServer.php</em></p>
<pre class="brush: php; title: ; notranslate">&lt;?php
// Pull in the NuSOAP code
require_once('lib/nusoap.php');
// Create the server instance
$server = new soap_server();
// Initialize WSDL support
$server-&gt;configureWSDL('Mathematics', 'urn:Mathematics');
// Register the method to expose
$server-&gt;register('add',
	array('x' =&gt; 'xsd:float', 'y' =&gt; 'xsd:float'),
	array('return' =&gt; 'xsd:float'),
	'urn:Mathematics',
	'urn:Mathematics#add',
	'rpc', 'encoded', 'Addition of two numbers.');
$server-&gt;register('minus',
	array('x' =&gt; 'xsd:float', 'y' =&gt; 'xsd:float'),
	array('return' =&gt; 'xsd:float'),
	'urn:Mathematics',
	'urn:Mathematics#minus',
	'rpc', 'encoded', 'Subtraction of two numbers.');
$server-&gt;register('multiply',
	array('x' =&gt; 'xsd:float', 'y' =&gt; 'xsd:float'),
	array('return' =&gt; 'xsd:float'),
	'urn:Mathematics',
	'urn:Mathematics#multiply',
	'rpc', 'encoded', 'Multiply of two numbers.');
$server-&gt;register('divide',
	array('x' =&gt; 'xsd:float', 'y' =&gt; 'xsd:float'),
	array('return' =&gt; 'xsd:float'),
	'urn:Mathematics',
	'urn:Mathematics#divide',
	'rpc', 'encoded', 'Divide of two numbers.');
// Define the method as a PHP function
function add($x, $y) { return ($x + $y); }
function minus($x, $y) { return ($x - $y); }
function multiply($x, $y) { return ($x * $y); }
function divide($x, $y) { return ($x / $y); }
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server-&gt;service($HTTP_RAW_POST_DATA);
?&gt;</pre>
<p>Wie man sieht, ist die Server-Klasse etwas größer geraten, als die bisherigen Methoden. Das WSDL-Dokument, wird ohne Frage richtig generiert. Ein Abzug in der B-Note gibt es für die doppelte Definierung der Methoden. Einmal für die Registrierung für den SoapServer und die eigentliche Bereitstellung. Ebenfalls zu beachten ist die Einbindung der <em>nusoap.php</em>-Bibliothek die hierbei in einem Unterordner namens <em>lib</em> liegt.</p>
<p><a href="http://www.twentysqm.com/wp-content/uploads/2010/01/NuSOAP-Mathematics-doc.png"><img src="http://www.twentysqm.com/wp-content/uploads/2010/01/NuSOAP-Mathematics-doc-300x188.png" alt="" title="NuSOAP-Mathematics-doc" width="300" height="188" class="alignnone size-medium wp-image-1050" /></a></p>
<p>Ein großer Pluspunkt ist die Aufbereitung einer „Startseite” des SoapServers. Grafisch, mittelst CSS, werden alle Funktionen und dessen registrierte Dokumentation angezeigt. Ein wirklich tolles Feature, was vielleicht die generelle Dokumntation abnehmen kann. Das eigentliche WSDL-Dokument lässt sich mit dem Paramater „?wsdl” erreichen und muss auch die URL beim SoapClient sein.</p>
<p>Diese Bibliothek wurde als erste vollständig und fehlerfrei getestet und ist somit auch für den allgemeinen Einsatz zu empfehlen. Schade nur das es keine Generierung aus der PHP-Dokumentation ermöglicht. Aber was nicht ist kann ja noch werden.</p>
<p><strong>Fazit</strong></p>
<p>NuSoap hat sich herausragend geschlagen. Mit einem kleinen Mehraufwand, Methoden zu registrieren und zusätzlich zu beschreiben, erledigt es die Aufgabe der Generierung des WSDL-Dokuments und die Abfrage der Services sehr gewissenhaft und konnte keine Fehler in der Verarbeitung vorweisen. Für Beginner eigenen sich dennoch Bibliotheken wie PHP2WSDL und WSDLDocument. Um ein Gefühl für die Materie zu erhalten sollte man sich auch vorher mit dem eigentlichen Aufbau von WSDL-Dokumenten beschäftigt haben.</p>
<ol class="footnotes"><li id="footnote_0_1015" class="footnote"> <a href="http://sourceforge.net/projects/php2wsdl/">http://sourceforge.net/projects/php2wsdl</a> </li><li id="footnote_1_1015" class="footnote"> <a href="http://code.google.com/p/wsdldocument">http://code.google.com/p/wsdldocument</a> </li><li id="footnote_2_1015" class="footnote"> PHP -5: <a href="http://sourceforge.net/projects/nusoap">http://sourceforge.net/projects/nusoap</a><br />
PHP +5: <a href="http://code.google.com/p/nusoap-for-php5">http://code.google.com/p/nusoap-for-php5</a> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Anleitung: PHP Subversion Extension mit PECL</title>
		<link>http://www.twentysqm.com/2009-05-19/installation-von-pecl-subversion-extension.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installation-von-pecl-subversion-extension</link>
		<comments>http://www.twentysqm.com/2009-05-19/installation-von-pecl-subversion-extension.html#comments</comments>
		<pubDate>Tue, 19 May 2009 16:36:03 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Linux / Unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=653</guid>
		<description><![CDATA[Um sich einen Überblick zu verschaffen, was diese Bibliothek leisten kann, gibt es auf http://php.oregonstate.edu/manual/en/ref.svn.php eine Referenz. In groben zügen kann man diese Extension für das Versionskontrollsystem SVN auf PHP Basis nutzen. Hier gibt es eine Anleitung wie man diese Bibliothek auf einem Debian/Ubuntu System installieren und nutzen kann. sudo apt-get -y install libsvn-dev php-pear [...]]]></description>
			<content:encoded><![CDATA[<p>Um sich einen Überblick zu verschaffen, was diese Bibliothek leisten kann, gibt es auf <a href="http://php.oregonstate.edu/manual/en/ref.svn.php">http://php.oregonstate.edu/manual/en/ref.svn.php</a> eine Referenz. In groben zügen kann man diese Extension für das Versionskontrollsystem SVN auf PHP Basis nutzen. Hier gibt es eine Anleitung wie man diese Bibliothek auf einem Debian/Ubuntu System installieren und nutzen kann.</p>
<p><code>sudo apt-get -y install libsvn-dev php-pear php5-dev<br />
sudo apt-get -y install build-essential</code></p>
<p>Das Paket libsvn-dev stellt die nötigen Sources bereit die kompiliert werden müssen. Die Pakete php-pear und php5-dev sind für den Einsatz von PECL nötig um die automatische Installation zu realisieren. Letzteres Paket ist ein c - Compiler um die zuvor genannten Sources bauen zu können.</p>
<p><code>pear upgrade PEAR</code><br />
<code>pecl install -f svn</code></p>
<p>Bei manchen Paketen empfiehlt es sich, vor der eigentlichen Installation, ein PEAR Upgrade durchzuführen. Der PECL-Befehl, welcher mit php5-dev mitgeliefert wird, führt dann ein Script aus, um die SVN Extension zu kompilieren und in die lokale PHP-Version zu integrieren. Zum Schluss wird in der jeweiligen php.ini ein Eintrag fällig, um die SVN Extension letztendlich auch nutzen zu können.</p>
<p><code>extension=svn.so</code></p>
<p>Nun lässt sich über PHP diese Bibliothek im vollen Umfang nutzen. Hier noch ein Beispiel:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
echo svn_update(realpath('working-copy'));
?&gt;</pre>
<p>Diese Extension ist bis einschließlich PHP6 nutzbar. Genaueres erfährt man über die Entwicklerseite.</p>
<p>[Update - 27. August 2009]</p>
<p>Im laufe der Kompelierung der SVN Extension können, vor allem auf einem recht jungen und frischem System, einige Fehler auftreten, welche durch fehlende Pakete resultieren. Hierbei kann unter anderem nach dem Paket -sasl2 und -lneon-gnutls gefragt werden. Um diese Pakete nachzuinstallieren sind jedeglich folgende Schritte nötig:</p>
<p><code>apt-cache search sasl2<br />
sudo apt-get install libsasl2-dev libsasl2-modules-ldap</code></p>
<p>Und für das zweite Paket:</p>
<p><code>apt-cache search neon gnutls<br />
sudo apt-get install libneon27-gnutls-dev</code></p>
<p>Danach sollte der pecl-Befehl erneut ausgeführt werden und mit einem „Build process completed successfully” enden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-05-19/installation-von-pecl-subversion-extension.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

