我已经根据ImageMagick激活了KnowledgeBase文章扩展
基本上,将这一行添加到php.ini中
open_basedir = /nfs:/tmp:/usr/local:/etc/apache2/gs-bin:/usr/bin/convert然而,这似乎不起作用。
这个脚本输出版本号很好:
$IM_version=shell_exec("/usr/bin/convert -version");
echo $IM_version;但是,当我尝试使用Imagick类时,会出现一个错误。
try
{
/*** a new imagick object ***/
$im = new Imagick();
/*** Create a red rectangle ***/
$im->newImage( 200, 100, "red", "png" );
/*** write image to disk ***/
$im->writeImage( '/tmp/rectangle.png' );
echo 'Image Created';
}
catch(Exception $e)
{
echo $e->getMessage();
}错误:
Fatal error: Class 'Imagick' not found in /xxxxxxxxxxxxxxx/html/mt.php on line 8有什么想法,我做错了什么,或下一步的故障排除是什么?
我联系了MediaTemple支持部门,他们只是说:“对不起,因为脚本输出的版本号证明它已经安装好了。”
发布于 2013-10-11 02:57:15
好吧,我知道这件事了,但有点棘手。来了..。
首先,您需要从源代码安装ImageMagick。如果您已经可以访问“MagickWand-config”,则此步骤可能是可选的,但它不在我的路径中。下面是我将它安装到(Gs)上的备用目录的步骤:
注意:在这篇文章中,最新的版本是6.8.9.3。
$ wget http://www.imagemagick.org/download/ImageMagick-6.8.9-3.tar.gz
$ tar xvfz ImageMagick-6.8.9-3.tar.gz
$ cd ImageMagick-6.8.9-3
$ mkdir /home/#####/etc/imagemagick
$ ./configure --prefix=/home/#####/etc/imagemagick
$ make
$ make installImagick类是一个PECL扩展,因此我们将使用媒体坦普尔提供的KB安装它,只需进行一次更改。以下是几个步骤:
$ export SITEID=`pwd | awk -F\/ '{ print $3 }'`
$ export PHPPATH=`php-stable -i | grep "Configure Command" | perl -pe "s/.*'.\/configure'\s*?'--prefix\=(.*?)'.*/\1/"`
$ mkdir /home/$SITEID/data/lib
$ mkdir /home/$SITEID/data/lib/php/
$ wget http://pecl.php.net/get/imagick && tar zxvf imagick && cd imagick-* && $PHPPATH/bin/phpize这就是我们的脚本偏离指令的地方。我们需要指定ImageMagick安装的路径,以使用‘MagickWand’。如果没有指定这一点,您将看到以下错误:
检查ImageMagick MagickWand API配置程序.配置:错误:找不到。请提供到MagickWand-config或Wand-config程序的路径。
如果您已经为ImageMagick的源安装使用了备用位置,请用该路径替换“--具有-imagick”的路径。
$ ./configure --with-php-config=$PHPPATH/bin/php-config --with-imagick=/home/#####/etc/imagemagick恢复正常指令:
$ make && cp modules/*.so /home/$SITEID/data/lib/php更新您的php.ini文件,它应该位于/home/#etc/php.ini,并添加以下两行:
扩展_dir=/home/#/data/lib/php/ 扩展= imagick.so
一旦完成,下面是我运行的脚本:
<?php
$IM_version=shell_exec("/usr/bin/convert -version");
echo $IM_version;
if (!extension_loaded('imagick'))
{
echo "imagick not installed\n";
}
else
{
echo "imagick installed\n";
}
try
{
/*** a new imagick object ***/
$im = new Imagick();
/*** Create a red rectangle ***/
$im->newImage( 200, 100, "red", "png" );
/*** write image to disk ***/
$im->writeImage( '/tmp/rectangle.png' );
echo 'Image Created';
}
catch(Exception $e)
{
echo $e->getMessage();
}输出:
Version: ImageMagick 6.6.0-4 2012-05-03 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features: OpenMP
imagick installed
Image Createdhttps://stackoverflow.com/questions/18519609
复制相似问题