Imagick 扩展可以与 PHP 8.1 和 Laravel 10 完美配合,但不能与 PHP 8.2 配合使用。新的 Laravel 11 与 PHP 8.2 兼容,这意味着还必须安装 Imagick 库才能正确运行。但是,我一直无法找到有关如何在 PHP 8.2 上安装 Imagick 的说明。据我所知,Imagick 已预安装在 PHP 8.2.17 中,但 .dll 文件不存在于 ext 文件夹中。那么,如何在本地使用 Laragon、XAMPP 或 WAMPP 设置环境以使用 Laravel 11、PHP 8.2、Intervention Image 和 Imagick?我如何在使用 Ubuntu 22 的生产环境中执行相同的操作?
我正在尝试使用 Laravel 11 与 PHP 8.2 和 Intervention 来处理图像。
编辑:如果存在 PHP 版本的 DLL,则以下指南有效,虽然 Windows 上的 PHP 8.2 上的 PHP 8.1.27 的官方 Imagick Build 确实存在,但目前不存在。我建议尝试将 Docker 与 Alpine、PHP 8.2 和 Imagick 一起使用,StackOverflow 上有一个线程可能会帮助您:Imagick Docker Alpine Linux php8.2 或者如果您可以冒险,请从 https://github.com/Imagick/imagick/issues/573#issuecomment-1431773928
下载适用于 php 8.2 的非官方 Imagick DLL话虽这么说,步骤是:
要了解 php 是否是线程安全的,以及它是什么架构(x86、x64),请在 PowerShell 中发现这一点:
php -i | Select-String "Thread Safety"
php -i | Select-String "Architecture"
然后转到 http://pecl.php.net/package/imagick 并下载软件包,例如 php 8.1.27 我目前有:8.1 Thread Safe (TS) x64 imagick 3.7.0
将包内容解压到一个可以确定的文件夹中。
将一个 dll(在我的例子中为 php_imagick.dll)复制到您的 php ext 目录,并确保右键单击该文件、属性并取消阻止它。
现在要使其发挥作用,您需要:
1。编辑php.ini
在 php.ini 中,找到定义扩展的位置,搜索 extension= 并添加行:
extension:imagick
2。编辑 PATH sys env 变量以添加 Imagick 文件夹
在开始栏搜索PATH,打开“编辑系统环境变量”,点击环境变量,选择PATH,编辑并添加Imagick最终文件夹的路径。
完成。
现在,当您输入“php -m”时,您应该能够在新打开的控制台中看到 imagick 扩展
注意:如果您不将 Imagick 文件夹 PATH 添加到系统环境路径,即使 dll 存在,php 也会抛出未找到扩展名的错误。
sudo apt-get install php8.2-imagick -y
然后重启服务器