自制软件:安装新公式 php72-imagick

Homebrew: install new formula php72-imagick

我需要在 php 7.2

上安装 imagick 模块

明白了

brew search php72
==> Searching local taps...
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...
No formula found for "php72".
Closed pull requests:
...
php72-imagick 3.4.3 (new formula) (https://github.com/Homebrew/homebrew-php/pull/4267)

我该怎么做?

我还需要氩气支持

你想要 php72-gmagick,GraphicsMagick 是 ImageMagick 5.5.2 的一个分支。

或者,您仍然可以pecl install imagick

我想这一切都在 2018 年 4 月发生了变化。 Homebrew 不再充当 PHP 的包管理器,所以所有 php-imagickphp-redisphp-other-extension 的东西都不见了,你现在应该像其他人一样使用 pecl 管理 PHP 包。

那么,如何在PHP下获取Imagick?请注意 ImagickImageMagick 是两个不同的东西:

  • ImageMagick 是整个 ImageMagick 套件
  • Imagick 只是 PHP 绑定

这是步骤 - 如果有人知道更好或有任何改进,请通过评论告诉我,我会更新。


第 1 步 - 删除任何可能冲突的内容

开始之前,最好清理掉所有损坏或不需要的东西。尽可能多地执行以下操作:

brew rm php php@5.6 php@7.0 php@7.1
brew rm imagemagick

步骤 2 - 更新 Xcode 命令行工具并获取构建包

确保您已安装 Xcode 命令行工具:

xcode-select --install

转到 AppStore 并单击 更新 并更新所有 Xcode 相关软件包 - 特别是如果您最近升级了 macOS。

安装自制构建工具:

brew install pkg-config

步骤 3 - 安装 ImageMagick

检查您想要的 ImageMagick 选项:

brew options imagemagick

我喜欢用:

brew install imagemagick --with-x11 --with-librsvg --with-openexr --with-pango
hash -r

但您可能喜欢原版安装:

brew install imagemagick
hash -r

第 4 步 - 安装自制程序 PHP

接下来,安装 homebrew 版本的 PHP:

brew install php
hash -r                    # Update bash's internal paths

现在,严格确保您 运行 正在使用正确的 homebrew PHP:

type php

如果那告诉你:

/usr/local/...anything.../php

你正在运行ning homebrew PHP可以进行下一步

如果它告诉你:

/usr/bin/php

您正在 运行使用 Apple 提供的 PHP。如果这是你想要的 运行,请忽略我的整个答案,该答案基于你想要使用 homebrew PHP。如果你得到这个答案但想要 运行 homebrew PHP,你的 PATH 设置不正确。您需要将 /usr/local/bin 放在 /usr/bin 之前,以便在 Apple 程序之前获取所有 homebrew 包,即

export PATH=/usr/local/bin:$PATH

此步骤还为您提供 pecl - PHP 包管理器 - 因为它是 homebrew PHP 的一部分。


步骤 5 - 安装 Imagick

现在您可以使用 pecl:

安装 Imagick
pecl install imagick

如果有任何问题,这里有一些相关的问题和答案...

Q1。我怎样才能找到我的 php.ini 文件在哪里?

尝试以下任一命令:

pecl config-get php_ini                  # I get "/usr/local/etc/php/7.2/php.ini"
brew info php
php -i | grep "Loaded Configuration"     # I get "Loaded Configuration File => /usr/local/etc/php/7.2/php.ini"

Q2。如何找到 pecl 安装模块的位置?

pecl config-get ext_dir                 # I get "/usr/local/lib/php/pecl/20170718"

Q3。我如何知道加载了哪些 PHP 模块?

php -m

Q4。为什么 PHP 找不到我的模块?

首先使用 Q2 找到您的模块目录。我喜欢将它放在剪贴板中:

pecl config-get ext_dir | pbcopy

然后编辑 Q1 中的 php.ini 文件。我使用 vi,所以我会这样做:

vi "$(pecl config-get php_ini)"

然后在该文件中找到如下所示的行:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir

然后(使用粘贴缓冲区的内容)使以下行看起来像这样(开头没有分号):

extension_dir = "/usr/local/lib/php/pecl/XXXXXX"

在我的机器上 XXXXXX20170718。如果你做对了,你通过 pecl 安装的所有模块将对你的 homebrew PHP.

可见

Q5。如何查看我所有的 PHP 设置?

检查 PHP 配置、版本和设置:

php -i

希望对您有所帮助!

在我的例子中(PHP 7.2.10 with Homebrew)有效:

pecl install imagick

打开文件 php.ini 并删除带有 imagick 扩展名的扩展行。

检查 *.ini 文件

php --ini

您可以看到扩展文件的路径。创建或编辑 imagick ini 文件。

subl /usr/local/etc/php/7.2/conf.d/ext-imagick.ini

文件内容可能是(检查imagick.so的路径)

[imagick]
extension="/usr/local/opt/php/pecl/20170718/imagick.so"

并用

重启php
brew services restart php

尝试,如果错误消息消失:

php -v

并检查 imagick 扩展:

php -i | grep imagick

如果您看到带有 imagick 模块 => 已启用 的行,您就解决了一个问题。