วิธีติดตั้ง 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 answer helpful?

 Print this Article

Also Read

การตั้งค่า DKIM กับ DirectAdmin

DKIM (DomainKeys Identified Mail) เป็นลายเซ็นดิจิทัลในส่วนหัวของข้อความ E-Mail...

การตั้ง Auto block Bruteforce attack ให้กับ DirectAdmin

สามารถทำได้โดยการสร้าง Script พิเศษให้ DirectAdmin โดยใช้ขั้นตอนดังนี้ครับ สร้างไฟล์ block_ip.sh...

วิธีแก้เว็บแสดงแต่ข้อความ Apache is functioning normally

เมื่อคุณเพิ่มโดเมน หรือ ซับโดเมนเข้าไปใน DirectAdmin เรียบร้อยแล้วปรากฎว่า เจอปัญหา...

การ Backup & Restore DirectAdmin Control Panel

สำหรับท่านที่ต้องการอัพเดทเวอร์ชั่น DirectAdmin...

ปิด Apache cgi ด้วย DirectAdmin เพื่อป้องกัน Scritpไม่พึงประสงค์

ปิด cgi บน Apache เพื่อป้องกันการ Script ไม่พึงประสงค์ ที่พบบ่อยๆ คือพวก Script โจมตี และส่ง Spam...