วิธีติดตั้ง Module สำหรับเชื่อมต่อ MS SQL ให้กับ PHP บน DirectAdmin

โดยปกติ DirectAdmin จะมี MySQL Database ติดตั้งมาให้พร้อมใช้งานอยู่แล้วครับ แต่หากคุณต้องการใช้งานฐานข้อมูล Microsoft SQL Server หรือ Sybase Databases ซึ่งแน่นอนต้องติดตั้งอยู่บน Server อื่น คุณก็สามารถติดตั้ง Module ให้กับ PHP เพื่อ Remote เชื่อมต่อไปใช้งานฐานข้อมูลอย่าง MS SQL จาก Server อื่นได้ครับ ในที่มีจะมี Library พร้อมใช้ติดตั้งและใช้งานได้ทันทีชื่อว่า FreeTDS โดยบทความนี้จะเป็นการแนะนำวิธีการติดตั้ง FreeTDS กัน

เริ่มเลยดีกว่า หลังจาก Login เข้า Server ด้วยสิทธิ์ root แล้ว
ก่อนอื่นให้ตรวจสอบก่อนครับว่าไม่ได้ติดตั้งเอาไว้อยู่ก่อนแล้ว

php -m|grep mssql

หากไม่มีอะไรตอบกลับมาเลยถือว่าเยี่ยม แต่ถ้ามีแสดงว่าอาจจะติดตั้งเอาไว้อยู่แล้วนะครับ
ไปเอาหา URL สำหรับ Download FreeTDS จาก http://www.freetds.org/
โดยวันที่ผมเขียนบทความนี้ 3/11/2016 พบว่า Stable Version ล่าสุดคือ 1.00.9 ครับ
ได้ URL มาแล้วให้ดาวน์โหลดมาได้เลยครับ

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.9.tar.gz

แตกไฟล์

tar -xvzf freetds-1.00.9.tar.gz

เข้าติดตั้ง

cd freetds-1.00.9
./configure --prefix=/usr/local/freetds
make
make install

เพิ่ม MSSQL Libraries ใน config ของ PHP
กรณีใช้งาน php version ไหนให้เลือก vesrion นั้นนะครับ ในที่นี้ผมใช้ version 5.6 จึงเลือกไฟล์ configure.php56
เพื่อไม่ให้ config ของเราถูก directadmin เขียนทับเมื่อมี Update ให้เราสร้าง Directory ชื่อ custom ขึ้นมาแยกไฟล์ Config ที่เราจะแก้ไขก่อน

cd /usr/local/directadmin/custombuild
mkdir -p custom/ap2
cp -fp configure/ap2/configure.php56 custom/ap2/configure.php56

เรียบร้อยแล้วจึงเริ่มแก้ไข config

vi /usr/local/directadmin/custombuild/custom/ap2/configure.php56

โดยเพิ่ม code ด้านล่างนี้ครับ

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

หน้าตาเมื่อเพิ่มแล้ว ระวังเรื่องเครื่องหมาย \ ด้วยนะครับ ต้องมีทุกบรรทัด ส่วนบรรททัดสุดท้ายต้องไม่มี

#!/bin/sh
./configure \
--with-apxs2 \
--with-config-file-scan-dir=/usr/local/lib/php.conf.d \
--with-curl=/usr/local/lib \
--with-gd \
--enable-gd-native-ttf \
--with-gettext \
--with-jpeg-dir=/usr/local/lib \
--with-freetype-dir=/usr/local/lib \
--with-libxml-dir=/usr/local/lib \
--with-kerberos \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-mysql=mysqlnd \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-mysqli=mysqlnd \
--with-pcre-regex=/usr/local \
--with-pdo-mysql=mysqlnd \
--with-pear \
--with-png-dir=/usr/local/lib \
--with-xsl \
--with-zlib \
--with-zlib-dir=/usr/local/lib \
--enable-zip \
--with-iconv=/usr/local \
--enable-bcmath \
--enable-calendar \
--enable-ftp \
--enable-sockets \
--enable-soap \
--enable-mbstring \
--with-icu-dir=/usr/local/icu \
--with-mssql=/usr/local/freetds \
--enable-intl

ทำการ rebuild php ใหม่

cd /usr/local/directadmin/custombuild
./build clean
./build update n
./build php n

ตรวจสอบว่า PHP มี Module MS SQL แล้วหรือยัง

php -m|grep mssql

ก็จะพบว่ามี Module แสดงขึ้นมาให้พร้อมเรียกใช้งานแล้วครับ

mssql

Was this article helpful?

Related Articles