PHP ile yazılmış uygulamalarda SQL Server Bağlantısı İçin Gerekli Kurulumlar (Ubuntu 18.04 LTS Bionic)

Çalışmakta olduğum firmanın ERP ve Otomasyon yazılımlarının veri tabanı kısmı MSSQL ile yürütülmekteydi. Üzerinde çalıştığım proje web taraflı olacaktı ve bunun için PHP kullanacaktım ancak MSSQL ile bağlantı sağlamak için PHP içerisinde hali hazırda bir modül yoktu. Bu durumla daha önce de karşılaşmıştım ve çözümü gayet basit sevgili arkadaşlar.
Benim kullandığım Linux serverim Ubuntu 18.04 Bionic. Server üzerinden yayını NGINX ve PHP7.2 ile yapmaktayım. Aşağıda belirteceğim kurulum ayarları APACHE için farklılık gösterebilir. Ben kendi yapılandırmama istinaden açıklamaya başlıyorum.
Öncelikle ODBC için gerekli paket depolarının tanımını yapıyoruz ;
sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - # Ubuntu 18.04 curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list exit
Şimdi paket depolarımızı güncelleyelim ve EULA koşullarını kabul ettiğimizi belirterek ODBC kuruluma geçelim ;
sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msodbcsql17
ODBC için dev ve mssql tools kurulumunu yapalım ;
sudo apt-get install unixodbc-dev mssql-tools
PHP için gerekli SQL Driverlarını İndiriyoruz;
sudo apt-get -y install php-pear php7.2-dev sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv
Driver dosyalarını PHP içerisine dahil ediyoruz ;
sudo su echo "extension=sqlsrv.so" > /etc/php/7.2/mods-available/sqlsrv.ini echo "extension=pdo_sqlsrv.so" > /etc/php/7.2/mods-available/pdo_sqlsrv.ini exit
PHP cli için sql server eklentisini aktif hale getirmek için aşağıdaki komutları uyguluyoruz ;
sudo ln -s /etc/php/7.2/mods-available/sqlsrv.ini /etc/php/7.2/cli/conf.d/20-sqlsrv.ini
sudo ln -s /etc/php/7.2/mods-available/pdo_sqlsrv.ini /etc/php/7.2/cli/conf.d/20-pdo_sqlsrv.ini
Son olarak FPM için de sql server eklentilerini aktif hale getiriyoruz;
sudo ln -s /etc/php/7.2/mods-available/sqlsrv.ini /etc/php/7.2/fpm/conf.d/20-sqlsrv.ini
sudo ln -s /etc/php/7.2/mods-available/pdo_sqlsrv.ini /etc/php/7.2/fpm/conf.d/20-pdo_sqlsrv.ini
Evet işlemleri başarılı bir şekilde tamamladıysanız sıra geldi yaptığımız değişiklikleri aktif hale getirmeye bunun için aşağıdaki komutu uygulayarak NGINX'i yeniden başlatıyoruz.
sudo service nginx restart
Bir kaç saniye bakleyin ve ardından PHP ile MSSQL bağlantınızı test edebilirsiniz.
Bağlantı testini yapabilmeniz için şuraya küçük bir betik bırakayım.
$serverName = "Server Adresi"; $connectionOptions = [ "Database" => "Veritabanı", "Uid" => "Kullanıcı Adı", "PWD" => "Şifre" ]; $conn = sqlsrv_connect($serverName, $connectionOptions); //Query çalıştıralım. $getResults= sqlsrv_query($conn, "SELECT @@Version as SQL_VERSION");
Eğer yaptığınız işlemler sırasında bir sorun ile karşılaşırsanız çekinmeden yorum bölümünü kullanarak soru sorabilirsiniz. Bulduğum ilk fırsatta seve seve yardımcı olacağım. İyi ve sağlıklı günler dilerim.