Bilindiği üzere Linux ve haliyle MacOS işletim sisteminin doğal MSSQL bağlantı yeteneği bulunmuyor.

Genel anlamda Linux dünyasında Apache, PHP ikilisinin yanına hemen MYSQL gelmekte ve tercih edilmekte.

Ancak gün gelir, PHP’nin mssql_connect fonksiyonu ile bir MSSQL Bağlantısı kurulup sorgu çalıştırılmak istenirse, birazcık uğraşı ile Linux, Centos veya MacOS MAMP üzerinde MSSQL bağlantısı yapabilmek ve yakındaki veya uzaktaki MSSQL veritabanlarında sorgu çalıştırabilmek mümkündür.

Bir Linux işletim sisteminde PHP’nin MSSQL fonksiyonlarını kullanabilmek, yani Linux’e MSSQL bağlantı yeteğini kazandırmak için başlıca yapılması gerekenleri şu şekilde sıralayabiliriz.

Öncelikle FREETDS kütüphanesini yükleyeceğiz.
Sonra PHP’nin son versiyonunu indirip, freetds ile çalışabilmesi için konfigüre edeceğiz.
Sonra da bir kaç ini dosyası değişikliği ile konuyu sonuçlandıracağız.

Öncelikle FREETDS paketini şuradan indirin. MAC’inizde bir terminal penceresi açın.

cd /usr/local

komutunu kullanın ve devamında

mkdir freetds

komutu ile freebsd isminde bir klasör oluşturun. Şimdi, az önce download ettiğiniz freetds-stable.tgz dosyasının bulunduğu dizine gidin. Örneğin bu dosyayı Downloads dizinine indirdiyseniz

cd /users/yazilimci/Downloads/

komutu ile ilgili dizine geçiş yapın.

tar -xf freetds-stable.tgz

komutu ile sıkıştrılmış, freetds-stable.tgz dosyasını dizine çıkartın.

cd freetds-0.91

komutu ile açılmış dosyaların bulunduğu dizine giriş yapın.

/configure --prefix=/usr/local/freetds --sysconfdir=/usr/local/freetds/conf/freetds --disable-libiconv --disable-odbc

komutu ile freetds kütüphanesini konfigüre edin.

make

komutu ile freetds’yi derleyin.

sudo make install

komutu ile derlenen kütüphanesin kurulumunu yapın. Bu komuttan hemen sonra sizden bilgisayarınızın root şifresi sorulacaktır, şifrenizi girin.

Şu anda FreeTDS’in kurulumunu tamamlamış bulunuyoruz.

Şimdi de PHP’nin yeni versiyonunu indirip, yeniden derleyip kurulumunu yapalım.

Buradan
 PHP’nin son versiyonunu indirin.
Yukarıda yazdığım şekilde önce tar komutu ile php’yi extract edin ve extract edilmiş dosyaların bulunduğu klasöre geçiş yapın.

./configure

komutu ile PHP’yi konfigüre edin.

make

komutu ile PHP’yi derleyin.

Install etmeden önce extract edilmiş PHP dosyalarının içerisindeki ext/mssql klasörüne geçiş yapın.

phpize

komutu ile PHP’yi phpize edin. (Bu komut PHP uzantı derleme ortamını hazırlar)

./configure --with-mssql=/usr/local/freetds

komutu ile mssql uzantısına, freetds ile çalışması gerektiğini anlatın.

Şimdi yine ext/mssql dizininde iken

sudo nano php_mssql.c

komutu ile php_mssql.c dosyasını nano editörü ile açın.

Bu dosyada

PHP_FE_END

satırını bulun ve

{NULL, NULL, NULL}

şeklinde değiştirin. Dosyayı; CTRL-X ile çıkarken Y ile kayıt edin.

Şimdi yeniden terminal ekranına döndünüz, gözleriniz hafiftan kararmaya başlamış durumda ve sonraki komuta hazırsınız.

make

komutu ile PHP’yi derleyin.

Şu anda hala ext/mssql klasöründesiniz, şimdi bu klasörün altındaki modules klasöründen bir dosyayı alıp, MAMP’ın eklentiler klasörüne kopyalayacağız.

Bir Finder penceresi açın ve Downloads klasöründeki açılmış PHP dosyalarınızın bulunduğu klasördeki ext/mssql/modules klasörüne gelin. Burada bulunan mssql.so dosyasını kopyalayın.

Şimdi ayrı bir Finder penceresinde MAMP uygulamasının bulunduğu klasöre gelin.
Burada gideceğiniz klasör /Applications/MAMP/bin/php/php-5.3.6/lib/php/extensions/no-debug-non-zts-20090626/

Az önce kopyaladığınız msssql.so dosyasını buraya yapıştırın.

Bir kaç klasör yukarıda bulunan /Applications/MAMP/bin/php/php-5.3.6/conf/ klasöründeki php.ini dosyasını bir editör ile açın. (nano olur textedit olur, textwrangler olur …)

Burada extension= kelimesini aratın ve bu satırların en altına

extension=mssql.so

kodunu ekleyin. Bu bize, mssql.so eklentisinin PHP ile beraber çalışması gerektiğini anlatmış oldu.

Hepsi bu kadardı 🙂

Şimdi MAMP’ı restart edebilir ve sonuçları deneyebilirsiniz.
Eğer bu işlemleri Linux ya da türevi bir sunucu üzerinde yapmak istiyorsanız küçük farklılıklar dışında yine yöntem aynı şekilde olacaktır.

PHP tarafında bir MSSQL bağlantısı yapmak ve yukarıdaki işlemlerin sonucunu görebilmek için şöyle bir kod kullanabilirsiniz  :

<?php
$sunucu = '192.168.1.200';
// Bağlanıyoruz ...
$link = mssql_connect($sunucu, 'sa', 'sa_sifresi');

if (!$link) {
    die('MSSQL bağlantısı yapılırken birşeyler yanlış gitti. ');
}
?>