Задать вопрос

Как исправить ошибку «Соединение было сброшено»?

Помогите. Скрипт сбрасывает соединение после его выполнения.

include 'PleskApiClient.php';
$host = 'localhost';
$login = 'root';
$password = 'pass';
$client = new PleskApiClient($host);
$client->setCredentials($login, $password);
$request = '
<packet>
<webspace>
<add>
   <gen_setup>
      <name>domain.com</name>
      <owner-login>login</owner-login>
      <htype>vrt_hst</htype>
      <ip_address>192.168.0.1</ip_address>
      <status>0</status>
   </gen_setup>
   <hosting>
      <vrt_hst>
          <property>
            <name>ftp_login</name>
            <value>ftp_login</value>
          </property>
          <property>
            <name>ftp_password</name>
            <value>ftp_password</value>
          </property>
          <ip_address>192.168.0.1</ip_address>
       </vrt_hst>
    </hosting>
	<plan-name>Тариф</plan-name>
</add>
   <sync-subscription>
      <filter>
         <name>domain.com</name>
      </filter>
   </sync-subscription>
</webspace>
</packet>
';
$response = $client->request($request);
print $response;


PleskApiClient.php:
/**
* Client for Plesk API-RPC
*/
class PleskApiClient
{
private $_host;
private $_port;
private $_protocol;
private $_login;
private $_password;
private $_secretKey;
/**
* Create client
*
* @param string $host
* @param int $port
* @param string $protocol
*/
public function __construct($host, $port = 8443, $protocol = 'https')
{
$this->_host = $host;
$this->_port = $port;
$this->_protocol = $protocol;
}
/**
* Setup credentials for authentication
*
* @param string $login
* @param string $password
*/
public function setCredentials($login, $password)
{
$this->_login = $login;
$this->_password = $password;
}
/**
* Define secret key for alternative authentication
*
* @param string $secretKey
*/
public function setSecretKey($secretKey)
{
$this->_secretKey = $secretKey;
}
/**
* Perform API request
*
* @param string $request
* @return string
*/
public function request($request)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "$this->_protocol://$this->_host:$this->_port/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, $this->_getHeaders());
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
/**
* Retrieve list of headers needed for request
*
* @return array
*/
private function _getHeaders()
{
$headers = array(
"Content-Type: text/xml",
"HTTP_PRETTY_PRINT: TRUE",
);
if ($this->_secretKey) {
$headers[] = "KEY: $this->_secretKey";
} else {
$headers[] = "HTTP_AUTH_LOGIN: $this->_login";
$headers[] = "HTTP_AUTH_PASSWD: $this->_password";
}
return $headers;
}
}
  • Вопрос задан
  • 5005 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 2
Какое соединение?
Дебажить пробовал?
Ответ написан
djalexsey
@djalexsey Автор вопроса
При запуске скрипта, он отправляет XML запрос файлу agent.php, а файл agent.php перезапускает apache т.к создаётся новая подписка.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
benbor
@benbor
Помог ответ - не забудь лайкнуть
"Помогите, мне на работе дали таску, вот исхордники, вот, сделайте за меня работу"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы