Centos 8, PHP 7.2 и сервер MS Sql

Я планирую перейти на Centos 8, но, похоже, я не могу установить рабочее PDO-соединение с SQL-сервером, используя простые пакеты Centos 8.

Я установил пакеты unixODBC, а затем из PECL sqlsrv и sqlsrv_pdo, но не могу понять, как установить фактическое соединение или конфигурацию odbc.

Поскольку большая часть моего кода для переноса в новые среды написана с использованием PDO, я бы не хотел менять его на родной сервер sql.

Существуют ли какие-либо пошаговые инструкции по созданию подключения PDO ODBC к серверу sql без использования freetds, который недоступен в репозиториях Centos (или RHEL).


person hank    schedule 01.10.2019    source источник
comment
Не могли бы вы сообщить, как вы это решили (при условии, что ответ Пьера сработал)? Он перечисляет какие пакеты устанавливать и ini файлы редактировать, но не как использовать это окружение в php с запросом PDO. У меня похожая, но другая проблема с тем же env: tsql-just-f" title="время ожидания входа в систему истекло с соединением pdo sqlsrv, которое может запрашивать с помощью tsql just f">stackoverflow.com/questions/67170980/   -  person a coder    schedule 20.04.2021


Ответы (1)


Я столкнулся с той же проблемой, и я решил ее следующим образом:

sudo dnf install php-pear
sudo dnf install php-devel
sudo dnf install make
sudo pecl install sqlsrv
sudo dnf install unixODBC-devel
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

потом:

sudo nano /etc/php.d/30-pdo_sqlsrv.ini

Добавьте в файл 30-pdo_sqlsrv.ini:

extension=pdo_sqlsrv.so

потом:

sudo nano /etc/php.d/20-sqlsrv.ini

Добавьте в файл 20-sqlsrv.ini:

extension=sqlsrv.so

Загрузите и установите msodbcsql17-17.4.2.1-1.x86_64.rpm с https://packages.microsoft.com/rhel/8/prod/

sudo yum install msodbcsql17-17.4.2.1-1.x86_64.rpm

Тогда просто нужно перезапустить php-fpm

sudo systemctl restart php-fpm.service

Удачи!

person Pierre    schedule 12.10.2019
comment
если вы видите ошибку: компиляция sql.h завершена, сделайте dnf install unixODBC-devel - person KEMBL; 19.06.2020
comment
У меня возникли проблемы с рабочим подключением к моему SQL Server. Я следил за всем в вашем ответе здесь. Я также могу запросить удаленный SQL Server, используя tsql. Как мне использовать все это для формирования рабочего соединения PDO? stackoverflow.com/questions/67170980/ - person a coder; 20.04.2021
comment
Я решил эту проблему и привел примеры использования в PDO по ссылке прямо выше, на случай, если кто-то еще застрял, как я. - person a coder; 22.04.2021