İlk olarak, PHP'nin hangi php.ini dosyasını kullandığını bulmalısın. Aşağıdaki komutu çalıştırarak bu dosyanın yolunu öğrenebilirsin:
php ini
PHP Uzantıları Klasörü Yolu
PHP uzantılarının bulunduğu yerin tipik yolları şunlardır:
Apache (CLI) için: /usr/lib/php/20230831/
FPM için: /usr/lib/php/20230831/
Ayrıca, /usr/lib/php/ içinde veya /usr/local/lib/php/ gibi dizinlerde de bulunabilir.
PHP'nin uzantılar dizinini öğrenmek için şu komutu kullanabilirsin:
php -i | grep extension_dir
Bu komut, PHP'nin uzantılarının bulunduğu dizini gösterecektir. Örneğin:
extension_dir => /usr/lib/php/20230831 => /usr/lib/php/20230831
Modüllerin Kurulumu
Eğer modüller doğru yerde değilse, PECL ile yeniden kurulum yapman gerekebilir.
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
Yukarıdaki komutlar, modülleri doğru dizine yükleyecektir.
Modülleri Manuel Olarak Taşıma
Eğer PECL yüklemesi başarılı olsa da, modüller yanlış dizine yüklenmişse, manuel olarak taşımayı deneyebilirsin.

Örneğin:
sudo cp /path/to/sqlsrv.so /usr/lib/php/20230831/
sudo cp /path/to/pdo_sqlsrv.so /usr/lib/php/20230831/
Yol, PHP'nin uzantılar diziniyle uyumlu olmalı.
php.ini'ye Doğru Yolu Ekleme
Sonrasında, php.ini dosyasına şu satırları eklemelisin (PHP'nin uzantılar dizininde doğru dosya yolu olduğundan emin olduktan sonra):
extension=sqlsrv.so
extension=pdo_sqlsrv.so
5. Web Sunucusunu Yeniden Başlat
Web sunucusunu yeniden başlatmalısın:
sudo systemctl restart apache2 # Apache için
sudo systemctl restart php8.3-fpm # PHP-FPM için
pdo_sqlsrv.so ve sqlsrv.so Modüllerini php.ini'ye Ekleme
PHP'nin php.ini dosyasını açarak, pdo_sqlsrv.so ve sqlsrv.so modüllerini eklemelisin. Örneğin:
sudo nano /etc/php/8.4/fpm/php.ini
Veya apache2 kullanıyorsan:
sudo nano /etc/php/8.4/apache2/php.ini
Bu dosyada, aşağıdaki satırları ekleyin veya varsa, doğru şekilde etkinleştirin:
extension=sqlsrv.so
extension=pdo_sqlsrv.so
veya
/etc/php/8.4/mods-available adresine gidip ini dosya oluştur (içinde zaten bunlar yazılı)


Modülleri aktif et
PHP modlarını etkinleştirmek için:
sudo phpenmod sqlsrv pdo_sqlsrv
PHP-FPM veya Apache'yi Yeniden Başlatma
Yapılandırma dosyasındaki değişikliklerin geçerli olması için PHP-FPM veya Apache'yi yeniden başlatmalısın:
PHP-FPM için:
sudo systemctl restart php8.4-fpm
Apache için:
sudo systemctl restart apache2
PHP Modüllerini Kontrol Etme
Son olarak, modüllerin düzgün yüklenip yüklenmediğini kontrol etmek için şu komutu çalıştır:
php -m | grep sqlsrv

If you are getting this error while trying to install Microsoft Drivers for PHP for SQL server
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
you should do the following:
First:
Inspect this folder /usr/lib/x86_64-linux-gnu/ and verify that the following file exists: libltdl.la
Second:
If the file does not exist, just run the following command to create a blank file:
touch /usr/lib/x86_64-linux-gnu/libltdl.la
Try to run the pecl command again
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
Third:
If the issue still persists, create a new file and copy the following content to it:
https://www.apt-browse.org/browse/debian/jessie/main/amd64/libltdl-dev/2.4.2-1.11+b1/file/usr/lib/x86_64-linux-gnu/libltdl.la
and try to install the sqlsrv and pdo_sqlsrv again.
then verify that you can see the pdo_sqlsrv module by running:
php -m
Reference
Linux and macOS Installation Tutorial for the Microsoft Drivers for PHP for SQL Server
Kaynak