Мне нужно запустить команду curl на сервере Linux Wowza, и вот моя команда Curl, которую нужно выполнить на удаленной машине.
curl -X PUT --header 'Accept:application/json; charset=utf-8' http://localhost:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/mystream/actions/restart --digest -u "user:password"
вот мой конвертированный керл в php
<?php
$url = 'http://localhost:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/mystream/actions/restart';
$username = 'user';
$pass = 'password';
$ch = curl_init();
curl_setopt ( $ch, CURLOPT_URL, "$url");
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERNAME, "$username");
curl_setopt($ch, CURLOPT_PASSWORD, "$password")
curl_close ($ch);
?>
Любой совет будет полезно для меня, чтобы понять это. заранее спасибо
Вам не нужно заключать в кавычки ваши переменные. Так, например
curl_setopt ( $ch, CURLOPT_URL, "$url");
Должно быть
curl_setopt ( $ch, CURLOPT_URL, $url);
Во-вторых, вам нужно curl_exec в конце, чтобы фактически сделать запрос CURL сделать что-то
curl_exec($ch);
Наконец, в самом конце убедитесь, что вы можете отладить ответ каким-либо образом
if($err = curl_error($ch)) echo 'Error: ' . $err;
Вот как можно добавить свой заголовок
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:application/json', 'charset=utf-8'));
Ваше имя пользователя / пароль также неверно
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
Чтобы убедиться, что вы делаете запрос с использованием дайджест-аутентификации, я бы включил в ваш запрос php-curl следующие параметры:
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
Во-вторых, убедитесь, что в ваш запрос включены следующие заголовки:
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept:application/json; charset=utf-8',
'Content-type:application/json; charset=utf-8'
));
Затем в вашей установке Wowza, подтвердите, что ваш Конфигурация server.xml Под элементом RestInterface имеется следующее:
<AuthenticationMethod>digest</AuthenticationMethod>
Наконец, если у вас возникнут дополнительные проблемы, вы можете добавить следующие элементы отладки для дальнейшего изучения любых оставшихся проблем с вашим запросом (в разделе Сервер-> RestInterface-> Свойства):
<Property>
<Name>debugEnable</Name>
<Value>true</Value>
</Property>