Php cUrl无法从同一服务器获取文件

Php cUrl无法从同一服务器获取文件,php,curl,Php,Curl,我正试图从运行php脚本的同一台服务器上获取文件,我正在运行php脚本中获取文件 它不会下载文件并获得超时。 我能够从浏览器中使用相同的url获取文件 如果url不是同一服务器,则cUrl能够获取文件 我需要修改它们的任何设置,以支持在同一服务器上使用cUrl下载文件 谢谢你的帮助 我的代码: $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRA

我正试图从运行php脚本的同一台服务器上获取文件,我正在运行php脚本中获取文件

它不会下载文件并获得超时。 我能够从浏览器中使用相同的url获取文件

如果url不是同一服务器,则cUrl能够获取文件

我需要修改它们的任何设置,以支持在同一服务器上使用cUrl下载文件

谢谢你的帮助

我的代码:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $file_url);
    $content = curl_exec($ch);
    curl_close($ch);

尝试使用curl的所有参数

function curl_download($Url){

// is cURL installed yet?
if (!function_exists('curl_init')){
    die('Sorry cURL is not installed!');
}

// create a new cURL resource handle
$ch = curl_init();

// Now set some options (most are optional)

// Set URL to download
curl_setopt($ch, CURLOPT_URL, $Url);

// Set a referer
//curl_setopt($ch, CURLOPT_REFERER, "http://www.example.org/yay.htm");

// User agent
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");

// Include header in result? (0 = yes, 1 = no)
curl_setopt($ch, CURLOPT_HEADER, 0);

// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

// Download the given URL, and return output
$output = curl_exec($ch);

// Close the cURL resource, and free system resources
curl_close($ch);

return $output;
}

在成功获取的文件上使用Google Chrome“
Copy as cURL
(打开“开发工具”、“网络”选项卡,右键单击请求),粘贴到终端,然后执行

如果一切正常,并且您能够通过终端上的curl获取文件,那么就有一些具有头和/或请求参数的内容。如果不是,则更有可能是您的网络配置出了问题

另外,检查web服务器日志,您是否使用脚本访问web服务器


您使用的是
127.0.0.1
还是
localhost
还是完整TLD?浏览器是否通过代理连接到Internet?

我找到的解决方法是: 测试您是否在自己的服务器上,然后对同一脚本使用简单的include:

    if (($ser = servername()) != $floc) {
       return(GetFileContent("$floc/$page.php"));
    } else { include "$page.php"; }

服务器在防火墙或NAT路由器后面吗?解析URL可能会返回公共IP,但您需要使用私有IP。直接从浏览器请求URL,然后查看出现了什么??该url是否有效?正如我所提到的,url有效。我可以从浏览器中获取文件。您试图获取的“文件”也是脚本吗?可能两个脚本都使用会话吗?然后,下载脚本中打开的会话将锁定会话文件,以便第二个脚本无法访问它,并等待释放锁。该方案的解决方案是在发出HTTP请求之前,在下载脚本中调用
session\u write\u close