【发布时间】:2021-09-30 23:31:57
【问题描述】:
多年来,我对此的看法为零。在此之前,我们总是无法加载 php_imagick.dll。突然,这个过程在 2 台机器上失败了(也许更多,但我们肯定知道 2 台,都是开发机器)。什么都没有改变 - 没有更新,没有配置,什么都没有,只是突然,在 2 台开发机器上它失败了。这不会在至少 1 台其他开发机器和我们的测试机器上失败(幸运的是在生产中也没有失败)。
C:\windows\system32>C:\PHP\php.exe -cC:/php/devrc/php.ini -m
Warning: 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第0行未知
我已经尝试了所有我能想到的东西,据我所知,它们是相同的。
我什至买了一个全新的虚拟机。将文件从故障机器(c:\PHP 和 c:\imagemagick)复制到该机器。安装了vcredist140。因同样的问题而失败。将 c:\imagemagick 添加到 %PATH% 变量中。有效!
我已验证 c:\imagemagick 在路径中,甚至尝试将文件复制到 c:\PHP,但仍然失败。发生了一些变化,影响了 2 台机器,而且只有 2 台(到目前为止)机器。所有机器都是 Windows 10 21H1 或 Server 2019,失败的两台是 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 存储库中。
【问题讨论】:
-
现在这没有任何意义。突然,无法加载扩展的两台机器都不再存在了,但现在我们所有的开发机器(幸好这还没有达到测试或生产)都像这样失败:RegistryKeyLookupFailed `CoderModulesPath' @ error/module.c/GetMagickModulePath /665
-
现在,我切换到这个版本的 Image Magick 和 php_imagick.dll,mlocati.github.io/articles/php-windows-imagick.html,现在一切正常。仍然不知道我做了什么来解决原来的问题。
标签: php imagemagick imagick