为什么会安装imagick扩展呢?在php项目里面需要进行图片上传或者是上传文件,如果你php没有安装扩展就会出现如下错误提示:Fatal error: Class 'Imagick' not found in,因此这篇文档就诞生了。
Imagick扩展是一个用于在PHP中操作图像的强大工具。它基于ImageMagick软件库,提供了一系列函数和方法来处理、创建和修改图像文件。Imagick扩展可以帮助您实现以下任务:图像处理、格式转换、图像编辑、视觉效果、图像合成、高级图像处理。
大家在安装扩展的时候,建议先查一下看看当前环境的php版本需要对应安装imagick版本
我当前php环境是5.6版本,安装扩展是imagick3.7版本,在安装imagick之前还需要安装ImageMagick我安装的版本是6.9。
ImageMagick下载地址:Index of /archive
imagick下载地址:PECL :: Package :: imagick
这个方式就不需要去下载imagick了,它会自动下载imagick的最新版本
下载ImageMagick之后,上传到对应的服务器的位置,根据你们自己想上传到的位置上传上去
tar -zxvf ImageMagick-6.9.12-93
cd ImageMagick-6.9.12-93/
./configure --prefix=/usr/local/imagemagick
make && make install
到此,ImageMagick就安装成功了。这个安装一般不会出现什么问题。
whereis pecl
/usr/bin/pecl install imagick
Build process completed successfully
Installing '/usr/lib/php/20131226/imagick.so'
Installing '/usr/php5.6/include/php/ext/imagick/php_imagick_shared.h'
install ok: channel://pecl.php.net/imagick-3.7.0RC1
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini
可以通过命令:php --ini 找到php.ini 添加即可。
命令:php -m 或 /usr/bin/php5.6 -m
其中php5.6是可执行文件你们位置可能不一致,需要根据自己的路径调试即可。
不管你是Apache还是Nnginx服务器,都可以输出phpinfo()函数在对应路径测试,看看imagick扩展已经安装 如下所示:
注:
(1)php -m 需要和phpinfo()展现扩展一致才算php项目能用,测试成功。
(2)注意清空浏览器的缓存再试
通过命令 php --ini 可以看到读取php.ini的配置位置
而phpinfo()输出的php.ini的位置是这样
发现Nginx读取的php.ini配置文件和php命令下读取的php.ini配置文件不是同一个。
解决办法:我们先停止php-fpm 服务然后,通过找到php-fpm的可执行文件 并且通过-c 选项指定php-fpm加载php.ini的路径。
例如:可以通过命令:whereis php-fpm 找到位置
切换到php-fpm的目录sbin下
执行命令:启动php-fpm 就可以啦。
./php-fpm5.6 -c /etc/php/5.6/fpm
再重新启动web服务器(Nginx/Apache)再次访问phpinfo() 就ok啦。