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.4 | VC15 |
| PHP 8.0 | VS16 (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=curl과extension=php_curl.dll을 중복 선언하지 말 것.- PHP 8.x 이후 버전에서는
extension=curl만으로 충분한 경우가 많음.
윈도우 환경에서 curl DLL 경로 확인 및 등록법
시스템 PATH 확인
C:php또는C:phpext폴더를 PATH에 추가:
제어판 → 시스템 → 고급 시스템 설정 → 환경 변수 → 시스템 변수 PATH 수정
DLL 확인 도구 사용
필수 DLL 리스트
| 파일명 | 위치 추천 |
|---|---|
| php_curl.dll | C:phpext |
| libcrypto-3.dll | C:php 또는 PATH |
| libssl-3.dll | C: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는 보안 및 성능에서도 이점을 제공합니다.
답글 남기기