我需要在我的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)
我该怎么做?
我也需要支持氩气
答案 0 :(得分:33)
我认为这一切都在2018年4月发生了变化。 Homebrew 不再充当PHP的包管理器,因此所有php-imagick
和php-redis
和php-other-extension
内容都已消失,您现在应该管理PHP包像其他人一样使用pecl
。
那么,如何在PHP下获取Imagick?请注意, Imagick 和 ImageMagick 是两回事:
以下是步骤 - 如果有人知道更好或有任何改进,请通过评论告诉我,我会更新。
第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"
并使用
重新启动phpbrew services restart php
如果错误消息消失,请尝试:
php -v
并使用以下命令检查imagick扩展名:
php -i | grep imagick
如果看到启用了 imagick模块=>的行,您已经解决了问题。
答案 2 :(得分:0)
你想要php72-gmagick
,GraphicsMagick是ImageMagick 5.5.2的一个分支。
或者,您仍可以pecl install imagick
。