首先,如果我发布了重复的问题,我很抱歉。我知道有一些关于在本地计算机上安装 imagick 的线程。但我真的找不到任何方法来修复我的 php 安装。
我想安装 PHP 8.0 的 imagick 扩展,但是当我尝试使用
pecl install imagick
命令安装时,出现以下错误:
No releases available for package "pecl.php.net/imagick"
install failed
我正在 Macbook 上进行开发。全新安装 Laravel Valet 安装。安装了我的 PHP 8.0(使用自制程序,通过 valet)并尝试执行
pecl install imagick
。
我已经用
brew reinstall imagick
& brew reinstall pkg-config
重新安装了 imagick 和 pkg-config。以该顺序。之后,我仍然收到相同的报告。
我已经跑了
brew doctor
,但不认为那里有任何有用的东西可以帮助我。只有一些损坏的符号链接和 Unbreed 头文件。如果您愿意,我可以上传完整的输出,但有人需要帮助/告诉我如何上传这么大的片段。只是把它放在这个问题而不格式化似乎有点太多了。
可能重复,到目前为止对我没有帮助:
对我来说,它解决了
sudo pecl install imagick
但这可能不是首选路线。
如果您使用的是类似 Linux 的操作系统,需要提升权限才能安装软件包,则接受的答案(由 Dylan Schoenmakers 提供)是正确的。
但是,有时您可能需要为不再主流或不再维护的 PHP 版本(即遗留项目)安装 pecl 软件包,并且最新版本的 pecl 软件包可能不支持该 PHP 版本。在这种情况下,需要该软件包的旧版本。当我处理遗留项目并尝试在容器上安装包时,这种情况发生在我身上。在这种情况下,请尝试提到的链接答案可能是重复的。
如果使用容器,请确保镜像上可以使用 phpize,否则会抛出错误。一个包含 phpize 的容器文件示例如下所示(基于 alpine 图像):
FROM php:7.2-fpm-alpine
RUN apk update \
&& apk add --no-cache \
bash \
curl \
icu-libs \
icu-dev \
imagemagick \
imagemagick-libs \
imagemagick-dev \
libpng-dev \
libxml2-dev \
libzip-dev \
openldap-dev \
openssl \
$PHPIZE_DEPS \
vim \
wget \
zip
RUN wget --no-check-certificate https://pecl.php.net/get/imagick-3.7.0.tgz && pecl install --offline ./imagick-3.7.0.tgz
COPY ./project /var/www/html
ENTRYPOINT ["/home/fpm-entrypoint"]
也感谢Raptor。