Memuat Driver Microsoft untuk PHP untuk SQL Server

Unduh driver PHP

Halaman ini menyediakan instruksi untuk memuat Driver Microsoft untuk PHP untuk SQL Server ke ruang proses PHP.

Anda dapat mengunduh driver bawaan untuk platform Anda dari halaman proyek GitHub Microsoft Drivers for PHP for SQL Server . Setiap paket penginstalan berisi file driver SQLSRV dan PDO_SQLSRV dalam varian utas dan non-utas. Di Windows, mereka juga tersedia dalam varian 32-bit dan 64-bit. Lihat Persyaratan Sistem untuk Driver Microsoft untuk PHP untuk SQL Server untuk daftar file driver yang terkandung dalam setiap paket. File driver harus cocok dengan versi PHP, arsitektur, dan utas lingkungan PHP Anda.

Di Linux dan macOS, Anda dapat menginstal driver dengan PIE atau PECL, seperti yang dijelaskan dalam tutorial instalasi.

Di Windows, Anda dapat menginstal driver dengan PIE, PHP Installer for Extensions, pada versi 5.13.3 dan versi yang lebih baru. PIE menggantikan sistem paket PECL yang sudah tidak digunakan lagi, dan mengaktifkan ekstensi untuk Anda, sehingga Anda tidak perlu mengunduh file driver atau mengedit php.ini secara manual. Windows tidak memerlukan toolchain build, karena ekstensi didistribusikan sebagai DLL yang sudah dikompilasi. PIE sendiri membutuhkan PHP 8.1 dan versi yang lebih baru untuk berjalan, meskipun dapat menginstal ekstensi ke instalasi PHP lain di mesin.

pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv

Instal setiap driver dengan perintah sendiri. Untuk petunjuk instalasi PIE, lihat dokumentasi PIE.

Pada Windows, PIE memerlukan ekstensi openssl untuk mengakses repositori paket. Instalasi PHP dari paket php.net.zip menggunakan file php.ini-development standar, yang tidak mengaktifkannya, dan PIE berhenti dengan The package "composer/ca-bundle" requires the extension "openssl". Atur extension_dir dan aktifkan ekstensi di php.ini sebelum Anda menjalankan PIE:

extension_dir = "ext"
extension=openssl

Instalasi PHP yang dikelola paket di Linux dan macOS sudah aktifopenssl, jadi langkah ini hanya berlaku untuk Windows.

Anda juga dapat membangun driver dari sumber baik saat membangun PHP atau dengan menggunakan phpize. Jika Anda memilih untuk membangun driver dari sumber, Anda memiliki opsi untuk membuatnya secara statis ke PHP alih-alih membangunnya sebagai ekstensi bersama dengan menambahkan --enable-sqlsrv=static --with-pdo_sqlsrv=static (di Linux dan macOS) atau --enable-sqlsrv=static --with-pdo-sqlsrv=static (di Windows) ke ./configure perintah saat membangun PHP. Untuk informasi selengkapnya tentang sistem build PHP dan phpize, lihat dokumentasi PHP.

Memindahkan file driver ke direktori ekstensi Anda

File driver harus berada di direktori tempat runtime PHP dapat menemukannya. Paling mudah untuk menempatkan file driver di direktori ekstensi PHP default Anda - untuk menemukan direktori default, berjalan php -i | sls extension_dir di Windows atau php -i | grep extension_dir di Linux/macOS. Jika Anda tidak menggunakan direktori ekstensi default, tentukan direktori dalam file konfigurasi PHP (php.ini), menggunakan opsi extension_dir . Misalnya, pada Windows, jika Anda meletakkan file driver di direktori Anda c:\php\ext , tambahkan baris berikut ke php.ini:

extension_dir = "c:\PHP\ext"

Memuat driver di startup PHP

Untuk memuat driver SQLSRV saat PHP dimulai, pertama-tama pindahkan file driver ke direktori ekstensi Anda. Lalu, ikuti langkah-langkah berikut:

  1. Untuk mengaktifkan driver SQLSRV, ubah php.ini dengan menambahkan baris berikut ke bagian ekstensi, sesuaikan nama file sesuai dengan versi PHP Anda dan jenis instalasi apakah aman utas (thread-safe) atau tidak aman utas (non-thread safe).

    Di Windows:

    extension=php_sqlsrv_83_ts.dll
    

    Di Linux, jika Anda mengunduh biner bawaan untuk distribusi Anda:

    extension=php_sqlsrv_83_nts.so
    

    Jika Anda mengompilasi biner SQLSRV dari sumbernya, atau menginstalnya dengan PIE atau PECL, namanya adalah sqlsrv.so:

    extension=sqlsrv.so
    
  2. Untuk mengaktifkan driver PDO_SQLSRV , ekstensi OBJEK Data PHP (PDO) harus tersedia, baik sebagai ekstensi bawaan, atau sebagai ekstensi yang dimuat secara dinamis.

    Di Windows, biner PHP bawaan dilengkapi dengan bawaan PDO, sehingga tidak perlu memodifikasi php.ini untuk memuatnya. Namun, jika Anda mengkompilasi PHP dari sumber dan menentukan ekstensi PDO terpisah yang akan dibuat, namanya adalah php_pdo.dll, dan Anda harus menyalinnya ke direktori ekstensi Anda dan menambahkan baris berikut ke php.ini:

    extension=php_pdo.dll
    

    Di Linux, jika Anda menginstal PHP menggunakan manajer paket sistem Anda, PDO mungkin diinstal sebagai ekstensi yang dimuat secara dinamis bernama pdo.so. Ekstensi PDO harus dimuat sebelum ekstensi PDO_SQLSRV, atau pemuatan gagal. Ekstensi dimuat menggunakan file .ini individual, dan file-file ini dibaca setelah php.ini. Oleh karena itu, jika pdo.so dimuat melalui file .ini sendiri, file terpisah yang memuat driver PDO_SQLSRV setelah PDO diperlukan.

    Untuk mengetahui direktori mana file .ini khusus ekstensi berada, jalankan php --ini dan perhatikan direktori yang tercantum di bawah Scan for additional .ini files in:. Temukan file yang memuat pdo.so. Ini harus diawali dengan angka, seperti 10-pdo.ini. Awalan numerik menunjukkan urutan pemuatan file .ini, sementara file yang tidak memiliki awalan numerik dimuat menurut abjad. Buat file untuk memuat file driver PDO_SQLSRV yang disebut 30-pdo_sqlsrv.ini (angka apa pun yang lebih besar dari yang awalan pdo.ini berfungsi) atau pdo_sqlsrv.ini (jika pdo.ini tidak diawali dengan angka), dan tambahkan baris berikut ke dalamnya, mengubah nama file yang sesuai:

    extension=php_pdo_sqlsrv_3_nts.so
    

    Seperti SQLSRV, jika Anda mengompilasi biner PDO_SQLSRV dari sumber, atau menginstalnya dengan PIE atau PECL, namanya adalah pdo_sqlsrv.so:

    extension=pdo_sqlsrv.so
    

    Salin file ini ke direktori yang berisi file .ini lainnya.

    Jika Anda mengkompilasi PHP dari sumber dengan dukungan PDO bawaan, Anda tidak memerlukan file .ini terpisah, dan Anda dapat menambahkan baris sebelumnya ke php.ini.

  3. Mulai ulang server Web.

Catatan

Untuk menentukan apakah driver berhasil dimuat, jalankan skrip yang memanggil phpinfo().

Untuk informasi selengkapnya tentang arahan php.ini , lihat Deskripsi arahan php.ini inti.