Plesk + PHP – XML API konfigurieren und nutzen


Dieses kleine Tutorial zeigt Ihnen, wie Sie schnell und einfach die XML API von Plesk mit PHP nutzen können.

Wenn Sie ein einfaches Kundenmanagement mit Abonnementverwaltung und Serveradministration in einem eigenen Interface benötigen, ist die Plesk XML API die beste Lösung. Dadurch haben Sie schnell und einfach einen Zugriff auf „sogutwie“ jede Funktion vom Plesk und können es in Ihr eigenes System via PHP einbinden.

Vorbereitung

Bevor wir anfangen können müssen Sie eine PHP Datei in Ihr Projekt einfügen. Laden Sie sich die neuste Version der PleskApiClient.php von Github herunter und fügen sie diese in Ihrem Projekt ein.

Hier sehen Sie nun, wie Sie den ApiClient aufrufen. Ich habe dazu eine kleine Funktion geschrieben, die alles noch ein bisschen einfacher machen sollte:

function plesk_api_call($request)
{
	$host = '<HOST>';
	$login = '<USER>';
	$password = '<PASSWORT>';
	
	require 'PleskApiClient.php';
	
	$client = new PleskApiClient($host);
	$client->setCredentials($login, $password);
	
	$response = $client->request($request);
	return $response;	
}

Ändern Sie Host, Login und Passwort auf Ihre Plesk Zugangsdaten. Der Host ist die IP Adresse oder Domain auf der das Plesk System läuft. Der Login ist Ihr Username. In den meisten Fällen lautet er einfach „admin“ und das Passwort ist das Administrator-Passwort.

Alternativ können Sie die Validierung im PleskApiClient auch mit einem Secret-Key machen. Wie das geht sehen Sie hier.

Nun sind wir bereit unsere erste Anfrage zu erstellen. Wie der Name schon sagt, müssen Sie einen XML-Request erstellen. Dieser sieht oft so aus:

<packet>
  <name>
    ...
  </name>
</packet>

Sie finden alle XML Referenzen hier.

Request erstellen

Für dieses Beispiel möchte ich in Plesk einen Kunden erstellen, welcher mit Email, Vorname, Nachname, usw. angelegt werden soll. Hierfür nutze ich meine oben erstellte Funktion:

$request = '<packet version="1.6.7.0">
		<customer>
			<add>
				<gen_info>
					<pname>Max Mustermann</pname>
					<login>maxmuster123</login>
					<passwd>sicher3sPW11!</passwd>
					<status>0</status>
					<email>max@muster.org</email>
					<address>Musterweg 2</address>
					<city>Musterhausen</city>
					<pcode>33333</pcode>
					<country>DE</country>
				</gen_info>
			</add>
		</customer>
	</packet>';

$get = plesk_api_call($request);

Request prüfen

Um nun zu überprüfen, ob der Request erfolgreich war, können Sie zum Beispiel „strpos“ nutzen. Jeder Request antwortet nämlich auch mit einer XML Nachricht. Diese kann so aussehen:

<packet version="1.6.7.0">
	<customer>
		<add>
			<result>
				<status>ok</status>
				<id>3</id>
				<guid>####</guid>
			</result>
		</add>
	</customer>
</packet>

Sie sehen also, dass wir einen Status zurückbekommen. Diesen können wir jetzt ganz einfach auf „ok“ abfragen. Jede Antwort wird nämlich mit einem „ok“ oder „failed“ zurückgegeben.

Hier ist ein Beispiel mit der PHP Funktion strpos:

if (strpos($get, '<status>ok</status>') !== false) 
{
   echo "Hat geklappt!";
}
else
{
   echo "Fehler..";
}

Alle Möglichkeiten

Um nun eigene Funktionen zu schreiben, verweise ich auf die sehr gut dokumentierte Referenz von Plesk. Dort finden Sie alle Möglichkeiten, die die Plesk API bietet. Hier finden Sie alle Referenzen…

Copyright Hinweise: plesk Logo (c) Plesk


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.