首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP警告: PHP启动:无法加载动态库“pdo_mysql.so”-模块已安装

PHP警告: PHP启动:无法加载动态库“pdo_mysql.so”-模块已安装
EN

Stack Overflow用户
提问于 2022-03-05 22:02:37
回答 1查看 2.2K关注 0票数 -1

我已经搜索了上千个帖子,但仍然没有找到解决问题的办法。其他帖子没有答案。请不要标记为重复,因为它不是。在我的情况下,该文件存在于目录中,但无法识别。

当我输入命令时,我收到了错误PHP警告: PHP :无法加载动态库'pdo_mysql.so‘:

代码语言:javascript
运行
复制
php -v

我得到了这个输出:

代码语言:javascript
运行
复制
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/20190902/pdo_mysql.so (/usr/lib/php/20190902/pdo_mysql.so: undefined symbol: mysqlnd_allocator), /usr/lib/php/20190902/pdo_mysql.so.so (/usr/lib/php/20190902/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.4.3 (cli) (built: Mar  2 2022 15:36:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

我已经重新安装了php几次,尝试安装模块pdo本身什么也没有.

使用命令php -m,我得到了所有模块(但缺少pdo_mysql)

代码语言:javascript
运行
复制
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/20190902/pdo_mysql.so (/usr/lib/php/20190902/pdo_mysql.so: undefined symbol: mysqlnd_allocator), /usr/lib/php/20190902/pdo_mysql.so.so (/usr/lib/php/20190902/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
json
libxml
mbstring
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
ssh2
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

但是文件本身存在于错误上提到的目录中:

代码语言:javascript
运行
复制
/usr/lib/php/20190902  ls -la                                                                                                   ✔  4 ⚙  3444  19:35:10
total 9,9M
drwxr-xr-x 2 root root 4,0K Mar  5 18:46 .
drwxr-xr-x 4 root root 4,0K Mar  5 18:46 ..
-rw-r--r-- 1 root root  31K Mar  2 12:36 bz2.so
-rw-r--r-- 1 root root  43K Mar  2 12:36 calendar.so
-rw-r--r-- 1 root root  15K Mar  2 12:36 ctype.so
-rw-r--r-- 1 root root 103K Mar  2 12:36 curl.so
-rw-r--r-- 1 root root 167K Mar  2 12:36 dom.so
-rw-r--r-- 1 root root  91K Mar  2 12:36 exif.so
-rw-r--r-- 1 root root 159K Mar  2 12:36 ffi.so
-rw-r--r-- 1 root root 5,5M Mar  2 12:36 fileinfo.so
-rw-r--r-- 1 root root  67K Mar  2 12:36 ftp.so
-rw-r--r-- 1 root root 115K Mar  2 12:36 gd.so
-rw-r--r-- 1 root root  19K Mar  2 12:36 gettext.so
-rw-r--r-- 1 root root  51K Mar  2 12:36 iconv.so
-rw-r--r-- 1 root root 448K Mar  2  2020 imagick.so
-rw-r--r-- 1 root root  47K Mar  2 12:36 json.so
-rw-r--r-- 1 root root 1,1M Mar  2 12:36 mbstring.so
-rw-r--r-- 1 root root 143K Mar  2 12:36 mysqli.so
-rw-r--r-- 1 root root 254K Mar  2 12:36 mysqlnd.so
-rw-r--r-- 1 root root 543K Mar  2 12:36 opcache.so
-rw-r--r-- 1 root root  35K Mar  2 12:36 pdo_mysql.so
-rw-r--r-- 1 root root 111K Mar  2 12:36 pdo.so
-rw-r--r-- 1 root root 275K Mar  2 12:36 phar.so
-rw-r--r-- 1 root root  43K Mar  2 12:36 posix.so
-rw-r--r-- 1 root root  39K Mar  2 12:36 readline.so
-rw-r--r-- 1 root root  15K Mar  2 12:36 shmop.so
-rw-r--r-- 1 root root  55K Mar  2 12:36 simplexml.so
-rw-r--r-- 1 root root  99K Mar  2 12:36 sockets.so
-rw-r--r-- 1 root root  89K Feb 28  2020 ssh2.so
-rw-r--r-- 1 root root  23K Mar  2 12:36 sysvmsg.so
-rw-r--r-- 1 root root  15K Mar  2 12:36 sysvsem.so
-rw-r--r-- 1 root root  19K Mar  2 12:36 sysvshm.so
-rw-r--r-- 1 root root  27K Mar  2 12:36 tokenizer.so
-rw-r--r-- 1 root root  39K Mar  2 12:36 xmlreader.so
-rw-r--r-- 1 root root  55K Mar  2 12:36 xml.so
-rw-r--r-- 1 root root  51K Mar  2 12:36 xmlwriter.so
-rw-r--r-- 1 root root  35K Mar  2 12:36 xsl.so
-rw-r--r-- 1 root root  71K Mar  2 12:36 zip.so

我在Linux 20上,这是php、mysql和apache的最新版本。有人知道如何安装pdo_mysql并解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-06 14:51:05

对于那些有同样问题的人,我刚刚找到了一个解决办法。当无法动态加载时,(在我的例子中是)意味着我可能有一个损坏的php安装(例如损坏的文件),所以我不得不重新安装它,但是仅仅重新安装它,问题仍然存在。在这种情况下,我必须完全删除php文件,然后再重新安装它。以下是我所采取的步骤:

  1. 首先只卸载与php相关的文件。下面的命令搜索并清除这些特定的php文件。

数独apt-获取清除dpkg -l | grep php| awk '{print $2}' |tr "\n" " "

如果一切正常,请跳到步骤2。在此过程中,我发现了另一个错误:

子进程/usr/bin/dpkg返回一个错误代码(1)

dpkg:错误处理包phpmyadmin (--配置):已安装的phpmyadmin包-安装后脚本子进程返回错误退出状态127

所以我完全删除了phpmyadmin文件

sudo apt-获取清除phpmyadmin

rm -r /var/lib/dpkg/info/phpmyadmin.*

数都-洗干净

&& sudo apt-获取更新

&& sudo apt-获取删除phpmyadmin

&& sudo apt-获取清除phpmyadmin

之后,我能够完全删除php:

代码语言:javascript
运行
复制
sudo apt-get purge dpkg -l | grep php| awk '{print $2}' |tr "\n" " "

  1. 之后,再次重新安装php,然后所有程序都应该运行平稳(ref:https://www.digitalocean.com/community/tutorials/how-to-install-php-7-4-and-set-up-a-local-development-environment-on-ubuntu-20-04)

sudo apt-get update

sudo apt -y安装软件-属性-通用

sudo apt存储库ppa:ondrej/php

sudo apt-get update

sudo apt -y安装php7.4

-v (检查php工作)

  1. 并最终再次安装phpMyAdmin:

sudo apt更新

sudo apt安装phpmyadmin php-mbstring php-zip php-gd php-json php-curl

sudo phpenmod mbstring

sudo sudo重启apache2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71366249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档