致命错误:找不到"想象力"类

Dev*_*DOS 19 php apache imagemagick

我想在WampServer 2下安装imagemagic php扩展.

  • 我已经下载并安装了ImageMagick.我选择了ImageMagick-6.8.8-10-Q16-x86-dll.exe

  • 我已经下载了php扩展程序.

  • 我已经将我刚下载的dll扩展名移到了C:\ wamp\bin\php\php5.4.16\_分机

  • 我已经改变了php.ini(通过wamp tray icon>右键单击> PHP> php.ini访问它)并将"extension = php_imagick.dll"(没有引号)添加到扩展名列表中.

  • 我重新启动了Apache.没有注意到托盘图标上PHP扩展列表上显示的扩展名,我重新启动了wampserver.ImageMagick扩展现在显示在列表上启用.

但是,我不能使用它.做一个快速测试返回"致命错误:未找到类'Imagick'".在phpinfo()中只显示了imagemagick已添加到env变量中.

当我试图测试想象力:

$im = new imagick( 'test.jpg' );
// resize by 200 width and keep the ratio
$im->thumbnailImage( 200, 0);
 // write to disk
$im->writeImage( 'test_thumbnail.jpg' );
Run Code Online (Sandbox Code Playgroud)

我得到错误:Fatal error: Class 'imagick' not found 我做错了什么?我正在使用win7 32位,phph 5-4-16和apache2

Joe*_*tch 12

您可能有未对齐的库版本。

这是我解决的方法

我真的为所有这些答案而挣扎。回想起来,我意识到他们中的大多数都是正确的,只是他们遗漏了一些非常重要的细节。

1)。首先,在您开始下载任何库或 DLL 之前,您要从 php_info开始找出这三个非常重要的参数。

运行 PHP_Info 并检查:

  1. 架构:x86 或 x64。您的计算机可能是 x64,但您的 php 在 x86 上运行,所以不要假设
  2. 线程安全:是或否。也非常重要。
  3. 您的 PHP 版本

2)。从以下位置下载 ImageMagick:https : //windows.php.net/downloads/pecl/deps/。我的电脑是 x64,但我的 php 运行的是 x86,所以我下载了 ImageMagick-7.0。- -vc*-x86.zip

3)。解压缩所有 DLL 并将其从解压缩的 bin 子文件夹复制到 Apache bin 目录。它是一堆 CORE_RL_ .dll 和 IM_MOD_RL_ .dll 加上一些其他 DLL。就我而言,[zippeddownload]/bin/* -> 复制到 -> C:\Xampp\apache\bin

4)。转到http://pecl.php.net/package/imagick。您可以选择 zip 链接或仅选择 DLL 链接。我更喜欢 DLL 链接。就我而言,我选择了最新版本 3.4.3。然后带我到https://pecl.php.net/package/imagick/3.4.3/windows。到这里我们又要慎重选择了

  1. 我的 php 版本是PHP 5.6
  2. 线程安全已启用
  3. 正在运行的架构 php 是x86
  4. 所以我拿了5.6 线程安全 (TS) x86

5)。解压并复制“php_imagick.dll”到 php ext文件夹。和所有其他 DLL 文件到 php 文件夹

6). 使用编辑器打开php.ini。搜索“extension=”并将这一行extension=php_imagick.dll添加为其中之一。

7)。重新启动 Xampp/Wamp 或只是重新启动 Apache 并再次运行 PHP_INFO。Imagick 应该显示。如果您仍然看不到它,请参阅此链接http://php.net/manual/en/imagick.setup.php#119084

额外提示:您可能需要下载visual c++ 14 runtime。从这个链接https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads我选择了最新版本。

  • Eryk 是对的,就我在另一个站点上的情况而言,它是为第 3 部分编写的,用于将所有 DLL 放在 PHP 目录中,而不是 Apache 的目录中。将 DLL 放入 E:\wamp64\bin\apache\apache2.4.37\bin\ 后,它工作得很好! (5认同)
  • 第 3 部分)在这里至关重要 - 互联网上的任何其他教程都说我只需将这些 IM 和 CORE_ 文件粘贴到 php 文件夹中,但它们也需要放入 apache 文件夹中。 (4认同)

Ama*_*Bah 7

  • 试试:php -m | grep imagick.
  • 如果结果为空,请执行: sudo apt-get remove --purge php5-imagick && sudo apt-get install php5-imagick

问候

  • OP在Windows上,正如他的问题中许多Windows特定的引用(WAMP,Windows样式路径,.dll文件,.exe文件等)所示. (10认同)

Dev*_*DOS 1

我让它工作的唯一方法是使用旧版本的 imagick: php_imagick-3.2.0b1-5.4-nts-vc9-x86