WSL Ubuntu环境下PHP 8.0.5启用pdo_mysql.so扩展报错求助
排查解决步骤
- 确认扩展目录匹配
执行命令php -i | grep extension_dir查看PHP实际加载的扩展目录路径,和pdo_mysql.so存放的路径对比,若不一致可将.so文件移入查询到的扩展目录,或修改php.ini中extension_dir配置项为实际存放路径。 - 校验文件权限与存储位置
如果pdo_mysql.so存放在WSL挂载的Windows分区(路径以/mnt/开头),会因跨系统权限规则异常导致无法读取,需将文件移动到Linux原生目录(如/usr/lib/php/下对应版本的扩展目录),再执行以下命令修正权限:sudo chmod 755 /实际路径/pdo_mysql.so sudo chown root:root /实际路径/pdo_mysql.so - 验证架构匹配
分别执行以下命令校验扩展文件架构和系统架构是否一致,若不一致需重新下载对应架构的扩展包:# 查看扩展架构 file /实际路径/pdo_mysql.so # 查看系统架构 uname -m - 优先使用官方源安装扩展
自行编译或复制的扩展文件常出现依赖缺失问题,推荐通过官方PPA安装适配版本:
安装完成后无需手动修改ini配置,重启对应PHP服务即可生效。sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.0-mysql - 确认PHP版本与配置文件路径匹配
多版本PHP共存时容易出现改错配置文件的问题,执行以下命令确认当前CLI使用的PHP版本、加载的ini文件路径是否和你修改的配置一致:# 查看当前PHP版本 php --version # 查看加载的所有ini文件路径 php --ini - 排查扩展依赖缺失
若扩展本身存在但依赖的系统库缺失,也会触发找不到文件的报错,执行命令ldd /实际路径/pdo_mysql.so查看输出,若存在标记为not found的依赖项,安装对应依赖包即可。
内容的提问来源于stack exchange,提问作者furomin
相关产品推荐
相关产品推荐

