返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP Startup: Unable to load dynamic library ‘imagick’ 【解决】无需复制dll到bin目录,windows下配置imagick扩展(Nginx)
  • 406
分享到

PHP Startup: Unable to load dynamic library ‘imagick’ 【解决】无需复制dll到bin目录,windows下配置imagick扩展(Nginx)

phpwindowsnginx 2023-09-09 17:09:51 406人浏览 八月长安
摘要

场景: 主要解决:ImageMagick number of supported fORMats:0 。PHP Startup: Unable to load dynamic library ‘i

场景:

主要解决:ImageMagick number of supported fORMats:0 。PHP Startup: Unable to load dynamic library ‘imagick’。这两种问题。

重点是设置完windows系统环境变量后,要重启或注销系统后,php才能正常识别imagick扩展。经过测试,php7.3、7.4、8.0此方法均适用,8.1未测试。


完整步骤

1.使用php -m 命令查看php扩展加载情况。下图是没有加载imagick扩展。
在这里插入图片描述

2.到PECL网站下载imagick的windows扩展包。
在这里插入图片描述

3.选择对应版本的PHP扩展,下载到本地。我用的是Nginx1.23,所以我下载nts版本。
在这里插入图片描述

4.将下载的压缩包解压到本地,可以是任意位置。以前教程都是解压到C盘,经过我测试其实哪个位置都行,主要是设置好环境变量。
在这里插入图片描述

5.设置好imagick的位置的环境变量。如下图,注意路径要正确。
在这里插入图片描述
在这里插入图片描述

6.设置好以后,到PHP根目录,修改php.ini配置文件,增加一行,保存。
在这里插入图片描述

7.将php_imagick-3.7.0-8.0-nts-vs16-x64文件夹中的dll扩展文件,复制到php的ext文件夹下。
在这里插入图片描述

8.重启或者注销系统一下。(重要步骤,如果不重启直接去试imagick扩展,会出现奇奇怪怪问题。其他教程没有提到。)
重启或注销

10.验证扩展是否安装成功。以下是使用php -m 命令、phpinfo()、new Imagick() 三种方法进行验证。
php -m 验证是否成功
phpinfo验证是否成功
var_dump函数验证是否成功


环境说明

Windows 10 X64 LTSC
PHP:8.0.2
Nginx 1.23
imagick扩展:php_imagick-3.7.0-8.0-nts-vs16-x64


PHP官网的安装说明(Apache例子)

If there is no “imagick” section or “supported format” is 0,
something went wrong.

I initially followed:
Http://php .net/manual/en/imagick.installation.php
but after installation, PHPInfo under imagick shows
number of supported formats = 0

So I followed these steps, clobbered from various sources
to get it to work.

  1. Open PHPInfo and check:
    Architecture = x86 or x64
    Thread Safety = yes or no

  2. Download ImageMagick from:

    http://windows.php.net/downloads/pecl/deps/

    In my case I downloaded: ImageMagick-6.9.3-7-vc11-x86.zip
    because the Architecture under PHPInfo is x86
    as for vc11 or vc14
    search Google for “visual c++ 11 runtime” or
    “visual c++ 14 runtime” and install it

  3. Unzip and copy all dlls from the bin subfolder to the
    Apache bin directory. It’s a bunch of CORE_RL_.dll
    and IM_MOD_RL_
    .dll plus a few other dlls.

    In my case, I installed UwAmp in C:\UwAmp, so:
    (from zip) bin/*.dll --> C:\UwAmp\bin\apache\bin
    4. Goto:

    http://pecl.php.net/package/imagick

    as of today, latest is 3.4.1 so I went to:
    http://pecl.php.net/package/imagick/3.4.1/windows

    My PHP version is: 5.6.18, and Thread Safety is Yes from
    Step #1, so I downloaded:
    5.6 Thread Safe (TS) x86
    I got: php_imagick-3.4.1-5.6-ts-vc11-x86.zip

  4. Unzip and copy “php_imagick.dll” to the php extension folder:

    In my case:
    php_imagick.dll --> C:\UwAmp\bin\php\php-5.6.18\ext

    Note: this ZIP also contains dlls which other guides says
    to extract to the extension folder of apache.
    NO NEED TO DO IT. Step #3 has taken care of it.

  5. Edit “php.ini” and add at the very end (could be
    anywhere I suppose):

    [Imagick]
    extension=php_imagick.dll

    For super newbies: click the edit button in the UwAmp UI,
    “php_uwamp.ini” will open and edit it. It will be copied to
    the correct php.ini when UwAmp is restarted. I had
    trouble at first since there are several php*.ini scattered
    all over.

  6. Restart Apache

  7. Check PHPInfo
    scroll to section (or find): imagick
    number of supported formats: 234

Hope this helps.


参考

在 Windows 10 64 位、PHP 7.4.6 中,报错:PHP Warning: PHP Startup: Unable to load dynamic library ‘imagick’

ImageMagick安装配置(PHP官网)

来源地址:https://blog.csdn.net/zy9980/article/details/127445719

--结束END--

本文标题: PHP Startup: Unable to load dynamic library ‘imagick’ 【解决】无需复制dll到bin目录,windows下配置imagick扩展(Nginx)

本文链接: https://lsjlt.com/news/401753.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作