自制软件:安装新配方php72-imagick

时间:2018-04-27 10:04:40

标签: homebrew 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)

我该怎么做?

我也需要支持氩气

3 个答案:

答案 0 :(得分:33)

我认为这一切都在2018年4月发生了变化。 Homebrew 不再充当PHP的包管理器,因此所有php-imagickphp-redisphp-other-extension内容都已消失,您现在应该管理PHP包像其他人一样使用pecl

那么,如何在PHP下获取Imagick?请注意, Imagick ImageMagick 是两回事:

  • 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

但你可能喜欢vanilla install:

brew install imagemagick
hash -r

第4步 - 安装自制PHP

接下来,使用以下命令安装PHP的自制版本

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

现在,严格确保您运行的是正确的自制 PHP:

type php

如果这告诉你:

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

您正在运行自制程序 PHP,您可以进入下一步。

如果它告诉你:

/usr/bin/php

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

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

此步骤为您提供了pecl - PHP程序包管理器 - 因为它是自制程序 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"
我的计算机XXXXXX上的

20170718。如果您做得对,那么您通过pecl安装的所有模块都将显示在您的自制 PHP中。

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

使用以下命令检查PHP配置,版本和设置:

php -i

希望有所帮助!

答案 1 :(得分:1)

就我而言(带有Homebrew的PHP 7.2.10)有效:

pecl install imagick

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

使用* p检查* .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模块=>的行,您已经解决了问题。

答案 2 :(得分:0)

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

或者,您仍可以pecl install imagick