Windows에 PHP 확장 설치

Windows에서 PHP 확장을 로드하는 방법에는 PHP로 컴파일하거나 DLL을 로드하는 두 가지 방법이 있습니다. 미리 컴파일된 확장을 로드하는 것이 가장 쉽고 선호되는 방법입니다.

확장을 로드하려면 시스템에서 ".dll" 파일로 사용할 수 있어야 합니다. 모든 확장은 PHP 그룹에 의해 자동으로 주기적으로 컴파일됩니다(다운로드에 대해서는 다음 섹션 참조).

확장을 PHP로 컴파일하려면 소스 문서에서 빌드를 참조하세요.

독립 실행형 확장(DLL 파일이라고도 함)을 컴파일하려면 소스 문서에서 빌드를 참조하세요. PHP 배포판이나 PECL에서 DLL 파일을 사용할 수 없는 경우 확장을 사용하기 전에 먼저 컴파일해야 할 수 있습니다.

확장 프로그램은 어디에서 찾을 수 있나요?

PHP 확장은 일반적으로 "php_*.dll"(별표는 확장 이름을 나타냄)이라고 하며 "PHP\ext" 폴더 아래에 있습니다.

PHP는 대부분의 개발자에게 가장 유용한 확장과 함께 제공됩니다. 이를 "핵심" 확장이라고 합니다.

그러나 핵심 확장 프로그램에서 제공하지 않는 기능이 필요한 경우 » PECL에서 계속 찾을 수 있습니다. PHP 확장 커뮤니티 라이브러리(PECL)는 PHP 확장을 위한 저장소로, 알려진 모든 확장의 디렉토리와 PHP 확장 다운로드 및 개발을 위한 호스팅 시설을 제공합니다.

자신만의 확장 기능을 개발했다면 PECL에서 호스팅하여 동일한 요구 사항을 가진 다른 사람들이 시간을 활용할 수 있도록 하는 것이 좋습니다. 좋은 부작용은 피드백, (잘하면) 감사, 버그 보고서 및 수정/패치까지 제공할 수 있는 좋은 기회를 제공한다는 것입니다. PECL에서 호스팅할 확장 프로그램을 제출하기 전에 » PECL submit을 읽어보세요.

어떤 확장을 다운로드할 것인가?

여러 번 각 DLL의 여러 버전을 찾을 수 있습니다.

  • 다른 버전 번호(최소한 처음 두 번호가 일치해야 함)
  • 다양한 스레드 안전 설정
  • 다른 프로세서 아키텍처(x86, x64, ...)
  • 다양한 디버깅 설정
  • etc.

확장 설정은 사용 중인 PHP 실행 파일의 모든 설정과 일치해야 합니다. 다음 PHP 스크립트는 PHP 설정에 대한 모든 것을 알려줍니다.

예제 #1 phpinfo() 호출

                  
<?php phpinfo(); ?>
                  
                

또는 명령줄에서 다음을 실행합니다.

drive:\\path\to\php\executable\php.exe -i
확장 로드

PHP 확장을 로드하는 가장 일반적인 방법은 php.ini 구성 파일에 포함하는 것입니다. 많은 확장이 php.ini에 이미 존재하며 활성화하려면 세미콜론을 제거하기만 하면 됩니다.

PHP 버전 7.2.0 이상에서는 확장 파일 이름 대신 확장 이름을 사용할 수 있습니다. 이것은 OS 독립적이고 더 쉽기 때문에 특히 신규 사용자에게 로드할 확장을 지정하는 권장 방법이 됩니다. 파일 이름은 이전 버전과의 호환성을 위해 계속 지원됩니다.

;extension=php_extname.dll
extension=php_extname.dll
; On PHP version 7.2 and up, prefer :
extension=extname
zend_extension=another_extension
                

그러나 일부 웹 서버는 PHP 실행 파일 옆에 있는 php.ini를 사용하지 않기 때문에 혼란스럽습니다. 실제 php.ini가 있는 위치를 찾으려면 phpinfo()에서 경로를 찾으십시오.

Configuration File (php.ini) Path  C:\WINDOWS
Loaded Configuration File   C:\Program Files\PHP\5.2\php.ini

확장 활성화 후 php.ini를 저장하고 웹서버를 재시작한 후 phpinfo()를 다시 확인합니다. 이제 새 확장에 자체 섹션이 있어야 합니다.

문제 해결

확장이 phpinfo()에 나타나지 않으면 로그를 확인하여 문제가 어디에서 왔는지 알아야 합니다.

명령줄(CLI)에서 PHP를 사용하는 경우 확장 로드 오류를 화면에서 직접 읽을 수 있습니다.

웹 서버에서 PHP를 사용하는 경우 로그의 위치와 형식은 소프트웨어에 따라 다릅니다. 로그는 PHP 자체와 관련이 없으므로 웹 서버 설명서를 읽고 로그를 찾으십시오.

일반적인 문제는 DLL의 위치와 DLL이 의존하는 DLL, php.ini 내의 " extension_dir" 설정 값 및 컴파일 시간 설정 불일치입니다.

문제가 컴파일 시간 설정 불일치에 있는 경우 올바른 DLL을 다운로드하지 않았을 수 있습니다. 올바른 설정으로 확장 프로그램을 다시 다운로드하십시오. 다시 말하지만, phpinfo()는 큰 도움이 될 수 있습니다.