php - PHP 无法加载 imagick 扩展(Windows)
问题描述
多年来,我对此的看法为零。在此之前,我们总是无法加载 php_imagick.dll。突然,这个过程在 2 台机器上失败了(也许更多,但我们肯定知道 2 台,都是开发机器)。什么都没有改变 - 没有更新,没有配置,什么都没有,只是突然,在 2 台开发机器上它失败了。这不会在至少 1 台其他开发机器和我们的测试机器上失败(幸运的是在生产中也没有失败)。
C:\windows\system32>C:\PHP\php.exe -cC:/php/devrc/php.ini -m
警告: PHP Startup: Unable to load dynamic library 'imagick' (试过: ext\imagick (The specified module could not be found.), ext\php_imagick.dll (The specified module could not be found.)) in Unknown on line 0
我已经尝试了我能想到的一切,据我所知,这些都是相同的。
我什至拿了一个全新的虚拟机。将文件从故障机器(c:\PHP 和 c:\imagemagick)复制到该机器。安装了vcredist140。因同样的问题而失败。将 c:\imagemagick 添加到 %PATH% 变量中。作品!
我已经验证 c:\imagemagick 在路径中,甚至尝试将文件复制到 c:\PHP,仍然失败。发生了一些变化,影响了 2 台机器,而且只有 2 台(到目前为止)机器。所有机器都是 Windows 10 21H1 或 Server 2019,失败的 2 台是 Windows 10 21H1。
我们正在使用 Jan E 在https://www.apachelounge.com/viewtopic.php?t=6359上的 7.4.21 构建,包括为 c:\imagemagick 文件夹创建的工件。但是,我也尝试了https://mlocati.github.io/articles/php-windows-imagick.html。
我知道它们是相同的,因为我们将 c:\PHP 和 c:\imagemagick 都放在 Git 存储库中。
解决方案
我建议使用 deplister.exe(包含在 windows.php.net 的所有二进制 zip 中)来跟踪依赖项。所以打电话deplister php_imagick.dll
;这应该列出所有依赖项,以及是否可以找到它们。
推荐阅读
- xml - 将变量分配给 Python 文件名
- c++ - 没有运算符匹配这些操作数,将学生对象添加到指针数组
- python - 如何修复自相交四面体网格
- python - 如何在 django rest 框架中自动填充只读序列化器字段?
- python-3.x - 训练 tflite 模型是否需要注释图像?
- mysql - MySQL 运行 SQL 脚本错误说“'ascii'编解码器无法解码位置 2386 中的字节 0xe2:序数不在范围内 (128)”
- python-3.x - 通过名称而不是模块访问全局对象
- perl - 为什么在第二次运行脚本时,先显示“Not OK”,然后显示“OK”?
- codeigniter-4 - 在 Codeigniter 4 中有条件的 COUNT
- python - Qt 和 Web 服务器应用程序 OSError:[WinError 10038] 尝试对不是套接字的东西进行操作