다른 소프트웨어 버전의 유사한 웹 응용 프로그램을 실행하는 두 대의 서버가 있습니다.cURL 파일 다운로드는 5.5가 아닌 PHP 5.3에서 작동합니다.
두 서버에 CentOS 6.5를 실행하는
하나는 아파치 2.2 PHP 5.3
을 가지고 있으며, 다른 하나는 다운로드 주기적으로이 응용 프로그램의 주요 기능의 5.5
한 PHP는 아파치 2.4입니다 실행하는 CSV의
이 컬을 사용하여 수행하는 원격 URL에서 파일과 다음 코드를
$filename = 'export.csv';
$url = 'http://www.someaddress.com/export/' . $filename;
$curl = curl_init();
$fd = fopen(DIR_FS_ADMIN . 'temp/' . $filename , "w");
curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FILE, $fd);
curl_exec ($curl);
curl_close ($curl);
당신이 PHP에서 잘 작동 코드의 아주 간단한 비트를 볼 수 있듯이
5.3
이 curl_getinfo()
[content_type] => text/csv
[http_code] => 200
[header_size] => 209
[request_size] => 95
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 1.98925
[namelookup_time] => 0.816404
[connect_time] => 0.817009
[pretransfer_time] => 0.831392
[size_upload] => 0
[size_download] => 13564110
[speed_download] => 6818705
[speed_upload] => 0
[download_content_length] => 13564110
[upload_content_length] => -1
[starttransfer_time] => 0.834829
[redirect_time] => 0
[certinfo] => Array
(
)
[redirect_url] =>
)
Error Code: 0
의 결과는 그리고이 5.5 작업 동일한 코드의 결과입니다 내가 연구하고, 여기에 게시 타임 아웃 시간을 증가, 자원의 SSL 버전을 시도, 아직 다른 curl_setopt에 많이 재생하기 전에 많은 옵션을 시도했습니다 물론
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 126.332476
[namelookup_time] => 0.000369
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[redirect_url] =>
[primary_ip] =>
[certinfo] => Array
(
)
[primary_port] => 0
[local_ip] =>
[local_port] => 0
)
7 Failed to connect to www.someaddress.com/export/: Connection timed out
, 난 항상 실패 취득 5.5 응용 프로그램에서 연결하십시오.
5.5의 cURL 확장에 대한 변경 사항이 있지만 Google 검색에서 문제를 업로드 할 때 찾을 수 있음을 알고 있습니다. 또한 file_get_contents를 사용하는 것과 같은 완전히 다른 옵션을 사용해 보았습니다. .
두 서버가 같은 위치에 있으며 URL이 완전히 열려 있으므로 5.3 서버에서 코드를 실행할 때 완벽하게 작동하기 때문에 문제가 파일 위치 내에 있는지 의심 스럽습니다. CURLOPT_SAFE_UPLOAD 옵션이 FALSE로 설정되어있는 경우 @file 구문을 사용하여
나는이 사실을 알고 있는데, 나는 코멘트에서 말했듯이, 나는 CURLFile 클래스를 알고있다. 그러나이 파일 오브젝트는 이미 가지고있는 로컬 파일로부터 서버에 업로드하기위한 것이다. 하지만, 내가 가져가도 curl_setopt ($ curl, CURLOPT_FILE, $ fd); 코드에서 내용을 가져 오려고 시도했지만 여전히 리소스가 부족합니다 ... – Sandman21dan
@ Sandman21dan이 CURLOPT_SAFE_UPLOAD를 사용하도록 설정 했습니까? – fortune
또한 참조 링크 http://stackoverflow.com/questions/25180366/writing-the-following-curl-in-php – fortune