2013-04-19 3 views
1

저는 SSL 연결을 통해 ServerA에서 ServerB로 파일을 전송하기 위해 cURL을 사용하여 몇 가지 PHP 스크립트를 작성했습니다. 둘 다 IIS를 실행하는 Windows 서버입니다. 코드는 작은 파일 (약 7MB 미만)에서 잘 작동합니다. 그러나, 그것보다 큰 아무것도 실패합니다.SSL을 통한 PHP/cURL 파일 전송 제한?

SSL에 문제가있는 것 같습니다. 나는 일시적으로 ServerB에 http 포트를 열고 650MB 파일을 성공적으로 보낼 수있었습니다. 그러나 SSL을 통해 전송하면 폭탄이 터집니다. Wireshark를 사용하면 약 7-8MB를 꽤 빨리 보낸 다음 패킷이 더 이상 전송되지 않는다는 것을 알 수 있습니다. 스크립트는 시간이 초과 될 때까지 중단됩니다. 나는이 돌아

컬 오류 : SSL 읽기 : 오류 : 00000000 : LIB (0) : FUNC (0) : 이유 (0), errno를 10054

컬에 제한을 보내는 어떤 종류가 있습니까 SSL 연결?

+0

curl + ssl 어떤 프로토콜을 사용합니까? ftp? scp? SFTP? 오류 10054는 "피어에서 연결이 닫혔습니다."입니다. –

+0

저는 https 연결을 열고 POST를 통해 파일을 전송하고 있습니다. – scott80109

답변

1

모든 것을 시도한 지 반나절 만에 해결책을 찾았습니다. 아주 간단합니다.

curl_setopt($curl, CURLOPT_SSLVERSION,3); 

희망이 스레드 내가이 일을 알아 내려고 노력 겪은 고통에서 다른 사람을 저장 : 내가해야 할 일을했을 모든 추가했다. :)

0

당신이 8메가바이트입니다 기본보다 큰 무언가의 php.ini의 기본 post_max_size를 업데이트하는 것이 확인 :

post_max_size = 8M 

나중에 IIS를 다시 시작해야합니다. 이 문제를 해결하면 HTTPS가 아닌 HTTPS에서 작동하는 이유가 확실치 않지만 한 번해볼 가치가 있습니다.

+0

그래, 필자는 php.ini와 IIS의 모든 설정을 최대한으로 활용하여이 작업과 관련이 있다고 생각할 수 있습니다. 모든 파일 크기 제한은 GB 이상으로 설정되며 모든 제한 시간은 최소 60 분으로 설정됩니다. 이상한 점은 전송 된 데이터의 양 또는 실행되는 시간의 양에 일관성이 없다는 것입니다. – scott80109