이 페이지에서는 MICROSOFT Drivers for PHP for SQL Server를 PHP 프로세스 공간에 로드하기 위한 지침을 제공합니다.
Microsoft Drivers for PHP for SQL Server GitHub 프로젝트 페이지에서 플랫폼에 대한 미리 빌드된 드라이버를 다운로드할 수 있습니다. 각 설치 패키지에는 스레드 및 스레드되지 않은 변형의 SQLSRV 및 PDO_SQLSRV 드라이버 파일이 포함되어 있습니다. Windows에서는 32비트 및 64비트 변형도 사용할 수 있습니다. 각 패키지에 포함된 드라이버 파일 목록을 보려면 Microsoft Drivers for PHP for SQL Server 시스템 요구 사항을 참조하세요. 드라이버 파일은 PHP 환경의 PHP 버전, 아키텍처 및 스레드 여부가 일치해야 합니다.
리눅스와 macOS에서는 설치 튜토리얼에 설명된 대로 PIE 또는 PECL로 드라이버를 설치할 수 있습니다.
Windows에서는 버전 5.13.3 이후 버전에서 PIE인 PHP 확장 설치 프로그램으로 드라이버를 설치할 수 있습니다. PIE는 더 이상 지원되지 않는 PECL 패키지 시스템을 대체하며, 확장 기능을 자동으로 활성화해 드라이버 파일을 다운로드하거나 직접php.ini 수정하지 않아도 됩니다. Windows는 빌드 툴체인이 필요하지 않은데, 확장 기능이 미리 컴파일된 DLL로 배포되기 때문입니다. PIE 자체는 PHP 8.1 이후 버전이 필요하지만, 기기 내 다른 PHP 설치에 확장 기능을 설치할 수 있습니다.
pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv
각 드라이버를 별도의 명령어로 설치하세요. PIE 설치 지침은 PIE 문서를 참조하세요.
Windows에서는 PIE가 패키지 저장소에 도달하기 위해 확장 프로그램이 필요합니다openssl. php.net .zip 패키지로 설치한 PHP는 기본 php.ini-development 파일을 사용하는데, 이 파일은 이를 활성화하지 않으므로 PIE는 The package "composer/ca-bundle" requires the extension "openssl"와 함께 중단됩니다. PIE를 실행하기 전에 php.ini 에서 확장 프로그램을 설정 extension_dir 하고 활성화하세요:
extension_dir = "ext"
extension=openssl
Linux와 macOS에서 패키지 관리 PHP 설치가 이미 활성화 openssl 되어 있으므로, 이 단계는 Windows에만 적용됩니다.
PHP를 빌드할 때 또는 phpize를 사용하여 소스에서 드라이버를 빌드할 수도 있습니다. 소스에서 드라이버를 빌드하기로 선택한 경우, PHP를 빌드할 때 --enable-sqlsrv=static --with-pdo_sqlsrv=static 명령에 --enable-sqlsrv=static --with-pdo-sqlsrv=static(Linux 및 macOS) 또는 ./configure(Windows)을(를) 추가하여 공유 확장으로 빌드하는 대신 정적으로 PHP에 빌드하는 옵션이 있습니다. PHP 빌드 시스템 및 phpize에 대한 자세한 내용은 PHP 설명서를 참조하세요.
드라이버 파일을 확장 디렉터리로 이동
드라이버 파일은 PHP 런타임에서 찾을 수 있는 디렉터리에 있어야 합니다. 드라이버 파일을 기본 PHP 확장 디렉터리에 배치하는 것이 가장 쉽습니다. 기본 디렉터리를 찾으려면 Windows에서는 php -i | sls extension_dir을 실행하고, Linux/macOS에서는 php -i | grep extension_dir을 실행하세요. 기본 확장 디렉터리를 사용하지 않는 경우 extension_dir 옵션을 사용하여 PHP 구성 파일(php.ini)에 디렉터리를 지정합니다. 예를 들어 Windows에서 드라이버 파일을 c:\php\ext 디렉터리에 배치한 경우, php.ini에 다음 줄을 추가하십시오.
extension_dir = "c:\PHP\ext"
PHP 시작 시 드라이버 로드
PHP가 시작될 때 SQLSRV 드라이버를 로드하려면 먼저 드라이버 파일을 확장 디렉터리로 이동합니다. 그런 후 다음 단계를 수행합니다.
SQLSRV 드라이버를 사용하도록 설정하려면 확장 섹션에 다음 줄을 추가하여 php.ini 수정하고 PHP 버전 및 스레드 안전 및 스레드로부터 안전한 비 스레드 설치에 맞게 파일 이름을 변경합니다.
Windows에서:
extension=php_sqlsrv_83_ts.dllLinux에서 배포판용 미리 빌드된 이진 파일을 다운로드한 경우:
extension=php_sqlsrv_83_nts.soSQLSRV 바이너리를 소스에서 컴파일했거나 PIE 또는 PECL로 설치했다면, 이름은 sqlsrv.so 입니다:
extension=sqlsrv.soPDO_SQLSRV 드라이버를 사용하도록 설정하려면 기본 제공 확장 또는 동적으로 로드되는 확장으로 PHP 데이터 개체(PDO) 확장을 사용할 수 있어야 합니다.
Windows에서는 미리 빌드된 PHP 이진 파일에 PDO가 기본 제공되므로 로드하기 위해 php.ini 수정할 필요가 없습니다. 원본에서 PHP를 컴파일하고 별도의 PDO 확장을 지정하여 빌드한 경우, 해당 이름은
php_pdo.dll이며, 이를 확장 디렉터리에 복사하고 php.ini 파일에 다음 줄을 추가해야 합니다.extension=php_pdo.dllLinux에서 시스템의 패키지 관리자를 사용하여 PHP를 설치한 경우 PDO는 pdo.so 명명된 동적으로 로드된 확장으로 설치될 수 있습니다. PDO 확장은 PDO_SQLSRV 확장 전에 로드해야 합니다. 그렇지 않으면 로드가 실패합니다. 확장은 개별 .ini 파일을 사용하여 로드되며 이러한 파일은 php.ini후에 읽습니다. 따라서 pdo.so가 자체 .ini 파일을 통해 로드된 경우 PDO 다음에 PDO_SQLSRV 드라이버를 로드하는 별도의 파일이 필요합니다.
확장별 .ini 파일이 있는 디렉터리를 찾으려면
php --ini을(를) 실행하고Scan for additional .ini files in:아래에 나열된 디렉터리를 확인합니다. pdo.so를 로드하는 파일을 찾습니다. 앞에 숫자(예: 10-pdo.ini)가 접두사로 지정되어야 합니다. 숫자 접두사는 .ini 파일의 로드 순서를 나타내고 숫자 접두사는 없는 파일은 사전순으로 로드됩니다. PDO_SQLSRV 드라이버 파일을 로드하기 위한 파일을 생성하세요. 이 파일은 30-pdo_sqlsrv.ini(이 이름은 pdo.ini보다 큰 숫자로 시작해야 합니다) 또는 pdo_sqlsrv.ini(pdo.ini에 숫자가 붙어 있지 않은 경우)로 이름이 지정되어야 합니다. 그런 다음, 해당 파일에 다음 줄을 추가하고 파일 이름을 적절히 변경하세요.extension=php_pdo_sqlsrv_3_nts.soSQLSRV와 마찬가지로, PDO_SQLSRV 바이너리를 소스에서 컴파일했거나 PIE 또는 PECL로 설치한 경우 이름은 pdo_sqlsrv.so입니다:
extension=pdo_sqlsrv.so이 파일을 다른 .ini 파일이 포함된 디렉터리에 복사합니다.
원본에서 기본 제공 PDO 지원을 포함하여 PHP를 컴파일한 경우, 별도의 .ini 파일이 필요하지 않으며, 이전 줄을 php.ini에 추가할 수 있습니다.
웹 서버를 다시 시작합니다.
참고 사항
드라이버가 성공적으로 로드되었는지 확인하려면 phpinfo()를 호출하는 스크립트를 실행합니다.
php.ini 지시문에 대한 자세한 내용은 핵심 php.ini 지시문 설명을 참조하세요.