在Mac OS Catalina中安装imagick扩展名:php_imagick.h:42:10:致命错误:找不到“ php.h”文件 删除刚刚安装的现有imagemagick和pkg-config(如果在版本列表中显示,则删除PHP)如果PHP服务正在运行,请停止它,在我的情况下为@ 7.3 下一步,我们删除有问题的项目现在,我们再次安装这些项目,如果上次未与brew一起安装,则这次包含PHP 确认PHP和imagemagick和perl / pecl是预期的版本现在使用pecl

我已经按照these steps在装有Mac OS Catalina的计算机上安装了imagemagick和php扩展名imagick,但似乎找不到办法。

尝试使用imagick安装$ sudo pecl install imagick时总是出现以下错误:

php_imagick.h:42:10: fatal error: 'php.h' file not found
#include "php.h"
         ^~~~~~~
1 error generated.
make: *** [imagick_file.lo] Error 1
ERROR: `make' failed

我正在使用php.7.3.11

显然,Mac OS X Catalina决定将标头移动到另一个文件夹,但现在似乎找不到它们。

我一直在阅读this answer,但似乎解决方案太长了,难以置信。还没有其他更简单直接的方法吗?

似乎其他manage to fix it for other extensions的麻烦要少得多。 但是,我不确定Imagick的步骤是否完全相同...

yingjianfeng09 回答:在Mac OS Catalina中安装imagick扩展名:php_imagick.h:42:10:致命错误:找不到“ php.h”文件 删除刚刚安装的现有imagemagick和pkg-config(如果在版本列表中显示,则删除PHP)如果PHP服务正在运行,请停止它,在我的情况下为@ 7.3 下一步,我们删除有问题的项目现在,我们再次安装这些项目,如果上次未与brew一起安装,则这次包含PHP 确认PHP和imagemagick和perl / pecl是预期的版本现在使用pecl

我的新MacBook Air和Catalina遇到了同样的问题。这是因为我没有在brew上安装PHP。我查看了您链接到的页面,并假设您已经完成brew install pkg-config imagemagick。这是我要清理并使其正常工作的方式,请参见下文。

删除刚刚安装的现有imagemagickpkg-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

酿造服务停止php@7.3

下一步,我们删除有问题的项目

brew remove php@7.3 pkg-config imagemagick

或者简单地

brew remove pkg-config imagemagick 如果未随brew一起安装PHP

重新启动计算机(可选,但我喜欢这样做)

现在,我们再次安装这些项目,如果上次未与brew一起安装,则这次包含PHP

brew install php@7.3 pkg-config imagemagick

将PHP添加到cmd行的路径中(如果不存在)(可选)

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

当您看到“自动检测”的路径问题时,

点击ENTER

完成后,您可以确认模块已加载 php -m | grep imagick

如果已加载,将返回一行包含单词imagick

的行

从命令行imagick正确安装了测试 cd到您的用户主目录 cd ~

从cmd行作为交互式shell运行PHP

php -a

要在cmd行进行测试的代码:

$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"条目

,

家庭酿造中存在错误,这是链接 https://github.com/Homebrew/homebrew-core/issues/41081

当您厌倦了家庭酿造时,请切换到Ubuntu,安装imagick no fuss软件包安装。

本文链接:https://www.f2er.com/2568643.html

大家都在问