我的这个模块有问题。
在我的本地服务器中,我打开我的php.ini,我在列表中有模块imagick。 现在我将网站更改为网络服务器,但在php.ini中,模块未显示。
我与拥有网络服务器的公司进行了交谈,答案是:“模块已安装并告诉我:”
root@dime38 [~]# convert
Version: ImageMagick 6.2.8 08/25/10 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html
但是当我使用这段代码时:
<?php
$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');
header('Content-type: image/png');
echo $image;
?>
我很简单地接受了这个:
Fatal error: Class 'Imagick' not found in /home/empreg0l/public_html/modulo.php on line 3
但是同样的代码可以在我的本地主机上运行。 问题是什么? (可能,扩展名在php.ini中被注释?或者代码中存在任何问题?)
感谢
答案 0 :(得分:2)
ImageMagick二进制文件(可以通过convert
命令调用)和IMagick PHP extension之间存在差异。即使安装了二进制文件,也不代表PHP扩展名。
您的提供商必须在其服务器的PHP中明确激活它。
如果他们不这样做,您必须重新创建IMagick命令command line options并通过exec()
调用它。
答案 1 :(得分:0)
为php安装imagick:
apt-get install php5-imagick
答案 2 :(得分:0)
使用get_loaded_extensions确认您已安装了imagick PHP扩展程序。
var_dump(get_loaded_extensions());
答案 3 :(得分:0)
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