[CLOSE] Plesk Automation Modul
- Steve Wonderz
- Erledigt
Aktuell führen wir noch einige Anpassungen durch, das Forum wurde jedoch bereits live geschaltet.
-
-
Hab jetzt gerade noch die Datenbanklasse verbessert hier ein kleiner Snippet,.
Sollten Fehler im Plesk-Modul auftauchen, kann man im Ordner /classes/Database/class.pdo.config.php das $dbconnect->debug(true); auf true setzen und alle Fehler werden angezeigt.
Zumdem habe ich noch viele Fehler im Plesk Modul behoben, sowie im Adminbereich auch als im Kundenbereich.
@Danke nochmal an Celltek für das Testen und das du mir die Bugs übermittlet hast die jetzt fast behoben sind.PHP
Alles anzeigen<?php class Database extends PDO { private $hostname; private $username; private $password; private $db; private $dbconnect; private $query; public function __construct($hostname, $username, $password, $db){ $this->hostname = $hostname; $this->username = $username; $this->password = $password; $this->db = $db; } public function debug($debug) { if(is_bool($debug)) { if($debug == true) { ini_set('display_errors', 1); error_reporting(E_ALL); } else { ini_set('display_errors', 0); error_reporting(0); } } else { exit; } } public function connectDB(){ try { $this->dbconnect = new PDO('mysql:host='.$this->hostname.';dbname='.$this->db.'', $this->username, $this->password); }catch(PDOException $ex){ die("<center><h3>PDO-Error: ".$ex->getMessage()."</center></h3>"); } } public function RunQuery($querydata){ $this->query = $this->dbconnect->query($querydata); if (!$this->query) { die(print_r($this->dbconnect->errorInfo())); } return $this->query; } public function NumRows(){ return $this->query->rowCount(); } public function FetchAssoc(){ return $this->query->fetch(PDO::FETCH_ASSOC); } public function Escape($quote){ return $this->dbconnect->quote($quote); } public function HtmlEscape($escape){ return htmlspecialchars($escape); } } ?>
-
Bugfixxes-Adminbereich:
- Abstand in der Navigation behoben.
- Nodes bearbeiten programmiert
- Debugmode / true / false in der Config einstellbar.
- Nodename anklicken (Detailansicht war ein Bug laut Celltek, hat bei mir aber immer ohne Probs funktioniert deswegen unverändert).
Bugfixxes-Kundenbereich:
- Daran wird zurzeit gearbeitet.
- Update wird dann im Thread hier gepostet.
Screen: -
Bugfixxes:
Kundenbereich:- Ist man in der Ãœbersicht (members.php?op=membersplesk) und klick auf das Plesk-Logo ist die Verlinkung > members.php?op=membersVoicesop&ids=XX
- Wenn man auf "MySQL Datenbank-Verwalten" klick kommt auf die Seite der Datenbank Benutzer, hier wäre eine übersicht der Datenbanken besser.
- Wenn man auf das Zahnrad klick "Plesk-Verwaltung" bleibt man auf der Ãœbersichtsseite, sprich keine Funktion.
- Emails: Bearbeiten von Email und das Icon "Webmail" mit target="_blank" (neuer Tab) hinzufügen.- Ãœbersicht unter dem Domainnamen steht "Plesk Login" dort nimmt der die IP von der Domain, hier sollte man beim Node einstellen können die URL als Login wegen HTTPS Zertifikat außer du ändern die Links auf den Port 8880 dieser wäre ohne HTTPS.
Adminbereich:- Nodes kann man nicht bearbeiten. (Kann man jetzt unter Detailansicht + Webmailurl/Pleskpanelurl).
- Bei weitere Module ist ne große lücke oben und unten (siehe Bild: abstand.jpg)
- Nodesübersicht: Plesknodename kann man anklicken hat jedoch keine Funktion.
Update ist fertig:
Link: http://tekbase.gti7.de/pleskupdate.rar
Die Tabelle plesk_nodes komplett ersetzen + die Dateien die im Ordner sind.
Liebe Grüsse. -
Verbesserungswünsche gerne gesehen!
Liebe Grüsse. -
Hallo Stefan,
tolles Modul erstmal vorweg. Ist es denn mittlerweile so ausgereift, dass man es problemslos für Kunden live zur Verfügung stellen kann? -
Zitat von GSXH.de
Hallo Stefan,
tolles Modul erstmal vorweg. Ist es denn mittlerweile so ausgereift, dass man es problemslos für Kunden live zur Verfügung stellen kann?
Bugs waren vorhanden sind aber mittlerweile beseitigt sollte also kein Problem darstellen.
Du kannst es auch mal zuerst testen, und dann entscheiden für deine Kunden so machen es die meisten.
Liebe Grüsse Stefan. -
Wenn ich auf admin.php?op=adminplesknodeskundencreate bin, kommt bei mir nur ne weiße Seite. Habe den Node vorher angelegt.
Eine Beschreibung wie ich bestehende Abos von Plesk einem Kunden zuweise, wäre auch gut -
Zitat von GSXH.de
Wenn ich auf admin.php?op=adminplesknodeskundencreate bin, kommt bei mir nur ne weiße Seite. Habe den Node vorher angelegt.
Eine Beschreibung wie ich bestehende Abos von Plesk einem Kunden zuweise, wäre auch gut
Hab den Fehler behoben, war anscheinend ein Rechtschreibefehler in der inc. Datei hab dir das Modul neu gepackt: http://tekbase.gti7.de/plesk.zip
Indem du auf die Kundenverwaltung gehst und denn Kunden auswählst steht bei den importierten Subscriptions 'Dieses Packet einem Tekbase Kunden zuweisen'
Liebe Grüsse Stefan -
Ich hab gar keine Kunden-Verwaltung da oben. Nur diese drei Auswahlmöglichkeiten mit Nodes... Siehe hier: http://puu.sh/cD0Sx/b1e27a5279.png
Und wenn ich auf Plesk-Kunde verwalten oder Detailansicht klicke, werde ich immer weitergeleitet, weil ja noch nichts angelegt ist.
Irgendwo muss ein Fehler sein, deshalb auch die eine weiße Seite bei Kunden erstellen. -
Zitat von GSXH.de
Ich hab gar keine Kunden-Verwaltung da oben. Nur diese drei Auswahlmöglichkeiten mit Nodes... Siehe hier: http://puu.sh/cD0Sx/b1e27a5279.png
Und wenn ich auf Plesk-Kunde verwalten oder Detailansicht klicke, werde ich immer weitergeleitet, weil ja noch nichts angelegt ist.
Irgendwo muss ein Fehler sein, deshalb auch die eine weiße Seite bei Kunden erstellen.
Ja das sieht mir so aus als ob Plesk ein Error ausspuckt (deswegen die Weisse Seite = Scriptabruch).
Welche Plesk-Version hast du auf deinen Nodes?
Detailansicht/Kunden erstellen kannst du nur mit einem Parameter aufrufen, deswegen über die Nodeverwaltung/Kundenverwaltung direkt zugreifen.
Liebe Grüsse. -
12.0.18 Update #22.
Noch eine Zusatzfrage: Muss man den Plesk-Link folgendermaßen reinschreiben? Also mit https und Port? https://domain.de:8443 -
Zitat von GSXH.de
12.0.18 Update #22.
Noch eine Zusatzfrage: Muss man den Plesk-Link folgendermaßen reinschreiben? Also mit https und Port? https://domain.de:8443
Das mit dem Link ist korrekt, das ist kommisch du könntest mal die API debuggen lassen
Geh mal in den Ordner > templates/plesknode/plesknodes.php und ersetzt das mal mit dem:PHP
Alles anzeigen<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Teamspeak-Modul</title> <meta name="generator" content="server-verleih" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> <style type="text/css"> header { margin-bottom:30px; } h2 { margin-top:-23px; } label { display: inline-block; width: 5em; } </style> </head> <body> <script type="text/javascript"> $(document).ready(function(){ $(".pleskservercpuusage").popover({ html: true, trigger: 'focus', show: 500, hide: 100 }); $(".pleskserverstatus").popover({ html: true, trigger: 'focus', show: 500, hide: 100 }); }); </script> <div class="container"> <ul class="nav nav-pills"> [*][url='admin.php?op=adminplesk']Plesk-Node hinzufügen[/url] <li class="active">[url='admin.php?op=adminplesknodes']Plesk-Node Verwalten[/url] [*][url='admin.php?op=adminMain']Zurück zum Index[/url] [/list] <br /> <?php if(isset($true)){ ?> <div class="alert alert-danger"><?php echo $true;?> <?php } ?> <?php if(isset($false)){ ?> <div class="alert alert-danger"><?php echo $false;?> <?php } ?> <div class="container"> <?php if($dbconnect->NumRows($dbconnect->RunQuery("SELECT * FROM plesk_nodes")) > 0){ ?> <div class="panel panel-default"> <div class="panel-heading">Plesk-Nodes Verwalten <table class="table"> <thead> <tr> <th>ID</th> <th>Plesknodename</th> <th>Pleskip</th> <th>Pleskusername</th> <th>Pleskpassword</th> <th>Pleskwebmailserver</th> <th>Pleskwebmailserverurl</th> <th>Pleskpanellogin</th> <th>CPU-Usage</th> <th>Plesk-Status</th> <th>Aktionen</th> </tr> </thead> <tbody> <?php $query = $dbconnect->RunQuery("SELECT * FROM plesk_nodes"); while($row = $dbconnect->FetchAssoc()){ $client = new PleskApiClient($row["pleskip"]); $client->setCredentials($row["pleskusername"], $row["pleskpassword"]); $request = <<<EOF <packet version="1.6.6.0"> <server> <get> <stat/> </get> </server> </packet> EOF; $response = $client->request($request); $serverinfo = simplexml_load_string($response); var_dump($serverinfo); foreach($serverinfo->xpath('/packet/server/get/result') as $status) { if($status->status == "error") { die($status->errtext); } else { if($status->status == "ok") { $pleskstatus = "online.png"; } else { $pleskstatus = "offline.png"; } $random = new random(); $time = $random->convertSecondsToArrayTime($status->stat->other->uptime); } } ?> <tr> <td><?php echo $dbconnect->HtmlEscape($row["id"]);?></td> <td><a href="#" data-container="body" class="pleskserverstatus" data-toggle="popover" data-content="Plesk-Name: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->version->plesk_name);?> <br /> Plesk-Kernelversion: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->version->plesk_version);?> <br /> Plesk-OS: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->version->plesk_os);?> <br /> Plesk-OS-Version: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->version->plesk_os_version);?> <br /> Plesk-Build: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->version->plesk_build);?> <br /> Plesk-OS-Release: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->version->os_release);?> <br /> Plesk-VEID: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->version->veid);?> <br /> Uptime: <?php echo $dbconnect->HtmlEscape($time["days"]);?> Tage <?php echo $dbconnect->HtmlEscape($time["hours"]);?> Stunden <?php echo $dbconnect->HtmlEscape($time["minutes"]);?> Minuten <?php echo $dbconnect->HtmlEscape($time["seconds"]);?> Sekunden <br /> CPU: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->other->cpu);?> <br /> CPU-Load: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->load_avg->l1);?>/<?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->load_avg->l5);?>/<?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->load_avg->l15);?>% <br /> Ram-Total: <?php echo $dbconnect->HtmlEscape($random->toBytes($serverinfo->server->get->result->stat->mem->total));?> <br /> Ram-Used: <?php echo $dbconnect->HtmlEscape($random->toBytes($serverinfo->server->get->result->stat->mem->used));?> <br /> Ram-Free: <?php echo $dbconnect->HtmlEscape($random->toBytes($serverinfo->server->get->result->stat->mem->free));?> <br /> Ram-Reserviert: <?php echo $dbconnect->HtmlEscape($random->toBytes($serverinfo->server->get->result->stat->mem->shared));?>" title="Node-Ãœbersicht (<?php echo $dbconnect->HtmlEscape($row["plesknodename"]);?>)"><?php echo $dbconnect->HtmlEscape($row["plesknodename"]);?></a></td> <td><?php echo $dbconnect->HtmlEscape($row["pleskip"]);?></td> <td><?php echo $dbconnect->HtmlEscape($row["pleskusername"]);?></td> <td><?php echo $dbconnect->HtmlEscape($row["pleskpassword"]);?></td> <td><?php echo $dbconnect->HtmlEscape($row["webmailserver"]);?></td> <td><?php echo $dbconnect->HtmlEscape($row["webmailserverurl"]);?></td> <td><?php echo $dbconnect->HtmlEscape($row["pleskloginurl"]);?></td> <td><a href="#" data-container="body" class="pleskservercpuusage" data-toggle="popover" data-content="CPU: <?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->other->cpu);?>" title="CPU-Informationen"><?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->load_avg->l1);?>/<?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->load_avg->l5);?>/<?php echo $dbconnect->HtmlEscape($serverinfo->server->get->result->stat->load_avg->l15);?>%</a></td> <td>[img]admin/ownmodules/images/<?php echo $dbconnect->HtmlEscape($pleskstatus);?>[/img]</td> <td><a href="admin.php?op=adminplesknodesedit&edit=<?php echo $dbconnect->HtmlEscape($row["id"]);?>">[img]admin/ownmodules/images/edit.png[/img]</a> <a href="admin.php?op=adminplesknodesedit&edit=<?php echo $dbconnect->HtmlEscape($row["id"]);?>&delete=<?php echo $dbconnect->HtmlEscape($row["id"]);?>&api=delete">[img]admin/ownmodules/images/delete.png[/img]</a></td> </tr> <?php } ?> </tbody> </table> <?php } else { ?> <div class="alert alert-danger">Zurzeit sind keine Plesk-Nodes vorhanden <?php } ?> </body> </html>
So dann müsste die API alle Errorlogs ausspucken.
Liebe Grüsse. -
Gibst mir kurz TS-IP oder Skype-Namen? Dann können wir dort weiterquatschen und ich schick Dir den Output des Debugs. Stehen ja paar Sachen drin, die keinen was angehen.
-
-
Neue Updates im Adminbereich:
- Reseller erstellen (In Arbeit)
- Reseller Verwaltung (In Arbeit)
- Reseller Importieren (In Arbeit)
- Reseller können Subscriptions erstellen (In Arbeit)
- Reseller können Subscriptions verwalten (In Arbeit)
Die Resellerverwaltung wird noch eine Zeit lang beanspruchen mit dem kleinen Bugfixxes unten könnt ihr Heute rechnen.
Neue Bugfixes/Updates im Adminbereich:
- Detailansicht war die Zeitanzahl bei den Serverinfos falsch. (fixxed)
- Kunden erstellen Seite war weiss (fixxed)
- Kunden sperren (fertig)
- Serverinfoxmlpacket fixx (fertig)
- Neue Funktion die von Plesk die Zeit / Bytes / Sekunden konvertiert -
Update wird Heute ggf im laufe des Tages veröffentlich mit den Bugfixxes.
Kunden sperren funktioniert jetzt auch Problemlos.
Im nächsten Update dann auch die Resellerverwaltung dabei
Screenshot:
-
Noch ein Update dazue das Script logt jetzt alle Aktionen, soll mehr Ãœbersicht bei Problemen geben.
Errors die hinten dran [Plesk-Node] haben kommen vom Node, das andere das hinten dran [Plesk-API] kommt von der API.
Screenshot:
-
Das neue Update ist released: http://tekbase.gti7.de/plesk.zip
Bitte alle Dateien vom Adminbereich und Kundenbereich mit den alten überspielen, und natürlich die update.sql einspielen.
Der Changelog liegt ebenfalls im Downloadthread dabei.
Liebe Grüsse Steekarlkani. -
Changelog kann man ab sofort immer hier lesen: http://tekbase.gti7.de/plesk/changelog.txt
Liebe Grüsse.