Memuat Driver Microsoft untuk PHP untuk SQL Server

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

Instal driver di Windows dengan PIE

PIE, PHP Installer untuk Ekstensi, menginstal file driver yang sudah dikompilasi dan mengaktifkannya dalam konfigurasi baris perintah PHP. Windows tidak memerlukan rantai alat build.

  1. Instal versi PHP yang didukung dan Microsoft ODBC Driver untuk SQL Server.

  2. Jalankan php --ini. Jika File Konfigurasi yang Dimuat adalah (none), salin php.ini-development dari direktori instalasi PHP ke php.ini di direktori yang sama.

  3. Pada php.ini, atur direktori ekstensi dan aktifkan ekstensi dan opensslzip :

    extension_dir = "ext"
    extension=openssl
    extension=zip
    
  4. Dari direktori kerja yang dapat ditulisi, unduh pie.phar stabil terbaru. Perintah ini bekerja di Command Prompt dan PowerShell:

    curl.exe -fL --output pie.phar https://github.com/php/pie/releases/latest/download/pie.phar
    

    Jika Anda memiliki GitHub CLI, pastikan bahwa PHP Foundation telah mempublikasikan file tersebut:

    gh attestation verify --owner php .\pie.phar
    
  5. Instal kedua driver dengan menggunakan executable PHP pada PATH:

    php .\pie.phar install microsoft/sqlsrv
    php .\pie.phar install microsoft/pdo_sqlsrv
    
  6. Pastikan bahwa runtime PHP baris perintah yang sama memuat kedua driver tersebut:

    php --ri sqlsrv
    php --ri pdo_sqlsrv
    

Untuk metode instalasi PIE lainnya, lihat dokumentasi penggunaan PIE.

Instal driver di Linux dan macOS

Instal driver dan ketergantungan platformnya dengan PIE seperti yang dijelaskan dalam tutorial instalasi Linux dan macOS.

Instal driver bawaan secara manual

Anda dapat mengunduh driver yang sudah dibangun dari halaman Microsoft Drivers for PHP for SQL Server. Unduhan Windows adalah ZIP yang berisi file driver SQLSRV dan PDO_SQLSRV untuk setiap versi PHP yang didukung, arsitektur, dan mode keamanan thread. Pilih file yang sesuai dengan lingkungan PHP Anda. Lihat Persyaratan sistem untuk daftar file.

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 PHP Data Objects (PDO) harus tersedia, baik sebagai ekstensi bawaan maupun 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.