Ответ 1
Существует несколько конфигурационных файлов, которые необходимо настроить. /etc/odbc.ini
, /etc/odbcinst.ini
и /etc/freetds/freetds.conf
(эти местоположения действительны для Ubuntu 12.04 и, вероятно, исправлены для большинства * nixes).
Вам нужно установить unixodbc
и freetds
(не уверен, что имена пакетов находятся в CentOS). В Ubuntu это будет apt-get install unixodbc tdsodbc
.
Для помощи в установке этих вопросов, посмотрите на этот вопрос Невозможно установить FreeTDS через диспетчер пакетов Yum
/etc/odbc.ini(этот файл может быть пустым)
# 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(или вы можете найти его на /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
Возможно, вам придется изменить строку tds version = 7.1
выше в зависимости от вашей версии MSSQL.
Вам придется перезапустить apache после внесения этих изменений.
В вашем PHP-коде вы создадите свой объект PDO следующим образом:
$pdo = new PDO("dblib:host=mssql;dbname=$dbname", "$dbuser","$dbpwd");
Обратите внимание, что ваше имя пользователя может быть в формате: domain\username
.
Кроме того, вы будете знать, что это сработало, если вы выполняете phpinfo()
на своей странице и выполняете поиск "freetds", в котором будет показан раздел mssql с freetds, перечисленными как версия библиотеки.