Недавно снова настраивал сервер, где необходимо было установить драйвер PDO_DBLIB.
Ниже речь пойдет о конфигурации FreeTDS и драйвера PDO_DBLIB для подключения к MSSQL сервера CentOS 6.5 64bit и PHP 5.3.x.
Шпаргалка сисадмина
AddThis Smart Layers
Показаны сообщения с ярлыком mssql. Показать все сообщения
Показаны сообщения с ярлыком mssql. Показать все сообщения
суббота, 26 апреля 2014 г.
суббота, 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 модуль. С ним проблем не возникло и при помощи
А вот
Сначала на то что он не может запустить компилятор.
Решил эту проблему радикально:
На этом он не успокоился и стал требовать чтобы был установлен пакет FreeTDS
С ним прошло все более ли менее гладко и встал он куда ему и указали.
Очередная попытка установить pdo_dblib снова не увенчалась успехом, конфигурационный файл ни в какую не хотел видеть где установлен FreeTDS, даже когда ему прописывали путь в ключе.
Помогло это:
Теперь снова нашлась причина чтобы не установиться. Видите ли ему версия PDO не нравится.
Решилось просто:
Только после этого этот несчастный драйвер позволил себя сконфигурировать и установить.
Танцы с бубном продолжались не менее 4 часов. Подопытный сервер практически не пострадал, за исключением того, что в процессе пришлось перекомпилировать apache+php чтобы убить "родную" поддержку PDO, с которой PDO_DBLIB ни в какую не хотел дружить и в последствии установить PDO через Pecl. После перекомпиляции apache нужно заново переконфигурировать Nginx. Но это уже мелочи жизни :-)
Апдейт: Данная шпаргалка действительна для PHP 5.2.x. Для PHP 5.3.x. есть новая шпаргалка, там процесс настройки сильно отличается.
Так как 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. есть новая шпаргалка, там процесс настройки сильно отличается.