首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法加载映像库

问无法加载映像库
EN

Stack Overflow用户
提问于 2016-09-21 07:23:04
回答 4查看 42.7K关注 0票数 15

我已经安装了来自这里 (ImageMagick-7.0.31-Q16-x64- dll )和来自这里的dll (TS 32位)的imagick。并将CORE_RL_*复制到C:\xampp\apache\bin,但在运行laravel服务器时仍然会出现以下错误。

错误:警告: PHP启动:无法加载动态库'C:\xampp\php\ext\php_imagick.dll‘-无法找到指定的模块。在第0行中未知

另外,我在C:\xampp\php\ext\php_imagick.dll中放置了dll文件。

此外,图像显示在phpinfo()中。

​

当我使用laravel时,我会得到以下错误。

​

EN

回答 4

Stack Overflow用户

发布于 2017-05-30 09:57:38

让Imagick在Windows上工作一直以来都是一件偶然的事,正如这里指出的,这是一个很好的指南http://stackoverflow.com/a/36378764/1090867

但它忽略了一个重要的观点

您不需要将二进制文件放入PHP文件夹!

所以,这是我每次需要这样做的时候遵循的步骤。这应该适用于apache、Nginx或IIS。

第一步

查找php版本并设置

​

​

你需要版本,架构,编译器和线程安全

如果禁用线程安全,这是,NTS,是启用的,它将TS

第二步

获取并安装一个ImageMagick副本,并确保它与您的体系结构相匹配,这也需要是dll.exe而不是静态版本。

关于Q8和Q16,我将留给您,但是这两个版本都可以工作。

链接

我建议将安装目录名更改为类似于C:\Imagemagick的通用目录名,因为我过去在使用PHP和windows的默认目录名时遇到了一些问题。

只需安装,但要确保您勾选“添加应用程序路径”,而我通常也会勾选遗留的实用程序。

​

​

安装完毕后,转到您的环境变量,并确保它实际上在路径中。没有必要将任何内容复制到文件夹中

为了确保一切正常工作,打开命令行并键入convert --version,您应该得到一个响应。

第三步

不幸的是,这是困难的部分,可能是一些尝试和错误。我发现下面提供了最好的php_imagick.dll,它似乎可以工作9次

http://www.peewit.fr/imagick/

只需选择与您的安装匹配的版本。

如果这不起作用,那么转到php.net,并尝试每个版本,直到其中一个工作..。(最迟开始)

http://windows.php.net/downloads/pecl/releases/imagick/

一旦你有了一个php_imagick.dll,把它放到你的php/ext/文件夹中

找到您的php.ini文件,转到底部(或任何您的扩展名)并添加extension=php_imagick.dll

第四步

重新启动PHP (或您的计算机),如果不尝试不同的php_imagick.dll并重复,它应该是工作的。

如果上面的方法不起作用

然后尝试一个稍微老一点的Imagick版本,我通常使用6.8.6-8版本的Q16。

请注意,我只在Windows7和Windows 2008、2008 R2、2012和R2 all x64和x86 PHP上真正做到过这一点。

如果这仍然不起作用,那么您可能需要将CORE_RL文件复制到Imagick目录中,这通常会导致更多的问题,但是如果您的想法正在耗尽,那么就试一试

票数 31
EN

Stack Overflow用户

发布于 2018-02-03 17:47:35

我刚碰到这个问题。只有我在命令行(PHP )上使用PHP。问题在于主php_imagick.dll文件所具有的依赖性。PHP将尝试加载扩展,但由于Windows找不到CORE_RL_ DLL,该扩展将无法加载,并且将出现关于无法加载DLL的错误/警告消息。它有助于了解Windows如何加载DLL:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx

这是相当复杂的,但您可以看到,Apache的/bin目录技巧之所以适用于Apache,是因为httpd.exe位于该目录中。但是,在使用PHP时,DLL需要位于与php.exe相同的目录中。

如果不希望出现重复的DLL,请将包含php.exe的目录添加到系统路径中,并在其中填充所有CORE_RL_ DLL。这条路是搜索的最后一条路,但会很好的。如果您不希望系统路径中存在虚假条目,那么只在Apache启动期间设置额外的路径信息。

票数 25
EN

Stack Overflow用户

发布于 2022-06-14 03:37:07

这是因为缺少依赖项。那些面临相同错误的无法加载动态库的用户请按照以下步骤操作

  • 转到https://pecl.php.net/package/imagick,选择一个稳定的版本并单击DLL链接。
  • 从DLL列表中单击适合PHP版本的链接。
  • 下载php_imagick压缩文件后,解压缩它并将php_imagick.dll文件复制到C:\xampp\php\ext文件夹。
  • 将所有DLL文件从php_imagick压缩文件(除外)解压缩到php_imagick根目录(其中有php.exe)。对于XAMPP用户,C:\xampp\php文件夹。
  • 将extension=php_imagick添加到php.ini文件中。
  • 重新启动Apache服务器。

在从DLL列表中选择之前要记住的事项.

  1. 检查PHP版本。
  2. 检查架构(x64/x86)。
  3. 检查线程安全(启用/禁用)。

​

​

N.B:以上解决方案仅供XAMPP用户使用.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39609951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档