通过php运行Curl命令到Linux服务器

时间:2016-06-16 12:13:27

标签: php linux curl ubuntu-14.04 wowza

我需要将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);
?>

任何提示都有助于我解决这个问题。提前谢谢

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

为确保您使用摘要式身份验证发出请求,我会在您的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安装中,确认RestInterface元素下的Server.xml configuration具有以下内容:

<AuthenticationMethod>digest</AuthenticationMethod> 

最后,如果您遇到更多麻烦,可以添加以下调试元素以进一步调查您的请求的任何剩余问题(在Server-&gt; RestInterface-&gt;属性下):

        <Property>
            <Name>debugEnable</Name>
            <Value>true</Value>
        </Property>