API VestaCP с ошибкой CURL Giving 500

это мой Vesta.php я сделал это, чтобы отправить запросы API и использовать его внутри

<?php
require 'includes/Config.php';
class VestaAPI {
private $_instance = null;
public static function getInstance() {
if ($_instance == null) {
$_instance = new VestaAPI();
}
return $_instance;
}
public static function runCMD($cmd,$arg1 = "",$arg2 = "",$arg3 = "",$arg4 = "",$arg5 = "",$arg6 = "",$arg7 = "",$arg8 = "",$arg9 = "",$arg10 = ""){
ini_set('max_execution_time', 30);
set_time_limit(30);
// Server credentials
$settings = Config::getInstance()->getSettings();
$vst_hostname = $settings["vestaLogin"]["Host"];
$vst_username = $settings["vestaLogin"]["Username"];
$vst_password = $settings["vestaLogin"]["Password"];
$vst_command = $cmd;// Prepare POST query
$postvars = array(
'user' => $vst_username,
'password' => $vst_password,
'cmd' => $vst_command,
'arg1' => $arg1,
'arg2' => $arg2
);
$postdata = http_build_query($postvars);

// Send POST query via cURL
$postdata = http_build_query($postvars);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://' . $vst_hostname . ':81/api/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_LOW_SPEED_LIMIT, 1);   // cancel if below 1 byte/second
curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 30);   // for a period of 30 seconds
curl_setopt($post, CURLOPT_AUTOREFERER, true);
curl_setopt($post, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($post, CURLOPT_TIMEOUT, 30 );
curl_setopt(CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
return curl_exec($curl);
}
public static function arrayToXml($array, &$xml){
foreach ($array as $key => $value) {
if(is_array($value)){
if(is_int($key)){
$key = "e";
}
$label = $xml->addChild($key);
arrayToXml($value, $label);
}
else {
$xml->addChild($key, $value);
}
}
}
}

// to get your instance use

?>

но когда я пытаюсь запустить этот код здесь (чтобы приостановить сайт или приостановить), я получаю ошибку 500

<?php
require 'includes/Vesta.php';
if(isset($_POST["username"])){}else{die("ERROR 403");}
$output = VestaAPI::runCMD("v-suspend-user",$_POST["username"]);
if(strstr($output, "Error:")) {die($output);}else{
die("Done!");
}
?>

но если я получаю данные учетной записи, она работает, я думаю, что это должно быть проблема времени ожидания, но вот журнал ошибок php

2016/02/15 00:53:55 [ошибка] 14102 # 0: * 6 вверх по течению преждевременно закрыт
соединение при чтении заголовка ответа от апстрима, клиента:
86.6.39.173, сервер: testing.DOMAIN.co.uk, запрос: «POST /suspendUser.php HTTP / 1.1», восходящий поток:
«http://45.58.48.103:8080/suspendUser.php«, хост:
«testing.DOMAIN.co.uk», реферер: «http://testing.DOMAIN.co.uk/«

я заменил свой домен на домен

0

Решение

Возможно, вы запускаете запрос API с того же сервера, что и установка vestacp.
Это происходит потому, что после приостановки / отмены приостановки пользователя веб-служба vestacp перезапускается.
Вы должны установить $ arg2 = ‘no’, чтобы предотвратить перезапуск веб-службы и перезапустить ее позже.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]