hey
Ik wens graag de API van Plesk te gebruiken om automatisch in te loggen met Curl maar helaas blijkt niet nooit te werken ik krijg altijd de zelfde error namelijk
couldn't connect to host
http://download1.parallels.com/Plesk...uide/index.htm
Hopelijk weet iemand wat ik fout doe
- iemand ervaring met de api van Plesk?
-
27-01-2010, 08:10 #1
- Berichten
- 5
- Lid sinds
- 15 Jaar
iemand ervaring met de api van Plesk/curl
-
In de schijnwerper
Linkvada.com Linkbuilding Platform: Direct Linkbuilden op 77.000+ premium domeinenSEO/LinkbuildingZeer ervaren programmeur beschikbaar | web, api & appFreelance / WerkWij ontwikkelen (SaaS-) platformen binnen 12 weken!Freelance / WerkBacklinks.nl - Groot assortiment | Bekijk NR. 1 voorbeelden <---SEO/Linkbuilding -
27-01-2010, 09:06 #2
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Als je niet je eigen code laat zien kunnen we je natuurlijk nooit helpen ;-)
Maar in princiepe zegt hij niet kan verbinden met de host. Staat alles dus goed ingesteld?
-
27-01-2010, 09:30 #3
- Berichten
- 750
- Lid sinds
- 16 Jaar
Dat lijkt me een error gebaseerd dat waarschijnlijk ssl niet goed staat ingesteld.
Controleer eens in phpinfo of je een ssl onderdeel ziet staan.
Deze client code http://download1.parallels.com/Plesk...Name=33181.htm gebruik je?
-
27-01-2010, 09:30 #4
- Berichten
- 5
- Lid sinds
- 15 Jaar
Ik gebruik:
PHP Code:<?php
/**
* Reports error during API RPC request
*/
class ApiRequestException extends Exception {}
/**
* Returns DOM object representing request for information about all available domains
* @return DOMDocument
*/
function domainsInfoRequest()
{
$xmldoc = new DomDocument('1.0', 'UTF-8');
$xmldoc->formatOutput = true;
// <packet>
$packet = $xmldoc->createElement('packet');
$packet->setAttribute('version', '1.4.1.2');
$xmldoc->appendChild($packet);
// <packet/domain>
$domain = $xmldoc->createElement('domain');
$packet->appendChild($domain);
// <packet/domain/get>
$get = $xmldoc->createElement('get');
$domain->appendChild($get);
// <packet/domain/get/filter>
$filter = $xmldoc->createElement('filter');
$get->appendChild($filter);
// <packet/domain/get/dataset>
$dataset = $xmldoc->createElement('dataset');
$get->appendChild($dataset);
// dataset elements
$dataset->appendChild($xmldoc->createElement('limits'));
$dataset->appendChild($xmldoc->createElement('prefs'));
$dataset->appendChild($xmldoc->createElement('user'));
$dataset->appendChild($xmldoc->createElement('hosting'));
$dataset->appendChild($xmldoc->createElement('stat'));
$dataset->appendChild($xmldoc->createElement('gen_info'));
return $xmldoc;
}
/**
* Prepares CURL to perform Plesk API request
* @return resource
*/
function curlInit($host, $login, $password)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://{$host}:8443/enterprise/control/agent.php");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("HTTP_AUTH_LOGIN: {$login}",
"HTTP_AUTH_PASSWD: {$password}",
"HTTP_PRETTY_PRINT: TRUE",
"Content-Type: text/xml")
);
return $curl;
}
/**
* Performs a Plesk API request, returns raw API response text
*
* @return string
* @throws ApiRequestException
*/
function sendRequest($curl, $packet)
{
curl_setopt($curl, CURLOPT_POSTFIELDS, $packet);
$result = curl_exec($curl);
if (curl_errno($curl)) {
$errmsg = curl_error($curl);
$errcode = curl_errno($curl);
curl_close($curl);
throw new ApiRequestException($errmsg, $errcode);
}
curl_close($curl);
return $result;
}
/**
* Looks if API responded with correct data
*
* @return SimpleXMLElement
* @throws ApiRequestException
*/
function parseResponse($response_string)
{
$xml = new SimpleXMLElement($response_string);
if (!is_a($xml, 'SimpleXMLElement'))
throw new ApiRequestException("Cannot parse server response: {$response_string}");
return $xml;
}
/**
* Check data in API response
* @return void
* @throws ApiRequestException
*/
function checkResponse(SimpleXMLElement $response)
{
$resultNode = $response->domain->get->result;
// check if request was successful
if ('error' == (string)$resultNode->status)
throw new ApiRequestException("Plesk API returned error: " . (string)$resultNode->result->errtext);
}
//
// int main()
//
$host = 'vz07.stone-is.net';
$login = 'naam';
$password = 'pass';
$curl = curlInit($host, $login, $password);
try {
$response = sendRequest($curl, domainsInfoRequest()->saveXML());
$responseXml = parseResponse($response);
checkResponse($responseXml);
} catch (ApiRequestException $e) {
echo $e;
die();
}
// Explore the result
foreach ($responseXml->xpath('/packet/domain/get/result') as $resultNode) {
echo "Domain id: " . (string)$resultNode->id . " ";
echo (string)$resultNode->data->gen_info->name . " (" . (string)$resultNode->data->gen_info->dns_ip_address . ")\n";
}
?>
-
27-01-2010, 09:33 #5
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Even gekopieerd en gepaste, maar bij mij connect hij wel..
-
27-01-2010, 09:37 #6
- Berichten
- 750
- Lid sinds
- 16 Jaar
Heidi, waarschijnlijk wil je ook even error_reporting(E_ALL) aanzetten om te controlen waar de fout ook echt op treed.
-
27-01-2010, 10:14 #7
- Berichten
- 5
- Lid sinds
- 15 Jaar
Het betrof een poort die niet openstond.
Nu zit ik helaas met een ander probleem:s
Ik wens enkel een forward-pakketje aan te maken zodat "physical hosting" dus niet mogelijk is enkel standard forwarding en frame forwarding maar weet iemand hoe je dit in de xml aanduid ik heb nu het volgende:
Code:<add> <gen_setup> <name>heidihoffff.nl</name> <client_id>999</client_id> <htype>vrt_hst</htype> <ip_address>87.238.162.13</ip_address> </gen_setup> <hosting> <vrt_hst> <ftp_login>user</ftp_login> <ftp_password>pass</ftp_password> <fp>false</fp> <php>false</php> <ssi>false</ssi> <mod_perl>false</mod_perl> <mod_python>false</mod_python> <asp>false</asp> <coldfusion>false</coldfusion> <webstat>none</webstat> <cgi>false</cgi> <errdocs>true</errdocs> <at_domains>false</at_domains> </vrt_hst> </hosting> <limits> <max_subdom>5</max_subdom> <disk_space>1</disk_space> <max_traffic>10</max_traffic> <max_db>0</max_db> <max_box>100</max_box> </limits> <prefs> <www>true</www> <stat_ttl>555</stat_ttl> </prefs> <user> <enabled>true</enabled> <password>test123</password> <perms> <manage_phosting>false</manage_phosting> <manage_subdomains>false</manage_subdomains> <manage_log>false</manage_log> <manage_crontab>false</manage_crontab> <manage_webapps>false</manage_webapps> <manage_maillists>false</manage_maillists> <manage_drweb>false</manage_drweb> <make_dumps>false</make_dumps> </perms> </user> </add> </domain> </packet> EOP;
Niet meer nodig het was gwn host = none :)
bedankt voor alles:)Laatst aangepast door Heidi Hofkens : 27-01-2010 om 10:47 Reden: Automatisch samengevoegd.
-
27-01-2010, 12:01 #8
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Yes, goed gegokt! Succes verder!
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic