Добавить расширение SQLSRV в несколько версий PHP в Ubuntu / NGINX - PullRequest
0 голосов
/ 09 июля 2020

У меня был настроен сервер со следующими установленными и работающими:

Ubuntu 20.04
NGINX 1.17.10
PHP 7.4.5

* При установке 1025 * драйвер PDO SQLSRV установлен и работает правильно.

Мне нужно было добавить PHP 5.6 на тот же сервер для более старого веб-сайта. Мне удалось успешно установить PHP 5.6. но я не могу заставить часть драйвера SQLSRV правильно установить.

Я ранее установил инструменты ms sql на сервере при настройке PHP 7.4:

apt-get install msodbcsql17 -y
apt-get install mssql-tools
 apt install unixodbc-dev
pecl install sqlsrv
pecl install pdo_sqlsrv

Пытаясь установить версию 5.6, я выполнил шаги для исходной установки. Я выполнил следующие команды:

 printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/5.6/mods-available/sqlsrv.ini
 printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/5.6/mods-available/pdo_sqlsrv.ini
 phpenmod -v 5.6 sqlsrv pdo_sqlsrv
 pecl config-set php_ini /etc/php/5.6/fpm/php.ini
 ls /etc/php/5.6/fpm/conf.d/*sqlsrv.ini

Все команды выполнены успешно. Затем я добавил следующие строки в соответствующий файл php .ini /etc/php/5.6/fpm/php.ini

extension=sqlsrv.so
extension=pdo_sqlsrv.so

Я перезагрузил и перезапустил php5 .6-fpm и затем перезапустил NGINX. PHP 5.6 успешно установлен, и я могу увидеть информацию, запустив phpinfo (). При установке ошибок не было. Однако в PDO драйверы PDO не отображаются. Я также подтвердил, что sqlsrv_connect не распознается.

Я знаю, что было бы идеально не иметь нескольких версий PHP или устанавливать их в разное время, но у меня не было выбора в этом проекте . Нужно ли мне устанавливать на коробку отдельную версию sqlsrv и pdo_sqlsrv, или мне просто что-то не хватает при установке?

...