我正在尝试从PHP脚本启动CLI命令:
特别是我想使用此命令convert a.png a.tif
将图像转换为tiff。
当我从CLI启动此命令时,它按预期工作但如果我使用以下代码从PHP脚本启动它不会在我的文件夹中创建任何tiff图像:
$exec = "convert a.png a.tif";
exec($exec,$yaks,$err);
echo "<pre>";
print_r($yaks);
echo "$err";
echo "</pre>";
此外$yaks
为空,$err
设为127。
我不是专家,为什么这不能按预期工作?
祝你好运
更新
我使用此命令代替$exec = "convert 4.png 4.tif 2>&1";
,我得到了回复[0] => sh: convert: command not found
这似乎很奇怪,因为我可以从CLI使用它!
最终更新
非常感谢你们!
$exec = "/usr/local/bin/convert a.png a.tif";
这个命令解决了这个问题! 你很棒。
答案 0 :(得分:2)
你应该输入fullpath来“转换”,可能是文件。
错误127 - 找不到文件
答案 1 :(得分:2)
看起来'convert'二进制文件不在PHP正在使用的PATH
上的任何目录中。您可以尝试使用完整路径,例如/opt/local/bin/convert
或其他路径。
你也可以修改PHP使用的PATH(但我不知道如何)。
答案 2 :(得分:1)
PHP脚本可能不知道在exec
命令中找到您要引用的这些内容的位置。当您从命令行运行它时,shell将在您当时所在的目录中查找它们;但是当你从PHP运行它时,它可能默认为PHP目录而不是文件所在的特定目录。所以写出完整的路径。