Windows 10 中的 XAMPP x64 和 Imagick 不起作用
Posted
技术标签:
【中文标题】Windows 10 中的 XAMPP x64 和 Imagick 不起作用【英文标题】:XAMPP x64 and Imagick in Windows 10 doesn't work 【发布时间】:2020-04-14 01:33:12 【问题描述】:我正在尝试使用 php x64 架构在 XAMPP x64 上安装 imagick,我按照以下步骤操作:
1 - 下载并安装 ImageMagick for Windows,我安装的是这个版本:ImageMagick-7.0.9-9-Q16-x64-dll.exe
2 - 下载 Imagick for PHP,我下载了这个版本 php_imagick-3.4.4-7.2-ts-vc15-x64,在 xampp/php/ext 文件夹中添加了 php_imagick.dll 并在 php.ini 中启用了扩展。
3 - 下载所需的 Imagick 二进制文件,我下载了这个 bin ImageMagick-7.0.7-11-vc15-x64 并将它们添加到 xampp/apache/bin 文件夹中。
4 - 下载 Ghostscript,我安装了这个版本 gs950w64。
然后我用所有相关服务重新启动 XAMPP。在 phpinfo 中,我看到了 imagick 扩展,它可以工作,但是如果我运行此代码,我会收到 ERR_CONNECTION_RESET 错误。
$im = new Imagick();
$im->pingImage(realpath('sample.pdf'));
echo $im->getNumberImages();
这里是phpinfo:
有什么问题? 谢谢
更新:
如果我运行“composer show --platform”,我会收到此警告“PHP 警告:版本警告:Imagick 是针对 ImageMagick 版本 1799 编译的,但已加载版本 1801。Imagick 将运行,但可能会在 Unknown on第 0 行”。我不知道这是否相关。
这个问题只出现在 PDF 文件中,如果我用 jpg 图像运行相同的代码,它可以正常工作
【问题讨论】:
【参考方案1】:有点晚了,但是在尝试运行 Windows + PHP + imagick + Ghostview 辛苦了一天之后,我想分享我的解决方案。
使用 PHP 7.2 (Tread Safe, WIN 32, CGI/FastCGI) 我安装了匹配的 PHP-imagick-version 没有问题 (php_imagick-3.4.4-7.2-ts-vc15-x86.zip)
(CGI/FastCGI 的提示:php_imagick.dll 描述在 PHP-ext-directory 中,但其他 150 个 imagick-dlls 到 cgi-bin-folder)
之后我安装了实际的 win32 版本 (gs952w32.exe) 并得到了很多“内部服务器错误”并且 apache-error-log 增长了...:-(
解决方案:
在旧的 gs 版本 (https://github.com/ArtifexSoftware/ghostpdl-downloads/releases) 中向后移动,我成功地获得了 9.25 (gs925w32.exe) 的运行安装。
顺便说一句: 在我的私人 linux 机器上,只需几分钟即可安装相同的 PHP、Imagick 和 Ghostview...
【讨论】:
以上是关于Windows 10 中的 XAMPP x64 和 Imagick 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Xampp 在 Windows 上加载 Phalcon 扩展
xampp中的phpmyadmin无法在Windows 10上运行
Windows 10 上的 XAMPP 和 Skype 端口冲突
Windows 10 x64中的Ruby curb gem问题