当前位置: 首页 > 知识库问答 >
问题:

“无法加载动态库'pdo_sqlsrv.so'”Cenos7 PHP7。2.10

年良骏
2023-03-14

在这个问题上,我忽略了Linux-PHP7.0和MSSQL(MicrosoftSQL)

我确信我确实按照MS在本页中的要求安装了red hat 7上的驱动程序。但是,我仍然在键入“php-v”时出错:

PHP警告:PHP启动:无法加载动态库pdo_sqlsrv.so(尝试: /usr/lib64/php/modules/pdo_sqlsrv.so(/usr/lib64/php/模块/pdo_sqlsrv.so:未定义符号:php_pdo_register_driver), /usr/lib64/php/modules/pdo_sqlsrv.so.so(/usr/lib64/php/模块/pdo_sqlsrv.so.so:无法打开共享对象文件:没有这样的文件或目录))在第0行未知

PHP7.2。10(cli)(创建时间:2018年9月15日07:10:58)(NTS)版权所有(c)1997-2018 PHP Group Zend Engine v3。2.0,版权所有(c)1998-2018 Zend Technologies与Zend OPcache v7。Zend Technologies 1999-2018年版权所有(c)2.10

我从不修改php。伊尼,

[user@tssvrphp。d] $pwd

/etc/php.d

[user@tssvrphp。d] $ls

20 sqlsrv。ini ctype。ini文件信息。这是gmp。ini mbstring。我是pdo。我是希莫普。ini标记器。这是一个XML编写器。ini 30-pdo_sqlsrv。卷发。ini ftp。这是我的名字。这是我的名字。我是pdo_mysql。这是simplexml。ini xml。ini xsl。这是bz2。我是多姆。这是gd。ini intl.ini opcache默认值。黑名单pdo_sqlite。ini插座。ini xmlreader。里尼拉链。我的日历。这是我的名字。这是一篇短文。ini json。ini操作缓存。伊尼法尔。ini sqlite3。ini xml_wddx。伊尼

[user@tssvrphp。d] $cat 20 sqlsrv。伊尼

扩展名=sqlsrv。所以

[user@tssvrphp. d]$cat30-pdo_sqlsrv.ini

扩展=pdo_sqlsrv.so

似乎是sqlsrv。所以这很好,但是pho_sqlsrv。所以不能正常工作,尽管我注意到出现了双'so','pdo_sqlsrv'。所以所以,有人能帮我度过这段时间吗,非常感谢。

共有3个答案

王凯旋
2023-03-14

我在Ubuntu 18.04和20中遇到了同样的问题。xx。我终于在Ubuntu18.04上运行了它,并且非常确定它在20上也能运行。xx也是。

这是针对PHP7.1的,因此如果不使用7.4或8.0,则必须在pecl中指定版本。

pecl install sqlsrv-5.7.0preview
pecl install pdo_sqlsrv-5.7.0preview
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.1/mods-available/pdo_sqlsrv.ini
phpenmod -v 7.1 sqlsrv pdo_sqlsrv
service apache2 restart

使一切正常工作的技巧是printf和phpenmod命令。您仍然需要将扩展添加到php中。ini文件。不确定订单是否真的重要,但驱动程序似乎没有使用pecl安装程序正确安装。

重启apache后,我现在可以看到php.ini中列出的pdo_sqlsrv,我的PHP应用程序可以连接到本地微软SQL服务器。

顺便说一句,我在WSL2 for Windows上得到了这个。

单于承
2023-03-14

加载模块的正确顺序为:

extension=pdo.so
extension=pdo_sqlsrv.so
extension=sqlsrv.so

你可以把它们放在一个中。ini文件-或使用编号的。ini文件。

按字母顺序加载它们(这是默认设置)不起作用。

沈琨
2023-03-14

输入终端linux centos 7:

  1. php--ini
  2. 查找 /etc/php.d/20-pdo.ini
  3. 编辑文件并追加扩展名=sqlsrv.so扩展名=pdo_sqlsrv.so

注意:注释extension=sqlsrv。因此,extension=pdo_sqlsrv。所以在/etc/php中。ini

 类似资料:
  • 我有高塞拉操作系统-版本10.13.6 PHP版本:PHP 7.1.9 当我尝试做命令总是出现这样的错误: PHP启动:无法加载动态库'/usr/本地/php5-7.1.9-20170914-100859 /lib/php/extensions/no-debug-non-zts-20160303/imagick.so'-dlopens(/usr/本地/php5-7.1.9-20170914-100

  • 我有64位Windows 7、IIS 7,并在IIS上安装了PHP。我启用了php_oci8。用于Oracle连接的dll,但出现以下错误: 我已经检查了php_oci8。dll存在于:“C:\Program Files(x86)\PHP\v5”中。5\ext\php\u oci8。dll' 我的php。见下: 我在http://www.oracle.com/technetwork/topics/

  • 在Postgresql版本10中创建扩展时出错 无法加载库"C:/Program Files/PostgreSQL/10/lib/plpython3.dll":找不到指定的模块 注意:在窗口10上使用Postgresql 10

  • 问题内容: 我是初学者。我正在尝试在php上安装mongodb驱动程序。 请按照此处的说明进行操作:http : //php.net/manual/zh/mongo.installation.php#mongo.installation.windows 我已经用VC11尝试了所有php_mongo.dll文件,并将其放在php / ext文件夹中。并添加到php.ini文件中,但是当我尝试在xam

  • 由于PHP7.1更新为PHP7.2,我无法安装oci8。我有一个错误: root@3ab6027c8d95:/var/www#php-v PHP警告:PHP启动:无法加载动态库oci8.so(尝试: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so(libmql1.so:无法打开共享对象文件:没有这样的文件或目录), /

  • 问题内容: 从PHP 7.1更新到PHP 7.2,我无法安装oci8。我有这个错误: root @ 3ab6027c8d95:/ var / www#php -v PHP警告:PHP启动:无法加载动态库’oci8.so’(尝试:/usr/local/lib/php/extensions/no-debug-non- zts-20170718/oci8.so(libmql1.so:无法打开共享对象文件