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. '); } ?>