AddThis Smart Layers

Показаны сообщения с ярлыком pdo. Показать все сообщения
Показаны сообщения с ярлыком pdo. Показать все сообщения

суббота, 26 апреля 2014 г.

Как подключиться к MSSQL серверу из Linux. Ревизия 3.

Недавно снова настраивал сервер, где необходимо было установить драйвер PDO_DBLIB.

Ниже речь пойдет о конфигурации FreeTDS и драйвера PDO_DBLIB для подключения к MSSQL сервера CentOS 6.5 64bit и PHP 5.3.x.

Шпаргалка сисадмина

суббота, 10 марта 2012 г.

Как подключиться к MSSQL серверу из PHP. Новая ревизия.

Почти полтора года прошло с того момента, как я написал шпаргалку по установке драйвера PDO_DBLIB для подключения к удаленному MSSQL серверу из PHP.

Сегодня выяснилось, что кроме того, что с того времени утекло много воды, так еще и технология на месте не стоит и та шпаргалка уже не очень то актуальна.

вторник, 12 октября 2010 г.

Как подключиться к MSSQL серверу из PHP

У нас появилась задача - подключаться из Magento к удаленному MSSQL серверу и тянуть с него некие данные.
Так как Magento стоит на Linux сервере, это оказалось не такой уж простой задачкой.


Нужно было установить расширение, которое позволяло бы PHP подключаться к MSSQL.
Так как Magento основана на Zend Framework, родным для нее будет подключение при помощи PDO_DBLIB драйвера, который, разумеется никогда на Linux серверах по умолчанию не устанавливается.

Чтобы установить этот драйвер для начала нужно установить сам PDO модуль. С ним проблем не возникло и при помощи

pecl install pdo
он успешно установился.

А вот
pecl install pdo_dblib
начал ругаться.

Сначала на то что он не может запустить компилятор.

Решил эту проблему радикально:

mount -o remount,exec,suid /tmp
mount -o remount,exec,suid /var/tmp

На этом он не успокоился и стал требовать чтобы был установлен пакет FreeTDS

С ним прошло все более ли менее гладко и встал он куда ему и указали.

Очередная попытка установить pdo_dblib снова не увенчалась успехом, конфигурационный файл ни в какую не хотел видеть где установлен FreeTDS, даже когда ему прописывали путь в ключе.

Помогло это:
touch {path}/freetds/include/tds.h
touch {path}/freetds/lib/libtds.a

Теперь снова нашлась причина чтобы не установиться. Видите ли ему версия PDO не нравится.

Решилось просто:

pecl install -n pdo_dblib
т.е. с игнорированием зависимости от версии PDO.

Только после этого этот несчастный драйвер позволил себя сконфигурировать и установить.

Танцы с бубном продолжались не менее 4 часов. Подопытный сервер практически не пострадал, за исключением того, что в процессе пришлось перекомпилировать apache+php чтобы убить "родную" поддержку PDO, с которой PDO_DBLIB ни в какую не хотел дружить и в последствии установить PDO через Pecl. После перекомпиляции apache нужно заново переконфигурировать Nginx. Но это уже мелочи жизни :-)

Апдейт: Данная шпаргалка действительна для PHP 5.2.x. Для PHP 5.3.x. есть новая шпаргалка, там процесс настройки сильно отличается.