아.... 정말 이것 때문에 무진장 삽질 했습니다.
CURL_INIT() 은 PHP 4,5에서 기본으로 지원 하지만 호스팅 없체에서 보안 때문에 사용에 제한을 걸어 놓는 경우가 있다고 한다..
아마도 내가 테스트 한곳이 그런 곳이었나보다..
그래서 열심히 검색한 결과
어떤분이 open-id 연동하는데도 CURL_INIT() 을 사용하는 경우에 서버 세팅 없이 에뮬레이터로 포팅하는 것을 참고 했다..
ㅠㅠ 그런데 그분보다 좀더 복잡한 것이 있었다.
먼저 CURL_INIT() 에뮬레이터 다운 받기
libcurl Emulator 이곳에서 다운을 받으시고 FACEBOOK.php 와 같은 디렉토리에 압축을 풀어 놓습니다.
그리고 src/facebook.php 을 열어서 첫줄에
require_once ("libcurlemu.inc.php"); 이 구문을 추가 합니다.
libcurlemu.inc.php 이 파일에서는 다시 [ libcurlexternal.inc.php ]와 [class_HTTPRetriever.php , libcurlnative.inc.php] 를 호출 하네요(호출 방식은 직접 소스를 확인 해 보세요)

이렇게 하니까 일단 curl_init() 없다는 에러 메시지는 사라 졌습니다.
ㅠㅠ 그런데 또 하나의 문제가 생기네요

이번에는 또 curl_setopt_array() 이게 없다는 에러 메시지가 나오네요..(흐미 이건 또 뭐여)...

 curl_setopt_array() 이 함수는 curl_setopt()-(curl 의 옵션을 세팅) 를 확장해서 각 옵션을 array[] 인덱스를 옵션 명으로 지정하고 value 를 세팅 하는 함수였습니다.

또 열심히 구글링을 해서 php_manual 에서 소스를 찾았습니다.

if (!function_exists('curl_setopt_array')) {
   function curl_setopt_array(&$ch, $curl_options)
   {
       foreach ($curl_options as $option => $value) {
           if (!curl_setopt($ch, $option, $value)) {
               return false;
           }
       }
       return true;
   }
}

그러면 이 소스를 카피 하셔서...
libcurlnative.inc.php  libcurlexternal.inc.php  두 파일의 curl_setopt() 함수 뒤에 붙여 넣으세요..(저같은 경우에는 434 라인 뒷쪽에 붙였습니다.)

이렇게 하니까 다시 curl_setop_array() 합수가 없다는 에러는 사라졌습니다.


ㅠㅠ 그런데 또 다른난관에 봉착 했습니다.

이번에는 curl 옵션중 curl_connectiontimeout 옵션을 세팅 할 수 없다는 에러가 발생 하였습니다..ㅠㅠ (아..진짜 죽겠네....)

facebook.php 를 확인하여보니 curl_connectiontimeout 을 세팅 하는 부분이 있더라구요..(직접 찾아 보시면 나올껍니다.)

그래서 다시 curl_setopt() 함수를 뒤져 보았습니다..
각각의 option 을 switch case 문을 사용해서 세팅 하고 있었습니다.

그런데 이걸 어떻게 세팅을 해야 하나..라고 고민  하다가..
case CURLOPT_TIMEOUT:
   $settings["max-time"] = (int) $value;
   break;

요런 구문을 찾았습니다.

음... 아마도 저 타임아웃이랑 그 타임 아웃이랑 같지 않을까...라고 추측 하고 그냥
case CURLOPT_CONNECTTIMEOUT :
case CURLOPT_TIMEOUT:
   $settings["max-time"] = (int) $value;
   break;

이렇게 추가 해주었습니다.(case 문은 break; 구문이 없으면 계속 실행 되는건 아시죠^^;;헤헤헤..)

이렇게 해주니... 정상적으로 작동이 되네요~~~꺄울...ㅠㅠ


아.. 정말 머리 아픈 삽질 이었지만 하고 나니 남는게 있는 듯한 느낌입니다..

제 블로그에 제대로된 글이 드디어 하나 생기네요..~~

+ Recent posts