首页  >  问答  >  正文

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

我正在尝试在 Ubuntu 20.0 上启用 php8.1 的 sqlsrv 驱动程序。它没有在 phpinfo() 中显示扩展名。

当尝试使用命令 php -m 检查 sqlsrv 模块时,输出如下:

我遵循了以下官方文档:

我不确定出了什么问题,任何建议都会受到赞赏。

The output of phpinfo() for php7.4:
The output of phpinfo() for php8.1:

事情是这样的:

我在这里缺少什么?

P粉501683874P粉501683874327 天前822

全部回复(2)我来回复

  • P粉823268006

    P粉8232680062023-11-02 00:55:33

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

    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

    回复
    0
  • P粉193307465

    P粉1933074652023-11-02 00:34:32

    你可以试试这个:

    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

    回复
    0
  • 取消回复