최근에 서버를 옮겨서 오랫동안 사용 해본 PHP 스크립트가 더 이상 작동하지 않습니다. 필자는 다중 컬 작업을 쉽게 수행 할 수있는 래퍼 클래스를 추적했습니다. 전체 스크립트 작업은 때때로 완료되기 시작하지만 대부분의 경우 실패합니다.curl_init가 NULL을 간헐적으로 반환합니다.
하지만, 내 테스트하는 동안 나는 스크립트가 실패 할 때 여기에 실패했음을 발견
$ch = curl_init();
스크립트가 $의 채널이 NULL했다 실패합니다. 문서 (php.net)는 성공시 리소스를 반환하고 NULL이 아닌 실패시 FALSE를 반환해야한다고 말합니다.
저는 우분투 12.04 서버를 사용하고 있습니다. 내가 말했듯이이 스크립트는 오랫동안 실행되었습니다. 그래서 몇 가지 생각 중 하나가 발생했습니다. 첫째, 내 호스팅 회사의 이미지가 최신 보안 패치 등으로 최신 버전이되어야합니다. PHP 패치가 있었는데 뭔가 엉망이 되었습니까? 둘째, 이전 머신 (또는 그 문제에 사용했던 다른 머신)에서 경험하지 못한 리소스 문제가 있습니다. 마지막으로, 호스팅 업체가 설치 한 이미지에 문제가 있습니다.
누구든지 이런 유형의 오류에 경험이 있다면 나는 그것을 듣고 싶습니다.
업데이트 :
$ch = curl_init();
echo '<br>Res: ' . var_dump($ch);
반환 값 :
Res: NULL
정말 NULL을 반환합니까? 그 가치를 어떻게 인쇄하고 있습니까? See ['curl_init()'는 NULL을 자동으로 반환합니다.] (http://compgroups.net/comp.lang.php/curl_init-silently-returns-null/299307). TL : DR : var_export()가 아니라'var_dump()'를 사용하십시오. –
@JonathonReinhart 감사합니다. var_export를 사용하고 있습니다. 귀하의 제안에 따라 var_dump 시도하고 질문을 업데이트했습니다. 그것은 여전히 var_dump와 함께 NULL을 반환합니다. –
''$ ch = curl_init()''과''var_dump ($ ch)''사이의 코드를 건너 뛰었습니다. 일반적으로''$ ch''는 cURL 옵션을 잘못 설정하면''null''으로 설정됩니다. 또한 "멀티 컬 (multi curl)"작업을 수행한다고 말했습니까? 다른 모든 cURL 핸들이 제대로 닫혀 있습니까? 충분한 메모리가 있습니까? – ub3rst4r