Fatal error: Call to undefined function curl_init() 오류 해결법

By: master

curl_init 은 PHP에서 외부 API와 통신하거나 데이터를 요청할 때 자주 사용하는 함수 중 하나입니다. 그런데 php 코드를 실행했을 때 다음과 같은 오류 메시지가 나타난다면:

Fatal error: Call to undefined function curl_init()

이는 PHP 환경에서 cURL 확장 모듈이 비활성화되었거나 설치되지 않았을 때 발생하는 오류입니다. 이 글에서는 curl_init() 함수의 개념, 오류 발생 원인, 그리고 해결 방법을 단계별로 정리하여, PHP에서 cURL 기능을 정상적으로 사용할 수 있도록 설정하는 방법을 안내합니다.


1. curl_init() 함수란?

curl_init()는 PHP의 cURL 라이브러리에서 사용하는 함수로, 외부 URL에 HTTP 요청을 보내기 위한 세션을 초기화하는 역할을 합니다. 이 함수는 REST API 호출, 외부 서버 간 데이터 전송, 인증 요청 등 다양한 목적에 사용됩니다.

예시:

$ch = curl_init("https://api.example.com/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

이처럼 curl_init()은 cURL 기능의 핵심으로, 이 함수가 정의되지 않았다는 것은 PHP에서 cURL 자체를 사용할 수 없는 상태를 의미합니다.


2. curl_init 오류 원인: cURL 모듈 미설치 또는 미활성화

PHP는 기본적으로 cURL 확장을 내장하지 않기 때문에, 명시적으로 설치하고 php.ini 설정을 통해 활성화해야 합니다. 그렇지 않으면 curl_init()와 관련된 모든 함수가 작동하지 않습니다.


3. 에러 발생 시 점검 사항

✅ 에러 로그 확인

tail -f /var/log/apache2/error.log

에러 메시지:

Uncaught Error: Call to undefined function curl_init()

이 메시지가 보인다면 cURL 확장 모듈이 작동하지 않고 있다는 신호입니다.


4. PHP cURL 활성화 방법 (Ubuntu 기준)

🔧 1단계: cURL 모듈 설치

sudo apt-get install php8.3-curl

※ PHP 버전에 따라 php7.4-curl, php8.1-curl 등으로 달라질 수 있습니다.

🔧 2단계: php.ini 파일 수정

sudo vi /etc/php/8.3/apache2/php.ini

해당 파일에서 다음 줄을 찾습니다:

;extension=curl

세미콜론(;)을 제거하여 다음과 같이 수정:

extension=curl

🔧 3단계: Apache 또는 PHP-FPM 재시작

sudo systemctl restart apache2

또는 PHP-FPM 사용 시:

sudo systemctl restart php8.3-fpm

5. PHP에서 cURL이 정상적으로 작동하는지 확인하기

php -m | grep curl

출력 결과에 curl이 포함되어 있다면, 모듈이 정상적으로 활성화된 것입니다.

또는 간단한 PHP 파일을 만들어 확인할 수 있습니다:

<?php
phpinfo();
?>

웹 브라우저로 열었을 때 “curl” 관련 항목이 보이면 정상입니다.


6. 자주 묻는 질문 (FAQ)

❓ curl_init() 말고도 다른 함수들이 안 돼요

  • curl_exec(), curl_setopt() 등도 모두 cURL 모듈의 일부이므로, 동일한 이유로 작동하지 않습니다.

❓ php.ini 위치를 모르겠어요

php -i | grep php.ini

이 명령어를 입력하면 현재 사용 중인 php.ini 파일의 경로가 표시됩니다.

❓ Windows에서는 어떻게 하나요?

  1. PHP 설치 경로 내 php.ini 파일 열기
  2. ;extension=curl 앞의 세미콜론 제거
  3. Apache 또는 Nginx 재시작

7. 요약 정리

항목설명
오류 메시지Fatal error: Call to undefined function curl_init()
원인PHP cURL 확장 미설치 또는 비활성화
해결법php.ini 설정 및 패키지 설치 후 서버 재시작
확인법php -m, phpinfo()로 확인

나의 문제 해결 과정

php 파일 실행 중 문제가 있었다

/var/log/apache2/error.log 를 확인

Uncaught Error: Call to undefined function curl_init()

curl_init 에러가 있었다.

sudo vi /etc/php/8.3/apache2/php.ini

extension=curl

;이 주석인데 ; 주석을 지워서 확장으로 curl을 쓴다고 알려줌

sudo apt-get install php8.3-curl

php8.3-curl 설치

sudo systemctl restart apache2


✅ 결론: curl_init() 오류는 대부분 환경 설정 문제

이 에러는 코드의 문제라기보다는 PHP 환경에서 cURL 확장이 빠져있을 때 발생하는 환경 설정 오류입니다. 위의 단계를 따라 설치 및 설정을 진행하면 대부분 문제는 해결됩니다.

특히 서버를 처음 세팅했거나, PHP 버전을 변경한 경우 이 문제가 자주 발생하므로 반드시 점검 리스트에 포함해 주세요.

🔧 빠르게 해결하고 외부 API와의 통신을 안정적으로 구현해보세요!

관련 내용

2 thoughts on “Fatal error: Call to undefined function curl_init() 오류 해결법”

Leave a Comment