PHP 7.2 çalıştıran Ubuntu 18.04 sunucusunda PHP için Microsoft SQL Server modülünü kurmak istiyoru. SQL sunucusu için PHP modülünü adresinde bulabilirsiniz.
https://github.com/microsoft/msphpsql
Bu PHP modülü yazıldığı sırada yalnızca PHP 7.4 ve daha yeni sürümleri desteklemektedir. Bu yüzden PHP 7.2’yi destekleyen eski bir sürümü bulmamız gerekiyor. Sürüm sayfasını kontrol ederken, 5.8.0 sürümünün PHP 7.2’yi desteklediğini gördük
İlk önce php7.2 dev paketini şu şekilde kurun:
| apt install php7.2-dev |
pcel ile php modüllerini kurun
| pecl install sqlsrv-5.8.0 |
Kurulum sırasında hata aldık
| configure: creating ./config.status config.status: creating config.h config.status: executing libtool commands running: make /bin/bash /tmp/pear/temp/pear-build-rootnuxjAy/sqlsrv-5.8.0/libtool –mode=compile g++ -std=c++11 -I. -I/tmp/pear/temp/sqlsrv -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootnuxjAy/sqlsrv-5.8.0/include -I/tmp/pear/temp/pear-build-rootnuxjAy/sqlsrv-5.8.0/main -I/tmp/pear/temp/sqlsrv -I/usr/include/php/20170718 -I/usr/include/php/20170718/main -I/usr/include/php/20170718/TSRM -I/usr/include/php/20170718/Zend -I/usr/include/php/20170718/ext -I/usr/include/php/20170718/ext/date/lib -I/tmp/pear/temp/sqlsrv/shared/ -DHAVE_CONFIG_H -std=c++11 -D_FORTIFY_SOURCE=2 -O2 -fstack-protector -c /tmp/pear/temp/sqlsrv/conn.cpp -o conn.lo libtool: compile: g++ -std=c++11 -I. -I/tmp/pear/temp/sqlsrv -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootnuxjAy/sqlsrv-5.8.0/include -I/tmp/pear/temp/pear-build-rootnuxjAy/sqlsrv-5.8.0/main -I/tmp/pear/temp/sqlsrv -I/usr/include/php/20170718 -I/usr/include/php/20170718/main -I/usr/include/php/20170718/TSRM -I/usr/include/php/20170718/Zend -I/usr/include/php/20170718/ext -I/usr/include/php/20170718/ext/date/lib -I/tmp/pear/temp/sqlsrv/shared/ -DHAVE_CONFIG_H -std=c++11 -D_FORTIFY_SOURCE=2 -O2 -fstack-protector -c /tmp/pear/temp/sqlsrv/conn.cpp -fPIC -DPIC -o .libs/conn.o In file included from /tmp/pear/temp/sqlsrv/shared/typedefs_for_linux.h:23:0, from /tmp/pear/temp/sqlsrv/shared/xplat_winnls.h:24, from /tmp/pear/temp/sqlsrv/shared/FormattedPrint.h:24, from /tmp/pear/temp/sqlsrv/shared/core_sqlsrv.h:41, from /tmp/pear/temp/sqlsrv/php_sqlsrv_int.h:25, from /tmp/pear/temp/sqlsrv/conn.cpp:24: /tmp/pear/temp/sqlsrv/shared/xplat.h:30:10: fatal error: sql.h: No such file or directory #include ^ compilation terminated. Makefile:194: recipe for target ‘conn.lo’ failed make: *** [conn.lo] Error 1 ERROR: `make’ failed root@server:~# |
Düzeltmek için aşağıdaki komutu çalıştırdık
| apt-get install unixodbc-dev |
pdo_sqlsrv kurmak için aşağıdaki komutu çalıştırın
| pecl install pdo_sqlsrv-5.8.0 |
Çalıştırın
| printf “; priority=20\nextension=sqlsrv.so\n” > /etc/php/7.2/mods-available/sqlsrv.ini printf “; priority=30\nextension=pdo_sqlsrv.so\n” > /etc/php/7.2/mods-available/pdo_sqlsrv.ini |
PHP modüllerini etkinleştirin
| phpenmod -v 7.2 sqlsrv pdo_sqlsrv |
Apache’yi yeniden başlatın, şimdi phpinfo(), pdo_sqlsrv’yi gösteriyor

Ancak MS SQL sunucusuna bağlanan PHP betiğine erişirken hata alıyoruz
This extension requires the Microsoft ODBC Driver for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver for SQL Server for x64
Bunu düzeltmek için
| curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add – |
Ubuntu 16.04 için
| curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list |
Ubuntu 18.04 için
| curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list |
Ubuntu 20.04 için
| curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list |
Ubuntu 20.10
| curl https://packages.microsoft.com/config/ubuntu/20.10/prod.list > /etc/apt/sources.list.d/mssql-release.list |
apt önbelleğini güncelleyin
| apt-get update |
Microsoft ODBC’yi yükleyin
| apt-get install -y msodbcsql17 |
İsteğe bağlı: bcp ve sqlcmd için
| apt-get install -y mssql-toolsecho ‘export PATH=”$PATH:/opt/mssql-tools/bin”‘ >> ~/.bashrcsource ~/.bashrc apt-get install -y unixodbc-dev |
Artık php MS SQL modülü çalışacaktır.
Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.