我在我的新MacBook Air和Catalina上遇到了同样的问题。由于我没有使用brew安装PHP,因此出现了这个问题。我查看了您提供的页面,并假设您已经完成了“brew install pkg-config imagemagick”。这是我会处理并使其工作的方式,请参见以下内容。
删除刚安装的imagemagick和pkg-config(如果在版本列表中显示了PHP,则还要删除它)
首先,如果必要,我们获取php @ver名称。如果您在列表中看不到PHP,则无需删除它,只需删除其他两个即可。
brew list --versions
...
imagemagick 7.0.10-0
...
pcre 8.44
php@7.3 7.3.16
pkg-config 0.29.2_2
...
如果php服务正在运行,请停止服务,在我的情况下是@7.3版本
brew services stop php@7.3
接下来,我们删除有问题的项目
brew remove php@7.3 pkg-config imagemagick
或者简单地说
brew remove pkg-config imagemagick
如果没有使用brew安装PHP
重新启动计算机(可选,但我喜欢这样做)
现在,我们再次安装项目,如果上次没有使用brew安装PHP,则包括PHP
brew install php@7.3 pkg-config imagemagick
将PHP添加到命令行路径(如果尚未添加)(可选)
echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.bash_profile
要立即启动php@7.3并在登录时重新启动,请执行以下操作:
brew services start php@7.3
或者,如果不需要后台服务,则可以直接运行:
php-fpm
确认PHP、imagemagick和perl/pecl是否是预期的版本
php -v
PHP 7.3.16 (cli) (built: Mar 19 2020 11:19:09) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.16, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.16, Copyright (c) 1999-2018, by Zend Technologies
convert --version
Version: ImageMagick 7.0.10-0 Q16 x86_64 2020-04-04 https://imagemagick.org
Copyright: © 1999-2020 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(3.1)
Delegates (built-in): bzlib freetype gslib heic jng jp2 jpeg lcms ltdl lzma openexr png ps tiff webp xml zlib
pecl version
PEAR Version: 1.10.10
PHP Version: 7.3.16
Zend Engine Version: 3.3.16
Running on: Darwin mbookair.local 19.4.0 Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64 x86_64
使用pecl安装iMagick
pecl install imagick
当您看到“autodetect”的路径问题时,请按ENTER键
安装完成后,您可以确认该模块已加载
php -m | grep imagick
如果已加载,它将返回一个带有单词imagick
的行
从命令行测试是否正确安装了imagick
进入用户主目录
cd ~
从命令行运行交互式PHP shell
php -a
在命令行上测试的代码:
$im = new Imagick ();
$im->newImage (300, 225, "blue");
$im->writeImage ("test_imagick.jpg");
通过打出exit退出php交互模式,然后检查您的用户目录中是否创建了明亮蓝色的test_imagick.jpg。
故障排除注意事项
如果您收到以下警告:
"PHP Warning: Module 'imagick' already loaded in Unknown on line 0
Warning: Module 'imagick' already loaded in Unknown on line 0"
这可能是之前未完成的pecl安装留下的。请检查您的php.ini文件并删除重复的
extension="imagick.so"
条目。
macOS 10.15.4
上使用这些指令和sudo pecl install imagick
安装imagick
时没有遇到任何问题。*install ok: channel://pecl.php.net/imagick-3.4.4
*;如果我运行php -m | grep -i magic
,我可以看到它。这个问题只与PHP 7.3
有关吗?我只是brew install php
,它得到了PHP 7.4.4
。 - Christos Lytras