PHP 8.0.25使用哪个Imagick配置文件?EC2环境重复加载问题排查
解决Imagick重复加载警告及配置文件确认问题
1. 确认Imagick已安装
尽管有加载警告,但模块实际已经生效,可通过以下方式验证:
- 执行
php -m | grep imagick,只要警告后能输出imagick,说明模块已加载; - 执行
php -i | grep -A 10 "imagick",查看模块的版本、编译参数等详细信息,确认安装状态; - 用包管理器检查:执行
yum list installed | grep imagick,若显示对应PHP版本的php-imagick包(如php72-imagick),说明已通过官方源完成安装。
2. 判断正确的配置文件
在PHP环境中,extension=imagick 和 extension=imagick.so 功能等价——PHP会自动在默认扩展路径查找对应的.so文件。
在Amazon Linux 2的默认PHP部署中,通过yum安装的php-imagick包通常会生成带.so后缀的配置文件(即40-imagick.ini),而20-imagick.ini大概率是手动添加或其他操作生成的重复配置。
你可以通过临时测试验证:
- 重命名其中一个文件:
mv /etc/php.d/20-imagick.ini /etc/php.d/20-imagick.ini.bak - 执行
php -m | grep imagick,若无警告且正常输出imagick,说明剩余的配置文件有效; - 再反向测试:恢复
20-imagick.ini,重命名40-imagick.ini,确认是否同样生效。
实际测试后会发现两个配置都能加载模块,但重复存在就会触发警告,只需保留其中一个即可。
3. 移除重复配置文件
确认后直接删除冗余文件:
- 若保留
40-imagick.ini,执行:rm /etc/php.d/20-imagick.ini - 若保留
20-imagick.ini,执行:rm /etc/php.d/40-imagick.ini
删除后再次执行 php -m | grep imagick,警告会消失,Imagick模块仍正常运行。
内容的提问来源于stack exchange,提问作者bigmoxy
相关产品推荐
相关产品推荐

