1

我在这里有点困惑。我有一个文件provision_test.php,当使用php provision_test.php执行时,它会运行良好,执行 curl 并获取页面。但是当从网络http://example.com/provision_test.php执行时,它无法正常运行。我正在运行 Ubuntu Linux 12.04.1 服务器 x86_64。

任何想法将不胜感激......如果您需要任何额外的信息,请告诉我,我很乐意帮助您帮助我。

编辑 1

文件:provision_test.php

<?php

    $domain = "example.net";
    $password = "123";
    $serverip = "example.com:10000";

    $ch = curl_init();

    $userpwd = 'root:password';

    curl_setopt($ch, CURLOPT_URL, "http://{$serverip}/virtual-server/remote.cgi?program=create-domain&domain={$domain}&pass={$password}&default-features");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_USERPWD, $userpwd);

    curl_exec($ch);
    curl_close($ch);

?>

系统上安装了 php5-curl 包。但是我没有在 php.ini 文件中专门启用 curl。我该怎么做呢?

我可以验证 php5-curl 软件包是否已正确安装,但是我无法确认 apache 是否已启用它。我通过在命令行中执行它知道 curl 有效。

此外,我的服务器上没有 selinux 或类似的东西。

我将在 PHP 错误的情况下再次运行该脚本,看看我明天是否能找到任何东西。

4

1 回答 1

1

今天我遇到了与描述相同的问题。从 CLI 脚本工作正常,从浏览器结束时出现错误 7

请使用以下命令启用详细模式:

curl_setopt($ch, CURLOPT_VERBOSE, true);

从 CLI 运行脚本

$proxy = 'url or ip';
$proxy_port = 8080;
$proxy_username = 'username';
$proxy_password = 'password';
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_username.':'.$proxy_password);

这节省了我工作日的最后 30 分钟;-D

希望这对您有所帮助。

于 2017-03-20T19:18:33.193 回答