簡體   English   中英

PHP cURL無法連接到本地計算機上的IIS

[英]PHP cURL cannot connect to IIS on local machine

我有一個PHP腳本試圖使用cURL協議與位於我辦公室中的本地計算機上的IIS安裝上的其他PHP腳本連接,但無法這樣做。

本地配置:我已打開防火牆上的端口8789,已將路由器正確重定向到運行IIS的計算機的IP,並將IIS的默認端口設置為8789。如果嘗試連接到腳本( 93.144.xxx.xxx:8987/curl_response.php)通過瀏覽器得到最終的輸出,因此此設置正常運行。

當我嘗試在遠程Web服務器上運行PHP腳本時,盡管它給出了我的cUrl錯誤(#7):無法連接到主機cUrl錯誤(#28):connect()超時! (我正在嘗試其他Web服務器)

我的PHP腳本的curl部分如下:

$url = 'http://93.144.xxx.xxx:8789/curl_response.php';

$verbose = fopen('php://temp', 'w+');
$curl = curl_init();
curl_setopt ($curl, CURLOPT_VERBOSE, true);
curl_setopt ($curl, CURLOPT_STDERR, $verbose);
curl_setopt ($curl, CURLOPT_URL, $rurl);
curl_setopt ($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt ($curl, CURLOPT_HEADER, 0);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, false);
curl_setopt ($curl, CURLOPT_PORT , 8789);

$response = curl_exec($curl);

if ($response === FALSE) {
    printf("cUrl error (#%d): %s<br>\n", curl_errno($curl),
           htmlspecialchars(curl_error($curl)));
    rewind($verbose);
    $verboseLog = stream_get_contents($verbose);

    echo "Verbose information:\n<pre>", htmlspecialchars($verboseLog),"</pre>\n";   
}else{
    curl_close($curl);
    // trim response (serialized array)
    $response = trim($response);
    // unserialize
    $response = unserialize($response);
    print_r($response);
}

我嘗試了幾種不同的CURLOPT_配置,甚至嘗試使用dyndns主機代替IP,但無濟於事。

是否需要設置IIS配置,使其能夠接受傳入的cURL請求,或者是否有通過cURL發送的特定標頭?

謝謝。

您有錯字:

curl_setopt ($curl, CURLOPT_URL, $rurl);

應該:

curl_setopt ($curl, CURLOPT_URL, $url);

這是一個有效的 curl請求的示例:

<?php

$url = 'http://thepointless.com:80/';

$curl = curl_init();
curl_setopt ($curl, CURLOPT_VERBOSE, true);
curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt ($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt ($curl, CURLOPT_HEADER, 0);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, false);
curl_setopt ($curl, CURLOPT_PORT , 80);

$response = curl_exec($curl);

print $response;

?>

就像您一樣,除了三件事:

  • 正在連接端口80
  • 這不是在設置STDERR
  • 錯字是固定的

使用--verbose從命令行運行cURL以查看更多詳細信息。

並檢查ISS是否啟用了cURL:

extension=php_curl.dll

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM