2016-06-16 2 views
0

Мне нужно запустить команду curl на сервере Wowza Linux, и вот моя команда Curl, которая должна быть выполнена на удаленной машине.Запустить команду Curl на Linux Server по php

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); 
?> 

Любой Совет будет полезно для меня, чтобы понять это. заранее заранее

+1

С какими проблемами вы сталкиваетесь? Также не добавляйте '' 'для передачи переменной аргумента в' CURLOPT_USERNAME' и 'CURLOPT_PASSWORD' –

+0

Я хочу подтвердить, что это правильный перевод команды curl, и я не знаю, работает ли это или нет. – kunal

ответ

2

Вам не нужно дважды указывать свои переменные. Так, например

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); 
+0

Привет @Machavity спасибо за ваше время, но я не получил никакого ответа на веб-странице, поэтому я не знаю, успешно ли выполнена эта команда. – kunal

+0

Попробуйте повторить результат 'curl_exec', тогда – Machavity

+0

' -X PUT --header 'Accept: application/json ; ' Мне не нужно создавать varlale curl для этого заголовка в mycode – kunal

0

Чтобы убедиться, что вы делаете запрос, используя аутентификацию Digest, я бы включать в себя следующие параметры в ваш PHP-завиток запрос:

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 configuration под элементом RestInterface имеет следующее:

<AuthenticationMethod>digest</AuthenticationMethod> 

Наконец, если вы столкнетесь больше проблем, вы можете добавить следующие элементы отладки для дальнейшего расследовать любые оставшиеся проблемы с вашим запросом (в разделе «Сервер-> RestInterface-> Свойства»):

Смежные вопросы