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

Wenn man ein einfaches Kundenmanagement mit Abonnementverwaltung und Serveradministration im eigenen Interface benötigt, ist die Plesk XML API die beste Lösung. Dadurch hat man schnell und einfach einen Zugriff auf fast jede Funktion vom Plesk und kann es in sein 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 im Projekt ein.

Hier sehen Sie nun, wie Sie den API-Client 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 den 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 steht hier.

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

 

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

 

Alle XML Referenzen gibt es hier zum nachschlagen.

Einen 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);

Den abgesendeten Request prüfen

Um nun zu überprüfen, ob der Request erfolgreich war, kann man zum Beispiel strpos nutzen. Ansonsten kann man auch mit simpleXML alles in ein Objekt oder Array umwandeln und verarbeiten (Was der deutlich bessere Weg ist! Da dieses Tutorial aber älter ist, wird auch nur das ältere Beispiel genutzt).

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>

 

Den Status können wir jetzt mit einem einfachen strpos abfragen:

 

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

 

 

Alle Möglichkeiten der XML API

Um nun eigene Funktionen zu schreiben, verweise ich auf die sehr gut-dokumentierte Referenz von Plesk. Dort findet man alle Möglichkeiten, die die Plesk API bietet.

Hier finden Sie alle Referenzen

Previous PostPHP Tutorial: Dateiupload mit mehreren Dateien ohne JS
Next PostTYPO3 Snippet: Favicon per TypoScript einbinden