我意识到Imagick有它自己的命令行可执行文件,但是为什么每当我尝试运行用PHP编写的Imagick命令时它会破坏我的脚本并在没有警告的情况下退出?
采取简单的方法:
<?php
$imagepath = realpath('1.gif');
var_dump('111');
$image = new Imagick($imagepath);
var_dump('222');
var_dump($image);
在我的命令行界面上运行php -f imagick.php
只需输出string(3) "111"
,然后一旦它击中任何Imagick函数就立即退出。
Imagick正确安装在我的机器上,如果我做了php -m
,它会将Imagick显示为已安装的模块。
反正有没有让它在命令行脚本中工作(除了使用exec()
)?
我有点担心它不适用于cron工作,但我只是做了一个快速测试,它似乎在其中工作(至少在VPS上)。
我尝试从Windows x64 WAMP服务器PHP v7.1.16。
注意:为了澄清,这只是一个命令行问题。 Imagick安装正确,没有语法问题,我已经在浏览器中使用了几个月而没有任何问题。
甚至命令行尝试.. php -d display_errors imagick.php
,同样,死于IM的影响,没有通知php -n -l -d display_errors -d display_startup_errors imagick.php
带回'没有语法错误'。它是特殊的,没有什么可以简单地杀死脚本(尽管它确实尝试加载一秒钟,然后它基本上打破了脚本,无论它在哪里)没有任何通知..然后再次,因为在浏览器中运行它没有问题所以我不认为有任何错误(尤其是我的上面一个线程Imagick初始化)...它只是一个我不明白的CLI事情。
显然,这是一个地方问题。
我最近重新安装了Windows,然后重新安装了Imagick和PHP。
其他有类似问题的人我建议重新安装Imagick(安装很麻烦 - 建议使用这些引用在Windows 10机器上安装:
此外,我还没有尝试过这个,但从它的外观来看,似乎是一个更好的方法,与PHP的想象集成:ImageMagickPHP(Imagick PHP类利用命令行exec而不是PHP版本)。