安装Typo3时遇PHP Warning:无法加载mysqli.so动态库(PHP8.1)
解决PHP8.1下mysqli.so动态库加载失败问题
在安装Typo3过程中,PHP8.1环境下执行php -m或运行Composer时出现如下警告:
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli.so' (tried: ./mysqli.so (./mysqli.so: cannot open shared object file: No such file or directory), ./mysqli.so.so (./mysqli.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
以下是针对性的排查和解决步骤:
确认PHP8.1的mysqli扩展已安装
基于你使用的系统执行对应命令:- Debian/Ubuntu系:
apt list --installed | grep php8.1-mysqli,若未安装则执行sudo apt install php8.1-mysqli - RHEL/CentOS系:
dnf list installed | grep php8.1-mysqli,若未安装则执行sudo dnf install php8.1-mysqli
- Debian/Ubuntu系:
修正PHP8.1配置文件中的扩展加载写法
- 执行
php8.1 --ini,找到PHP8.1的配置文件路径(Loaded Configuration File)和额外配置目录(Additional .ini files parsed) - 进入对应配置目录,找到mysqli相关的ini文件(如
20-mysqli.ini),将extension=mysqli.so修改为extension=mysqli(PHP8+版本无需手动指定.so后缀,系统会自动匹配扩展文件)
- 执行
验证mysqli扩展文件的实际路径
- 执行
php8.1 -r "echo ini_get('extension_dir');"获取PHP8.1的扩展目录 - 检查该目录下是否存在
mysqli.so文件,若不存在则重新安装php8.1-mysqli包;如果是源码编译的PHP,需重新编译并安装mysqli扩展
- 执行
同步CLI与FPM的配置(若使用FPM运行Typo3)
检查/etc/php/8.1/fpm/conf.d下的mysqli配置是否与CLI配置一致,修改后执行sudo systemctl restart php8.1-fpm重启服务清理PHP缓存
若开启了opcache,执行php8.1 -r "opcache_reset();"重置缓存,或直接重启相关PHP服务
内容的提问来源于stack exchange,提问作者K. Hendrik
相关产品推荐
相关产品推荐

