SQL Server için PHP için Microsoft Sürücüleri'ni yükleme

PHP sürücüsünü indirme

Bu sayfada, SQL Server için PHP için Microsoft Sürücüleri'ni PHP işlem alanına yüklemeye yönelik yönergeler sağlanır.

Platformunuz için önceden oluşturulmuş sürücüleri PHP için Microsoft SQL Server Sürücüleri GitHub proje sayfasından indirebilirsiniz. Her yükleme paketi, iş parçacıklı ve iş parçacıklı olmayan değişkenlerde SQLSRV ve PDO_SQLSRV sürücü dosyaları içerir. Windows'ta, bunlar 32 bit ve 64 bit çeşitlemelerle de kullanılabilir. Her pakette yer alan sürücü dosyalarının listesi için bkz. SQL Server için PHP için Microsoft Sürücüleri Sistem Gereksinimleri . Sürücü dosyasının PHP ortamınızın PHP sürümü, mimarisi ve iş parçacığı yapısıyla eşleşmesi gerekir.

Linux ve macOS'ta, kurulum eğitiminde açıklandığı gibi alternatif olarak sürücüleri PIE veya PECL ile kurabilirsiniz.

Windows'ta, sürücüleri PIE, yani PHP Eklenti Yükleyicisi olan PIE, 5.13.3 sürümü ve sonraki sürümlerinde yükleyebilirsiniz. PIE, kullanımdan kaldırılmış PECL paket sisteminin yerini alır ve uzantıyı sizin için etkinleştirir; böylece bir sürücü dosyası indirmeniz veya php.ini dosyasını elle düzenlemeniz gerekmez. Windows'un derleme araç zincirine ihtiyacı yoktur, çünkü uzantılar önceden derlenmiş DLL'ler olarak dağıtılır. PIE'nin kendisi çalışmak için PHP 8.1 ve daha sonraki sürümleri gerektirir, ancak makinedeki diğer herhangi bir PHP kurulumuna bir uzantı yükleyebilir.

pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv

Her sürücüyü kendi komutuyla yükleyin. PIE'nin kurulumu için talimatlar için PIE dokümantasyonuna bakınız.

Windows'ta PIE, paket deposuna ulaşmak için uzantıya openssl ihtiyaç duyar. php.net .zip paketinden yapılan bir PHP kurulumu, varsayılan php.ini-development dosyasını kullanır; bu dosya bunu etkinleştirmez ve PIE The package "composer/ca-bundle" requires the extension "openssl" ile durur. PIE'yi çalıştırmadan önce öğesini ayarlayın ve uzantıyı extension_dir içinde etkinleştirin:

extension_dir = "ext"
extension=openssl

Linux ve macOS'ta paket yönetimli PHP kurulumları zaten etkinleştirildiği openssl için bu adım sadece Windows için geçerlidir.

PHP'yi derlerken veya phpize kullanarak kaynak koddan sürücüleri de oluşturabilirsiniz. Sürücüleri kaynaktan derlemeyi seçerseniz, onları paylaşılan uzantılar olarak oluşturmak yerine, --enable-sqlsrv=static --with-pdo_sqlsrv=static (Linux ve macOS'ta) veya --enable-sqlsrv=static --with-pdo-sqlsrv=static (Windows'da) komutlarına ekleyerek PHP'ye statik olarak dahil etme seçeneğiniz vardır. PHP derleme sistemi ve phpizehakkında daha fazla bilgi için PHP belgelerine bakın.

Sürücü dosyasını uzantı dizininize taşıma

Sürücü dosyası, PHP çalışma zamanının bulabildiği bir dizinde bulunmalıdır. En kolayı, sürücü dosyasını varsayılan PHP uzantısı dizininize yerleştirmektir. Varsayılan dizini bulmak için Windows'ta veya php -i | sls extension_dir Linux/macOS'ta çalıştırınphp -i | grep extension_dir. Varsayılan uzantı dizinini kullanmıyorsanız, extension_dir seçeneğini kullanarak PHP yapılandırma dosyasında (php.ini) bir dizin belirtin. Örneğin Windows'ta, sürücü dosyasını c:\php\ext dizinine koyarsanız, php.ini dosyasına aşağıdaki satırı ekleyin:

extension_dir = "c:\PHP\ext"

PHP başlangıcında sürücüyü yükleme

PHP başlatıldığında SQLSRV sürücüsünü yüklemek için önce bir sürücü dosyasını uzantı dizininize taşıyın. Ardından şu adımları izleyin:

  1. SQLSRV sürücüsünü etkinleştirmek için, uzantı bölümüne aşağıdaki satırı ekleyerek php.ini'yi değiştirin ve PHP sürümünüz ile iş parçacığı güvenli veya güvenli olmayan kurulumunuza uygun şekilde dosya adını değiştirin.

    Windows'da:

    extension=php_sqlsrv_83_ts.dll
    

    Linux'ta dağıtımınız için önceden oluşturulmuş ikili dosyaları indirdiyseniz:

    extension=php_sqlsrv_83_nts.so
    

    SQLSRV ikili dosyasını kaynaktan derlediyseniz veya PIE veya PECL ile yüklediyseniz, adı sqlsrv.so:

    extension=sqlsrv.so
    
  2. PDO_SQLSRV sürücüsünü etkinleştirmek için PHP Veri Nesneleri (PDO) uzantısının yerleşik bir uzantı veya dinamik olarak yüklenen bir uzantı olarak kullanılabilir olması gerekir.

    Windows'da, önceden oluşturulmuş PHP ikili dosyaları PDO yerleşik olarak gelir, bu nedenle yüklemek için php.ini değiştirmeniz gerekmez. Ancak PHP'yi kaynaktan derlediyseniz ve oluşturulacak ayrı bir PDO uzantısı belirttiyseniz, adı php_pdo.dll ve uzantı dizininize kopyalayıp aşağıdaki satırı php.ini dosyasına eklemeniz gerekir:

    extension=php_pdo.dll
    

    Linux'ta, sisteminizin paket yöneticisini kullanarak PHP yüklediyseniz, PDO büyük olasılıkla pdo.so adlı dinamik olarak yüklenmiş bir uzantı olarak yüklenir. PDO_SQLSRV uzantısından önce PDO uzantısı yüklenmelidir, aksi takdirde yükleme başarısız olur. Uzantılar tek tek .ini dosyaları kullanılarak yüklenir ve bu dosyalar php.inisonra okunur. Bu nedenle, pdo.so kendi .ini dosyası üzerinden yüklenirse, PDO'ya ihtiyaç duyulduktan sonra PDO_SQLSRV sürücüsünü yüken ayrı bir dosya gerekir.

    Uzantıya özgü .ini dosyalarının bulunduğu dizini bulmak için komutunu çalıştırın php --ini ve altında Scan for additional .ini files in:listelenen dizini not edin. pdo.so yükleyen dosyayı bulun. 10-pdo.ini gibi bir sayı ile başlamalıdır. Sayısal ön ek, .ini dosyalarının yükleme sırasını belirtirken, sayısal ön eki olmayan dosyalar alfabetik olarak yüklenir. 30-pdo_sqlsrv.ini (pdo.ini'nin öncesinde gelen numaradan daha büyük bir sayı kullanılarak) veya pdo_sqlsrv.ini (pdo.ini bir sayıyla öncesinde gelmiyorsa) adlı PDO_SQLSRV sürücü dosyasını yüklemek amacıyla bir dosya oluşturun ve dosya adını uygun şekilde değiştirerek aşağıdaki satırı ekleyin:

    extension=php_pdo_sqlsrv_3_nts.so
    

    SQLSRV'de olduğu gibi, PDO_SQLSRV ikili dosyayı kaynaktan derlediyseniz veya PIE veya PECL ile kurduysanız, adı pdo_sqlsrv.so'dur:

    extension=pdo_sqlsrv.so
    

    Bu dosyayı diğer .ini dosyalarını içeren dizine kopyalayın.

    Php'yi yerleşik PDO desteğiyle kaynaktan derlediyseniz, ayrı bir .ini dosyası gerekmez ve önceki satırı php.iniekleyebilirsiniz.

  3. Web sunucusunu yeniden başlatın.

Uyarı

Sürücünün başarıyla yüklenip yüklenmediğini belirlemek için phpinfo() çağıran bir betik çalıştırın.

php.ini yönergeleri hakkında daha fazla bilgi için bkz. Temel php.ini yönergelerinin açıklaması.