我在php中使用exec函数时遇到问题。 我尝试在执行shell cmd后回显参数。我的问题是,执行shell cmd后没有发回任何参数,如果我编辑exec行,一切正常。这是代码:
...
$command = 'avconv -i ' . 'path' . $targetFolder . '/' . $id . '.' . $fileParts['extension'] . ' -vcodec libx264 -r 24 -strict -2 -crf 24 ' . 'path' . $targetFolder . '/' . $id . '.mp4';
exec($command);
echo $var;
echo $var2;
echo $var3;
没有数据回传。
...
echo $var;
echo $var2;
echo $var3;
数据如预期的那样回荡。
那么执行shell cmd的问题在哪里?我是否必须调用另一个函数而不是exec?
当我在执行之前写回声时,它们也没有回应。 shell脚本可以工作。
答案 0 :(得分:0)
问题是由调用者设置的超时。它在具体时间后自动返回并且没有发送回波数据。
我的解决方案是创建一个单独的脚本,其中包含我作为守护进程执行的转换过程。
exec('nohup php ./../cgi/convert.php ' . $input . ' ' . $output . ' > /dev/null 2>&1 &');