在 Mac OS X 中使用 PHP 模块安装 ImageMagick Brew


ImageMagick Brew installation with PHP Module in Mac OS X

我已经使用brew install imagemagick安装了ImageMagick。这一切都工作正常,我可以从终端/命令行运行任何 ImageMagick 命令。

现在,当我尝试在PHP中使用ImageMagick类时,我收到错误Class 'Imagick' not found in ...。我想这是因为没有加载图像魔术模块。

谁能帮我让这个东西在 PHP 中工作?谢谢!

附加信息:
Mac OS X 版本: 10.8: Mountain Lion
PHP 版本: 5.3.13

php72-imagick现在已被弃用,因为Imagick是PHP二进制文件本身的一部分。使用pecl安装imagick,例如:

brew install php
brew install imagemagick
brew install pkg-config
pecl install imagick

我只是在经过大量实验后才这样做的。目前,这似乎是 php 5.3 的方法:

brew tap josegonzalez/php
brew tap homebrew/dupes
brew install php53-imagick

不知道何塞·冈萨雷斯是谁,但显然我们欠他的债......

您的 ImageMagick 安装还不够。您还需要Imagick软件包(可能称为php72-imagick或类似的自制包装)。

Imagick本身并不做这项工作,它是一个原生PHP扩展,用于使用ImageMagick API创建和修改图像。

尝试通过 brew search imagick 搜索包的确切名称。

我正在使用优胜美地。对我来说,解决方案是这里已经列出的答案和评论的组合。

brew install imagemagick
brew install php55-imagick

编辑/etc/php.ini 以包含 imagick

extension=/usr/local/Cellar/php55-imagick/{version of php55-imagick}/imagick.so

例:

extension = /usr/local/Cellar/php55-imagick/3.1.2_1/imagick.so

我遇到了同样的问题。如果您使用的是php 5.6
,这些是适合我的步骤

  1. brew install php56-imagick
  2. brew install imagemagick

  3. find /usr/local/Cellar -name "imagick.so"将此命令输出中的路径复制到 php.ini 文件中
    例如 extension=/usr/local/Cellar/php56-imagick/3.3.0_2/imagick.so保存您的文件。现在仔细检查图像魔术类是否存在类型
  4. php -r "print(class_exists('imagick'));"

Brew 符号链接对我不起作用,所以我不得不将完整的路径名放入 php.ini 文件中才能让它工作。希望这有帮助

这个对我有用:

brew install imagemagick       # If it's not already installed
mkdir /usr/local/lib/php/pecl  # On my system this dir didn't exist and this caused pecl install to fail
pecl install imagick

这里

尝试:

brew install homebrew/php/php53-imagick

我一直在寻找在 Mojavie 上安装 imagick 的正确方法,并找到了完全有效的解决方案。

  1. brew install imagemagick@6
  2. brew install php@7.1
  3. 安装标头(Xcode-select --install)
  4. 从以下位置下载 imagick 源代码: https://pecl.php.net/package/imagick
  5. 打开终端并输入解压缩的文件夹imagick-3.4.3/imagick-3.4.3(在我的情况下)
  6. 运行命令 phpize
  7. 。/配置

现在,如果发生错误,例如找不到魔杖,请编辑文件Makefile并查找CPPFLAGS = -I/usr/local/opt/imagemagick@6/include/。检查包含文件夹中是否没有其他文件夹。就我而言,它应该是这样的:CPPFLAGS = -I/usr/local/opt/imagemagick@6/include/ImageMagick-6

保存并返回终端并键入 make(完成后)须藤制作安装

imagick.so 位于 imagick-3.4.3/imagick-3.4.3/modules

好的,1

小时后我已经想通了。mac 没有授予 pecl 脚本创建 PHP 目录的权限。要解决,请执行以下操作。

brew install imagemagick
Sudo pecl install imagick .  
php --ini | grep "Loaded Configuration File"
Add extension=imagick.so under extensions.

安装将完成。然后,要测试运行:

php -r "print(class_exists('imagick'));"

发件人:php 错误:找不到类 'Imagick'

您是否将extension=imagick.so添加到php.ini(或/etc/php.d/imagick.ini)文件中?

我已经安装了imagemagickphp71-imagick时遇到了同样的错误。

brew upgrade imagemagick - 为我做了这个把戏。

您可能需要sudo

sudo brew upgrade imagemagick

您可能需要重新启动 apache/php-fpm/<other webserver> .

由于声誉原因,我无法添加评论,但要添加到此 anwser:

回答 4月12日 在 16:52

Grzegorz Miśkiewicz

我得到了一个丢失的 php.h 文件,因此根据在 MacOs Mojave 上安装 xdebug - 找不到"php.h"文件,我通过以下命令安装了必要的文件:

sudo installer -pkg/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target/