ImageMagick在控制器中工作,但在队列中“不可用”?

时间:2019-01-02 06:23:12

标签: laravel laravel-5 imagemagick imagick

我已经快要解决这个问题了。我在控制器中使用ImageMagick,并且工作正常。我现在已经尝试将其中一些功能移到排队的工作中,并且现在说“ ImageMagick模块不适用于此PHP安装。”

将它们移回原位,一切都会恢复。将它们放入Job中,一切都会中断。

我不确定我可以提供什么环境。我正在控制器和作业中导入Image和Imagick相同:

use Intervention\Image\ImageManagerStatic as Image;
use Imagick;

Image::configure(['driver' => 'imagick']);

在控制器(和辅助功能)中工作正常,但在作业中死亡:

$preview = Image::make($file);

相同的代码,除此之外。还有其他有用的信息吗?

2 个答案:

答案 0 :(得分:0)

PHP命令行可执行文件使用的ini文件中可能没有extension=imagick.so,而PHP Web服务器可执行文件使用的ini文件中却没有php -i | grep ini

如果通过在命令行上执行melt来查找正在使用的ini文件,则会看到需要编辑哪些ini文件。

答案 1 :(得分:0)

可能会帮助

如果您正在与主管一起使用队列作业。

请检查您是否在命令选项部分的程序配置文件中使用正确的php可执行文件启动队列作业:

command = php / path / to / your / project / artisan队列:work sqs --sleep = 3 --tries = 3

如果在Mac OS中将队列作业与主管一起使用,则可能是这样:

command = / usr / local / Cellar / php / 7.4.8 / bin / php / path / to / your / project / artisan queue:work sqs --sleep = 3 --tries = 3