PHP curl DLL 불러오기 오류 해결 방법 가이드

PHP를 이용한 웹 개발에서 curl 모듈은 REST API 호출, 외부 서비스 연동, 데이터 크롤링 등 다양한 기능을 수행하는 핵심적인 확장 모듈입니다. 그러나 종종 PHP Warning: PHP Startup: Unable to load dynamic library 'php_curl.dll' 오류가 발생하여 많은 개발자들이 골머리를 앓습니다. 본 가이드에서는 이러한 오류가 발생하는 원인과 완벽한 해결 방법을 상세하게 설명합니다. 특히 PHP 7.x, 8.x, 최신 버전 모두를 아우르는 실전 노하우를 제공합니다.

PHP curl DLL 오류란 무엇인가?

PHP Warning: PHP Startup: Unable to load dynamic library 'php_curl.dll' 오류는 PHP 실행 시 curl 확장 모듈을 정상적으로 로드하지 못할 때 발생합니다. 오류 메시지 예시는 다음과 같습니다:

PHP Warning:  PHP Startup: Unable to load dynamic library 'php_curl.dll' (tried: C:phpextphp_curl.dll (지정된 모듈을 찾을 수 없습니다.))

이는 PHP가 php_curl.dll 파일을 찾지 못하거나 로드할 수 없는 경우, 또는 해당 DLL이 다른 라이브러리와 충돌하거나 호환되지 않을 때 주로 발생합니다.


php_curl.dll 오류 주요 원인

1. DLL 파일 누락

  • PHP 설치 시 ext 폴더에 php_curl.dll 파일이 존재하지 않는 경우

2. php.ini 설정 오류

  • php.ini에서 extension=php_curl.dll이 올바르게 설정되지 않은 경우

3. VC++ Redistributable 누락

  • PHP 버전에 맞는 Visual C++ 재배포 패키지가 설치되지 않아 DLL 의존성 문제가 발생할 수 있음

4. DLL 버전 불일치

  • PHP와 php_curl.dll이 서로 다른 컴파일 옵션으로 빌드된 경우

5. 시스템 PATH 설정 문제

  • 필수적인 OpenSSL DLL(libcrypto-3.dll, libssl-3.dll 등)이 시스템 경로에 없거나 다른 버전과 충돌

6. 32bit vs 64bit 불일치

  • PHP 64bit 버전에서 32bit용 php_curl.dll 사용 또는 그 반대의 경우

PHP curl DLL 오류 해결 6단계 프로세스

1단계: php_curl.dll 존재 여부 확인

  • C:phpext 또는 설치된 PHP 폴더의 ext 디렉터리에서 php_curl.dll 파일이 존재하는지 확인합니다.

2단계: php.ini에 올바르게 설정하기

  • php.ini 파일을 열어 다음 라인이 존재하고 주석처리되어 있지 않은지 확인합니다:
extension=php_curl.dll
  • 주의: extension_dir 경로도 정확하게 설정되어야 합니다.
extension_dir="ext"

3단계: 필수 DLL 확인

  • PHP 8.x 이상 버전에서는 libcrypto-3.dll, libssl-3.dll 등이 필요합니다.
  • PHP 설치 경로(C:php) 또는 시스템 PATH에 해당 DLL이 포함되어야 합니다.

4단계: Visual C++ 재배포 패키지 설치

  • PHP 공식 문서에서 확인한 버전에 맞는 VC++ 패키지를 설치합니다:
PHP 버전요구 VC++ 패키지
PHP 7.4VC15
PHP 8.0VS16 (VC16)
PHP 8.1~VS16/VS17 (VC16/VC17)

5단계: php.ini 적용 후 재시작

  • 설정 변경 후 반드시 Apache, Nginx, PHP-FPM 또는 CLI 환경에서 PHP를 재시작합니다.
# Apache 예시
httpd -k restart
# Nginx + php-fpm 예시
systemctl restart php-fpm
systemctl restart nginx

6단계: 확인 테스트

  • phpinfo() 또는 CLI에서 확인:
<?php phpinfo(); ?>
  • 또는 명령어:
php -m | findstr curl
  • 결과에 curl 모듈이 표시되면 정상 적용된 것입니다.

PHP 버전과 VC++ 재배포 패키지 호환성 확인법

중요: PHP는 컴파일 시 사용한 Visual Studio 버전과 동일한 VC++ 패키지가 필요합니다. DLL 오류의 80%는 이 문제에서 발생합니다.

  • PHP 다운로드 페이지에서 항상 “VCXX x64 Thread Safe” 또는 “VCXX x86 Non Thread Safe” 등의 표시를 확인해야 합니다.
php-8.3.8-Win32-vs16-x64.zip → VS16 설치 필요
  • VC++ 설치 후 시스템을 재부팅하여 DLL 경로를 제대로 반영합니다.

php.ini 파일 수정 시 주의사항

올바른 위치 확인

  • php.ini 파일은 여러 위치에 존재할 수 있습니다:
  • Apache 환경: C:Apache24inphp.ini 또는 C:phpphp.ini
  • CLI 환경: php -i | findstr php.ini

중복 extension 주의

  • extension=curlextension=php_curl.dll중복 선언하지 말 것.
  • PHP 8.x 이후 버전에서는 extension=curl 만으로 충분한 경우가 많음.

윈도우 환경에서 curl DLL 경로 확인 및 등록법

시스템 PATH 확인

  • C:php 또는 C:phpext 폴더를 PATH에 추가:
제어판 → 시스템 → 고급 시스템 설정 → 환경 변수 → 시스템 변수 PATH 수정

DLL 확인 도구 사용

필수 DLL 리스트

파일명위치 추천
php_curl.dllC:phpext
libcrypto-3.dllC:php 또는 PATH
libssl-3.dllC:php 또는 PATH

리눅스(Linux) 환경에서 PHP curl 오류 해결법

curl 패키지 설치

sudo apt update
sudo apt install php-curl

모듈 활성화 (Debian/Ubuntu)

sudo phpenmod curl
sudo systemctl restart apache2

확인

php -m | grep curl
  • curl이 출력되면 정상 설치됨.

추가 문제 발생 시 디버깅 팁

php-curl 설치했지만 오류 지속 시

  • phpinfo()로 extension_dir 확인
  • Dependency Walker로 DLL 의존성 점검
  • VC++ 패키지 재설치
  • PATH 변수 재설정

시스템 로그 확인

  • Apache:
C:Apache24logserror.log
  • PHP CLI:
php -m
  • PHP FPM (Linux):
journalctl -xeu php-fpm

결론

PHP에서 php_curl.dll 오류는 주로 DLL 누락, VC++ 미설치, 버전 불일치, PATH 설정 오류로 발생합니다. 본 가이드의 6단계 프로세스를 따르면 대부분 문제는 해결됩니다.

추가적으로 curl 오류가 빈번한 경우, PHP 재설치 또는 패키지 버전 업그레이드를 고려해 보세요. 최신 버전의 PHP는 보안 및 성능에서도 이점을 제공합니다.


게시됨

카테고리

작성자

태그:

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다