윈도우 아파치에서 PHP Fatal error: Uncaught Error: Call to undefined function curl_init() 에러가 발생했을 때 해결하는 방법 2가지를 알려드릴게요.
제가 겪었던 문제 상황을 잠깐 설명드리면 다음과 같습니다.
제가 설치한 워드프레스에서 특정 플러그인이 동작을 안하길래 F12 개발자 도구를 열어보니 500 internal server Error가 발생했습니다.
아파치 로그 error.log를 살펴보니 PHP Fatal error: Uncaught Error: Call to undefined function curl_init() 에러가 발생한 걸 확인했습니다. php에 curl 모듈이 정상적으로 잡혀있지 않는 것으로 추정됩니다.
Uncaught Error: Call to undefined function curl_init() 해결법
첫번째 : php.ini 확인 및 수정
가장 먼저 확인해야 할 것은 php.ini 파일입니다. php가 설치된 폴더로 진입해주세요.
php.ini파일을 열어 extension=curl을 찾은 후 앞에 세미콜론 (;)이 있는 지 확인해주세요. 만약 세미콜론이 있다면 지우고 저장합니다. 그리고 아파치를 (httpd.exe) 재시작합니다.
이어서 아파치 phpinfo를 확인하여 [curl] 항목이 있는 지 검색합니다. 위와 같이 curl 항목이 있다면 적용이 완료된 것입니다.
- 위 phpinfo를 확인하는 방법을 모른다면 [여기]를 클릭해보세요. 쉽고 빠르게 알려드려요.
두번째 : libssh2.dll 파일 수정
만약에 extension=curl의 세미콜론을 삭제하구 아파치를 재시작해도 phpinfo에 curl이 없다면 다음을 진행해주세요.
- php가 설치된 폴더에서 libssh2.dll 파일을 찾아서 복사한다.
- Apache가 설치된 폴더의 bin/ 디렉토리로 이동하여 복사한 libssh2.dll 파일을 붙여넣는다.
- Apahe 재시작
이후 phpinfo를 확인해보면 curl이 잡힌 것을 볼 수 있습니다. 테스트해보니 처음에 발생했던 curl_init() 함수를 못 찾던 에러는 더이상 발생하지 않았습니다.