我正在尝试在Windows上安装imagick PHP扩展程序。它可以工作于PHP 5.2、PHP 5.3版本,但是在PHP 5.4版本中遇到了问题。
Imagick版本:ImageMagick-6.7.6-3-Q16-windows-dll,模块正在工作。我可以在phpinfo()中看到imagick的信息。
问题是imagick不能识别相对路径。例如,如果我有个简单的index.php 和a.jpg在同一个文件夹中,我不能使用 $im = new imagick('a.jpg');
,因为会抛出异常:
Fatal error: Uncaught exception 'ImagickException' with message 'unable to open image `a.jpg': No such file or directory @ error/blob.c/OpenBlob/2614' in D:\Web\i\index.php:3 Stack trace: #0 D:\Web\i\index.php(3): Imagick->__construct('a.jpg') #1 {main} thrown in D:\Web\i\index.php on line 3
但是当我使用绝对路径 $im = new imagick('D:\web\i\a.jpg');
时,它可以正常工作。
我发现, Imagick以Apache核心目录作为参考。如果我不带路径保存图像:
$im->writeImage( 'this-is-what-im-looking-for.jpg' );
我在C:\Program Files (x86)\Apache24\this-is-what-im-looking-for.jpg中发现了它。
问题是,我所有的旧脚本都是用相对路径编写的,我想继续使用它们。
我不知道问题是在imagick本身还是在PHP 5.4中。
非常感谢您的帮助!
$_SERVER['DOCUMENT_ROOT']
吗? - Ben Carey