ลง PHP-MSSQL on CentOS 6
เดิมที่เคยลงไว้แล้วสำหรับการ compile freetds ใน php แบบ manual compile เองแต่อันนี้มาแนะนำสำหรับ server บางที่ใช้การ ลงแบบ yum install ก็จะต่างกันไปขั้นตอนน้อยลง แต่ขึ้นอยู่กับว่า mirror ที่ใช้ด้วย
# rpm -ivh http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
โหลด remi.repo ที่มี freetds
# cd /etc/yum.repos.d/
# wget http://rpms.famillecollet.com/enterprise/remi.repo
# yum install freetds freetds-devel
Enable php-mssql ขึ้นมา
# yum install --enablerepo=remi php-mssql
แก้ไขไฟล์ configure freetds /etc/freedts.conf
[global]
# TDS protocol version
tds version = 7.2
dump file = /var/log/freetds.log
dump file append = yes
text size = 64512
[MSSQL]
host = 10.66.9.11 ( ip เครือง database )
port = 1433
tds version = 7.2
tds version ตรงนี้ต้องตรวจสอบว่าที่เราใช้อยู่เป็น version ได ในที่นี้ใช้ sql server 2008 ใช้เป็น protocal tds version 7.2
เวอร์ชั่นอื่นๆ ตรวจสอบได้ที่ http://freetds.schemamania.org/userguide/choosingtdsprotocol.htm
แล้วทำการ restart apache สักรอบ
ตรวจสอบว่า php มี mobule ต่างรองรับ msslq แล้วหรือยัง
# php -i | grep mssql
อ้างถึง
/etc/php.d/mssql.ini,
mssql
mssql.allow_persistent => On => On
mssql.batchsize => 0 => 0
mssql.charset => no value => no value
mssql.compatability_mode => Off => Off
mssql.connect_timeout => 5 => 5
mssql.datetimeconvert => On => On
mssql.max_links => Unlimited => Unlimited
mssql.max_persistent => Unlimited => Unlimited
mssql.max_procs => Unlimited => Unlimited
mssql.min_error_severity => 10 => 10
mssql.min_message_severity => 10 => 10
mssql.secure_connection => Off => Off
mssql.textlimit => Server default => Server default
mssql.textsize => Server default => Server default
mssql.timeout => 60 => 60
แสดงว่า module ต่างๆ มาครบแล้ว
คำสั่ง ทดสอบ แบบ command line สำหรับการลง freetds ในส่วน version ต้องตรวจสอบว่า Database ที่เราใช้เป็น version ได
ในที่นี้เป็น sql server 2008 ซึ่งจะเป็น TDS version 7.2
# TDSVER=7.2 tsql -H 10.66.9.11 -p 1433 -U User_name
Password:
ใส่พาสเวิร์ดที่ใช้
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 100 (severity 11):
unrecognized msgno
แล้วทดสอบการรัน query ตัวอย่างเป็นการเรียกให้ดึงค่าเวลาวันเวลาในปัจจุบัน
1> select convert( varchar(30), getdate(), 120 ) as Now
2> go
Enter
Now
2013-06-11 10:48:52
(1 row affected)
1>
ตอบค่ามาได้ถูกต้อง
ทดลองสร้าง file php มาไฟล์หนึ่ง user - password ที่ใช้แล้วใส่ ค่าเพื่อดึงข้อมูล
<?php
error_reporting(E_ALL);
echo "<pre>\n";
$DB_HOST = "10.66.9.11:1433";
$DB_USER = "userofdatabase";
$DB_PASSWORD = "password";
$DB_DBNAME = "DATABASE_NAME";
$db = mssql_connect ($DB_HOST,$DB_USER,$DB_PASSWORD) or die("\nCan't connect to database server: ".$DB_HOST);
mssql_select_db($DB_DBNAME, $db) or die("\nCan't select database name: ".$DB_DBNAME);
$sql = "
sp_who
";
$rs = mssql_query($sql, $db) or die("SQL ERROR: \n".$sql);
echo "<pre>\n";
while($row=mssql_fetch_assoc($rs)){
print_r($row);
}
echo "</pre>\n";
mssql_close($db);
?>
แสดงค่าออกมาได้ถูกต้องแสดงว่าทำงานได้ครบ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น