โดยปกติ 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