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

时间:2014-04-12 04:44:35

标签: 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 \ ext \

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

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

但是,我无法使用它。快速测试返回"致命错误:Class' 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' );

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

7 个答案:

答案 0 :(得分:8)

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

此致

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您的库版本可能未对齐。

这是我解决的方式

我真的很难解决所有这些答案。回顾过去,我意识到其中大多数都是正确的,只是它们遗漏了一些非常重要的非常好细节。

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

运行PHP_Info并检查:

  
      
  1. 体系结构:x86或x64。您的计算机可能是x64,但是您的php在x86上运行,所以不要假设
  2.   
  3. 线程安全性:是或否。也很重要。
  4.   
  5. 您的PHP版本
  6.   

2)。https://windows.php.net/downloads/pecl/deps/下载ImageMagick。     我的计算机是x64,但是我的php正在运行x86,所以我下载了ImageMagick-7.0。- -vc * -x86.zip

3)。解压缩并将所有DLL从解压缩后的bin子文件夹复制到Apache bin目录。这是一堆CORE_RL_ .dll和IM_MOD_RL _ .dll以及一些其他DLL。就我而言,[zipdownload] / 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运行时。我从https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads链接中选择了最新版本。

答案 3 :(得分:0)

在任何页面中执行<?php phpinfo(); ?>。这将显示服务上运行的所有服务。如果它正在运行,那么它将显示在哪个目录中。

如果您使用的是WHM面板,则可能需要在那里安装imageMagick

答案 4 :(得分:0)

你是否尝试过使用合适的套管,从大写“i”开始?

$im = new Imagick( 'test.jpg' );

在php,类和文件名中,不区分大小写,但类加载器是。

答案 5 :(得分:0)

我能够使WAMPSERVER 3.2.3正常工作。事实证明,有几个php.ini文件。我必须更改Apache服务器目录中的目录,才能使ImageMagicK与LocalHost一起使用。

我将扩展名添加到apachexx.xx.xx \ bin目录中的php.ini文件中

extension = imagick

我的路径仍然指向PHP目录,并且对我有用。

答案 6 :(得分:-1)

apt-get install pkg-config libmagickwand-dev -y
cd /tmp
wget https://pecl.php.net/get/imagick-3.4.0.tgz
tar xvzf imagick-3.4.0.tgz
cd imagick-3.4.0
phpize
./configure
make install
rm -rf /tmp/imagick-3.4.0*
echo extension=imagick.so >> /etc/php/7.0/cli/php.ini
echo extension=imagick.so >> /etc/php/7.0/fpm/php.ini
service php7.0-fpm restart
service nginx restart

来自Install Imagick 3.4.0 on PHP 7