在ubuntu20.0上安装/启用php8.1的sqlsrv和pdo_sqlsrv驱动程序

问题描述 投票:0回答:2

我正在尝试在 Ubuntu 20.0 上启用 php8.1 的 sqlsrv 驱动程序。它没有在

phpinfo()
中显示扩展名。

当尝试使用命令

php -m
检查sqlsrv模块时,输出如下:

enter image description here

我已遵循以下官方文档:

我不确定出了什么问题,任何建议都值得赞赏。

The output of phpinfo() for php7.4:

List item

The output of phpinfo() for php8.1:

enter image description here

事情是这样的:

  • 我的机器上安装了 PHP 7.4 和 8.1。
  • sqlsrv 驱动程序适用于 php7.4 版本
  • 当尝试安装/启用 php8.1 时,它根本不起作用。

我在这里缺少什么?

php sql-server sqlsrv php-8.1
2个回答
5
投票

你可以试试这个:

1. switch to php8.1
2. sudo pecl uninstall -r sqlsrv 
3. sudo pecl uninstall -r pdo_sqlsrv 
4. sudo pecl -d php_suffix=7.2 install sqlsrv
5. sudo pecl -d php_suffix=7.2 install pdo_sqlsrv
6. sudo service apache2 restart

请注意

-r, --register-only
不要删除文件,而只是将软件包注册为未安装。

查看此资源以获取更多信息。 https://github.com/microsoft/msphpsql/issues/1145#issuecomment-649682231


2
投票

我可以通过添加以下命令来解决此问题。

pecl install sqlsrv pdo_sqlsrv
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" >> /etc/php/8.1/mods-available/pdo_sqlsrv.ini
phpenmod -v 8.1 sqlsrv pdo_sqlsrv

之后需要重启apache2

© www.soinside.com 2019 - 2024. All rights reserved.