![重新配置 php 以适应 imagemagic 和 openjpeg](https://linux22.com/image/945553/%E9%87%8D%E6%96%B0%E9%85%8D%E7%BD%AE%20php%20%E4%BB%A5%E9%80%82%E5%BA%94%20imagemagic%20%E5%92%8C%20openjpeg.png)
我的 PHP 脚本无法读取 jpeg2000 文件,imagemagick 命令行也无法读取。我从标准下载中安装了 Ubuntu 18.04 服务器,它为我安装了 imagemagick 和 PHP。显然,Ubuntu 的默认安装不包含 openjpeg 库。我按照说明安装了它,但 imagemagick 找不到它。我感觉必须从源代码重新构建 imagemagick,但 ubuntu 不允许我卸载当前版本 (6.9.7),因为它是许多其他东西依赖的关键系统组件(包括 PHP?)。有没有办法重新配置 PHP 以使用新的 openjpeg 库?我是否必须卸载所有依赖于 imagemagik 的东西,重新构建并重新安装它们?我如何找出那份清单?
我尝试了 sudo apt install imagemagick,它说正在安装版本 8:6.9.7.4,但是当我询问 imagmagick 命令行别名时,它们都说它们仍然是版本 6.9.7
我尝试了 sudo apt purge imagemagick 并清除了版本 8:6.9.7.4,但所有旧命令(如 convert)仍然存在,没有被清除,仍然是版本 6.9.7
好的,那个 8:是一个转移注意力的花招,那又是 6.9.7 版本。
我尝试按照此答案中的说明进行操作: 升级到 imagemagick7 并强制 php 使用它 它说它构建了 imagemagick 7.1.0,如果我运行 sudo convert -version,它就会显示我所看到的,但如果我运行 convert -version(从非 root 帐户),它仍然运行 6.9.7。如何让新版本适用于所有用户?使用 sudo convert test.jp2 test.png 会生成无法使用的损坏的 png 文件。
好吧,我不在乎命令行是否有效,我的目标是让 PHP 工作。所以我按照上面链接的问题中的“编译和安装 PHP imagick:”说明进行操作。最后,PHP 可以读取 jpeg2000 文件!
答案1
在这个问题中:升级到 imagemagick7 并强制 php 使用它Eduardo Donoso 安装 ImageMagick 7.1.0 的说明并没有让所有用户都能使用命令行转换,但它确实更新了 PHP 中的 imagick,现在我的脚本可以读取 jpeg2000 图像!