PHP从远程站点将文件复制到我的网站

时间:2014-02-02 20:24:30

标签: php linux

 $link = "http://vcdn8.yobt.tv/content/a8/68/e6/a868e6dc4688ecfc0c26de00ed08db7f871427/vid/1_1024x576.mp4";
copy($link, '../video/video12465123.mp4');

我正在尝试复制此视频,但总是停留在1 mb - 2 mb之间,它说

500内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。

请与服务器管理员联系,告知错误发生的时间以及可能导致错误的任何操作。

服务器错误日志中可能提供了有关此错误的更多信息。

错误日志: [Mon Feb 03 06:36:38 2014] [warn] [client 217.131.165.102] mod_fcgid:在45秒内读取数据超时 [Mon Feb 03 06:36:38 2014] [error] [client 217.131.165.102]脚本标题的提前结束:videoekle.php

2 个答案:

答案 0 :(得分:0)

这是一个apache超时错误。如果从命令行运行PHP脚本(而不是通过apache),则不应该出现此超时错误。如果需要通过apache运行脚本,可以在/etc/httpd/conf.d/fcgid.conf中增加FcgidIOTimeout设置,然后重启apache,这样可以解决问题。

答案 1 :(得分:0)

尝试使用curl,强制超时

set_time_limit(400);// to infinity for example
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://vcdn8.yobt.tv/content/a8/68/e6/a868e6dc4688ecfc0c26de00ed08db7f871427/vid/1_1024x576.mp4");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
$response = curl_exec($ch);
curl_close($ch);

然后将其保存到文件中。

相关问题