我正在尝试在 WampServer 2 下安装 imagemagic php 扩展。
我已经下载并安装了 ImageMagick 。我选择了ImageMagick-6.8.8-10-Q16-x86-dll.exe
我已经下载了 php 扩展。
我已将刚刚下载的dll扩展移至C:\wamp in\php\php5.4.16 xt\
我更改了 php.ini(通过 wamp 托盘图标 > 右键单击 > PHP > php.ini 访问它)并将“extension=php_imagick.dll”(不带引号)添加到扩展列表中。
我重新启动了 Apache。我没有注意到托盘图标中 PHP 扩展列表中显示的扩展,因此重新启动了 wampserver。 ImageMagick 扩展现在在列表中显示已启用。
但是,我无法使用它。进行快速测试会返回“致命错误:未找到‘Imagick’类”。在 phpinfo() 中仅显示 imagemagick 已添加到环境变量中。
当我尝试测试 imagick 时:
$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
您的库版本可能未对齐。
我是这样解决的
我真的很挣扎于所有这些答案。回顾过去,我意识到他们中的大多数都是正确的,只是他们遗漏了一些非常精细的至关重要的细节。
1). 首先也是最重要的,在开始下载任何库或 DLL 之前,您需要从 php_info 开始找出这三个非常重要的参数。
在您的服务器上运行它:
<?php phpinfo() ?>
并检查:for
- 架构:x86 或 x64。你的计算机可能是 x64,但你的 php 运行在 x86 上,所以不要假设
- 线程安全:是或否。也非常重要。
- 您的 PHP 版本
2). 从以下位置下载 ImageMagick:https://windows.php.net/downloads/pecl/deps/。 我的电脑是 x64,但我的 php 运行的是 x86,所以我下载了 ImageMagick-7.0。--vc*-x86.zip
3). 将解压后的 bin 子文件夹中的所有 DLL 解压并复制到 Apache bin 目录中。它是一堆 CORE_RL_.dll 和 IM_MOD_RL_.dll 以及一些其他 DLL。就我而言,[zippeddownload]/bin/* -> 复制到 -> C:\Xampp pache in
4). 前往http://pecl.php.net/package/imagick。您可以选择 zip 链接或仅选择 DLL 链接。我更喜欢 DLL 链接。就我而言,我选择了最新版本 3.4.3。然后我去了https://pecl.php.net/package/imagick/3.4.3/windows。 这里我们必须再次谨慎选择
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我选择了最新版本。
php -m | grep imagick
。sudo apt-get remove --purge php5-imagick && sudo apt-get install php5-imagick
问候
我让它工作的唯一方法是使用旧版本的imagick:
php_imagick-3.2.0b1-5.4-nts-vc9-x86
。
在任何页面中执行
<?php phpinfo(); ?>
。这将显示该服务上运行的所有服务。如果它正在运行,那么它会显示您在哪个目录中。
如果您使用 WHM 面板,您可能需要在那里安装 imageMagick
您是否尝试过在课程中使用正确的大小写,以大写“i”开头?
$im = new Imagick( 'test.jpg' );
在 php 中,类和文件名不区分大小写,但类加载器则区分大小写。
我能够让 WAMPSERVER 3.2.3 正常工作。原来有好几个php.ini文件。我必须更改 Apache 服务器的目录中的目录,才能使 ImageMagicK 与 LocalHost 一起使用。
我将扩展添加到目录 apachexx.xx.xx 中的 php.ini 文件中
扩展名=imagick
我的路径仍然指向 PHP 目录并且对我有用。