Содержание
MSSQL: настройка подключения из PHP
С помощью менеджера пакетов
Debian:
apt-get -y install freetds-bin tdsodbc unixodbc php5-sybase vim /etc/freetds/freetds.conf php -r 'echo function_exists("mssql_connect");'
CentOS:
yum install php-mssql php -r 'echo function_exists("mssql_connect");'
Вручную
Два пути - с пересборкой PHP и без
Вариант без сборки
Устанавливаем ODBC
ODBC (Open DB Connectivity) - это унифицированный API доступа к БД, который позволяет абстрагироваться от СУБД и платформы.
В начале проверяем, может быть он уже установлен:
- check-odbc.sh
php -r 'echo var_dump(function_exists("odbc_connect"));'
Debian:
apt-get install php5-odbc
CentOS:
yum install php-odbc
Теперь требуемые функции должны быть доступны.
Ставим FreeTDS
FreeTDS - это бесплатная библиотека («клон» платной) для приложений с открытым исходным кодом для подключения к Sybase или Microsoft SQL Server.
Соответствие версий FreeTDS и MSSQL
cd /tmp wget http://mirrors.ibiblio.org/freetds/stable/freetds-0.91.tar.gz tar -xzf freetds-0.91.tar.gz cd freetds-0.91 ./configure --prefix=/usr/local/bin/freetds --enable-msdblib make make install (под su)
Настраиваем конфиг доступа к серверу
vim /usr/local/bin/freetds/etc/freetds.conf
[machine.local(тут имя)] host = 10.0.0.1 (в виде домена или IP адреса, но у меня домен почему-то не работал!) port = 1433 tds version = 7.0
Проверяем
cd /usr/local/bin/freetds/bin ./tsql -S <mssql.servername.com> -U <ValidUser>
Вводим пароль. Если 1>
- ok
Если нет - проверяем через телнет доступность сервера
telnet <mssql.servername.com> 1433
(далее по инструкции...)
Проверяем PHP
php -r '$connect = odbc_connect("server", "user", "password") or die("no connect");'