在 Ubuntu/NGINX 上的多个 PHP 版本上添加 SQLSRV 扩展

Add SQLSRV extension on multiple PHP versions on Ubuntu/NGINX

提问人:user3521590 提问时间:7/10/2020 更新时间:7/10/2020 访问量:3029

问:

我设置了一台服务器,安装并运行了以下内容:

Ubuntu 20.04
NGINX 1.17.10
PHP 7.4.5

PHP 安装确实安装了 PDO SQLSRV 驱动程序并正常工作。

我需要将 PHP 5.6 添加到旧网站的同一台服务器上。我能够成功安装 PHP 5.6。但我似乎无法正确安装 SQLSRV 驱动程序部分。

我之前在设置 PHP 7.4 时在服务器上安装了 mssql 工具:

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,或者我只是在安装中缺少某些内容?

php ubuntu nginx pdo sqlsrv

评论


答: 暂无答案