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에서는 어떻게 하나요?
- PHP 설치 경로 내 php.ini 파일 열기
;extension=curl
앞의 세미콜론 제거- 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() 오류 해결법”