Có một số tệp cấu hình bạn cần phải thiết lập. /etc/odbc.ini
, /etc/odbcinst.ini
và /etc/freetds/freetds.conf
(các vị trí này hợp lệ cho Ubuntu 12.04 và có thể đúng cho hầu hết các * nixes).
Bạn sẽ cần cài đặt unixodbc
và freetds
(không chắc tên gói trên CentOS). Trong Ubuntu, đây sẽ là apt-get install unixodbc tdsodbc
.
Để được trợ giúp cài đặt những thứ này, hãy xem câu hỏi này Không thể cài đặt FreeTDS qua Trình quản lý gói Yum
/etc/odbc.ini (tệp này có thể trống)
# Define a connection to a Microsoft SQL server
# The Description can be whatever we want it to be.
# The Driver value must match what we have defined in /etc/odbcinst.ini
# The Database name must be the name of the database this connection will connect to.
# The ServerName is the name we defined in /etc/freetds/freetds.conf
# The TDS_Version should match what we defined in /etc/freetds/freetds.conf
[mssql]
Description = MSSQL Server
Driver = freetds
Database = XXXXXX
ServerName = MSSQL
TDS_Version = 7.1
/etc/odbcinst.ini
# Define where to find the driver for the Free TDS connections.
# Make sure you use the right driver (32-bit or 64-bit).
[freetds]
Description = MS SQL database access with Free TDS
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
#Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
UsageCount = 1
/etc/freetds/freetds.conf (hoặc bạn có thể tìm thấy nó tại /etc/freetds.conf)
# The basics for defining a DSN (Data Source Name)
# [data_source_name]
# host = <hostname or IP address>
# port = <port number to connect to - probably 1433>
# tds version = <TDS version to use - probably 8.0>
# Define a connection to the Microsoft SQL Server
[mssql]
host = XXXXXX
port = 1433
tds version = 7.1
Bạn có thể phải thay đổi tds version = 7.1
dòng trên tùy thuộc vào phiên bản MSSQL của bạn.
Bạn sẽ phải khởi động lại apache sau khi thực hiện các thay đổi này.
Trong mã PHP của bạn, bạn sẽ tạo đối tượng PDO của mình như sau:
$pdo = new PDO("dblib:host=mssql;dbname=$dbname", "$dbuser","$dbpwd");
Lưu ý rằng tên người dùng của bạn có thể phải ở định dạng:domain\username
.
Ngoài ra, bạn sẽ biết rằng nó hoạt động nếu bạn thực thi phpinfo()
trong trang của bạn và tìm kiếm "freetds" sẽ hiển thị phần mssql với freetds được liệt kê là Phiên bản Thư viện.