”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 macOS 上安装并启用 Imagick for PHP

如何在 macOS 上安装并启用 Imagick for PHP

发布于2024-11-08
浏览:874

How to Install and Enable Imagick for PHP  on macOS

如果您在 macOS 上工作并且需要安装 Imagick for PHP 8.3,则可能会遇到默认安装较旧版本 PHP(例如 PHP 8.0)的问题。在这篇文章中,我将引导您完成确保 Imagick 已安装并针对 PHP 8.3 正确配置的步骤。

第 1 步:通过 Homebrew 安装 PHP 8.3

首先,确保 PHP 8.3 已安装并设置为默认版本。

  1. 安装 PHP 8.3:
   brew install [email protected]
  1. 链接 PHP 8.3 使其成为系统上的默认版本:
   brew link --overwrite --force [email protected]
  1. 通过检查版本来验证 PHP 8.3 是否处于活动状态:
   php -v

您应该看到 PHP 8.3.x 作为输出。

步骤 2:安装 pkg-config 和 ImageMagick

在安装Imagick PHP扩展之前,我们需要安装pkg-config和ImageMagick:

  1. 通过 Homebrew 安装 pkg-config 和 ImageMagick:
   brew install pkg-config imagemagick

此步骤可确保您的系统上提供 Imagick 所需的库和配置。

步骤 3:安装适用于 PHP 8.3 的 Imagick

现在 PHP 8.3 已设置为默认版本,我们可以安装 Imagick 扩展了。

  1. 使用 PECL 安装 Imagick for PHP 8.3。由于默认命令可能仍然指向 PHP 8.0,因此我们需要确保使用 PHP 8.3 的正确 php-config:
   /opt/homebrew/opt/[email protected]/bin/pecl install imagick
  1. 如果 PECL 未按预期工作,或者您正在手动安装,请在 Imagick 安装过程中显式指定正确的 php-config:
   /private/tmp/pear/temp/imagick/configure --with-php-config=/opt/homebrew/opt/[email protected]/bin/php-config --with-imagick

步骤 4:在 PHP 8.3 中启用 Imagick

Imagick安装完成后,需要在PHP的配置文件(php.ini)中启用它。

  1. 打开 PHP 8.3 的 php.ini 文件:
   nano /opt/homebrew/etc/php/8.3/php.ini
  1. 添加以下行以启用 Imagick 扩展:
   extension=imagick.so

第 5 步:重新启动 PHP 或 Web 服务器

启用 Imagick 扩展后,重新启动您的 Web 服务器或 PHP 服务以使更改生效:

  • 对于阿帕奇:
  sudo apachectl restart
  • 对于 PHP-FPM:
  sudo brew services restart [email protected]

第 6 步:验证 Imagick 安装

最后,验证Imagick扩展是否已成功安装并启用。您可以使用以下命令进行检查:

php -m | grep imagick

或者,您可以使用 phpinfo() 创建 PHP 脚本来检查 Imagick 扩展是否已加载。


结论

按照以下步骤,您可以在 macOS 上成功安装并启用适用于 PHP 8.3 的 Imagick 扩展。确保使用正确的 php-config 是避免版本冲突并确保 Imagick 与 PHP 8.3 配合使用的关键。

如果您遇到任何问题或对设置有疑问,请随时发表评论!

版本声明 本文转载于:https://dev.to/nasrulhazim/how-to-install-and-enable-imagick-for-php-83-on-macos-2feo?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 人脸检测失败原因及解决方案:Error -215
    人脸检测失败原因及解决方案:Error -215
    错误处理:解决“ error:((-215)!empty()in Function Multultiscale中的“ openCV 要解决此问题,必须确保提供给HAAR CASCADE XML文件的路径有效。在提供的代码片段中,级联分类器装有硬编码路径,这可能对您的系统不准确。相反,OPENCV提...
    编程 发布于2025-07-03
  • 图片在Chrome中为何仍有边框?`border: none;`无效解决方案
    图片在Chrome中为何仍有边框?`border: none;`无效解决方案
    在chrome 在使用Chrome and IE9中的图像时遇到的一个频繁的问题是围绕图像的持续薄薄边框,尽管指定了图像,尽管指定了;和“边境:无;”在CSS中。要解决此问题,请考虑以下方法: Chrome具有忽略“ border:none; none;”的已知错误,风格。要解决此问题,请使用以下...
    编程 发布于2025-07-03
  • 为什么PYTZ最初显示出意外的时区偏移?
    为什么PYTZ最初显示出意外的时区偏移?
    与pytz 最初从pytz获得特定的偏移。例如,亚洲/hong_kong最初显示一个七个小时37分钟的偏移: 差异源利用本地化将时区分配给日期,使用了适当的时区名称和偏移量。但是,直接使用DateTime构造器分配时区不允许进行正确的调整。 example pytz.timezone(...
    编程 发布于2025-07-03
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-07-03
  • 在Pandas中如何将年份和季度列合并为一个周期列?
    在Pandas中如何将年份和季度列合并为一个周期列?
    pandas data frame thing commans date lay neal and pree pree'和pree pree pree”,季度 2000 q2 这个目标是通过组合“年度”和“季度”列来创建一个新列,以获取以下结果: [python中的concate...
    编程 发布于2025-07-03
  • 我可以将加密从McRypt迁移到OpenSSL,并使用OpenSSL迁移MCRYPT加密数据?
    我可以将加密从McRypt迁移到OpenSSL,并使用OpenSSL迁移MCRYPT加密数据?
    将我的加密库从mcrypt升级到openssl 问题:是否可以将我的加密库从McRypt升级到OpenSSL?如果是这样,如何?答案:是的,可以将您的Encryption库从McRypt升级到OpenSSL。可以使用openssl。附加说明: [openssl_decrypt()函数要求iv参...
    编程 发布于2025-07-03
  • 如何正确使用与PDO参数的查询一样?
    如何正确使用与PDO参数的查询一样?
    在pdo 中使用类似QUERIES在PDO中的Queries时,您可能会遇到类似疑问中描述的问题:此查询也可能不会返回结果,即使$ var1和$ var2包含有效的搜索词。错误在于不正确包含%符号。通过将变量包含在$ params数组中的%符号中,您确保将%字符正确替换到查询中。没有此修改,PDO...
    编程 发布于2025-07-03
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-07-03
  • 为什么我会收到MySQL错误#1089:错误的前缀密钥?
    为什么我会收到MySQL错误#1089:错误的前缀密钥?
    mySQL错误#1089:错误的前缀键错误descript [#1089-不正确的前缀键在尝试在表中创建一个prefix键时会出现。前缀键旨在索引字符串列的特定前缀长度长度,可以更快地搜索这些前缀。了解prefix keys `这将在整个Movie_ID列上创建标准主键。主密钥对于唯一识别...
    编程 发布于2025-07-03
  • 用户本地时间格式及时区偏移显示指南
    用户本地时间格式及时区偏移显示指南
    在用户的语言环境格式中显示日期/时间,并使用时间偏移在向最终用户展示日期和时间时,以其localzone and格式显示它们至关重要。这确保了不同地理位置的清晰度和无缝用户体验。以下是使用JavaScript实现此目的的方法。方法:推荐方法是处理客户端的Javascript中的日期/时间格式化和时...
    编程 发布于2025-07-03
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击的div元素中选择文本,您可以使用以下Javascript函数: function selecttext(canduterid){ if(do...
    编程 发布于2025-07-03
  • 如何简化PHP中的JSON解析以获取多维阵列?
    如何简化PHP中的JSON解析以获取多维阵列?
    php 试图在PHP中解析JSON数据的JSON可能具有挑战性,尤其是在处理多维数组时。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    编程 发布于2025-07-03
  • 如何处理PHP文件系统功能中的UTF-8文件名?
    如何处理PHP文件系统功能中的UTF-8文件名?
    在PHP的Filesystem functions中处理UTF-8 FileNames 在使用PHP的MKDIR函数中含有UTF-8字符的文件很多flusf-8字符时,您可能会在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    编程 发布于2025-07-03
  • 如何在Chrome中居中选择框文本?
    如何在Chrome中居中选择框文本?
    选择框的文本对齐:局部chrome-inly-ly-ly-lyly solument 您可能希望将文本中心集中在选择框中,以获取优化的原因或提高可访问性。但是,在CSS中的选择元素中手动添加一个文本 - 对属性可能无法正常工作。初始尝试 state)</option> < op...
    编程 发布于2025-07-03
  • 如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    编程 发布于2025-07-03

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3