问题
- 服务器PHP脚本执行ffmpeg压缩音频,压缩音频比特率,手动执行可以成功,但是crontab一直失败
解决办法
- 查看crontab日志,tail -f /var/log/cron,脚本是正常执行的,但是没有执行完,因为执行完会存在结束日志
- 开始php脚本没有打开错误日志,所以开始在脚本开始加上如下代码
ini_set("error_reprorting", "E_ALL");
ini_set("display_errors", "Off");
ini_set("log_errors", "On");
ini_set("error_log", "/home/work/error_log.log");
- 定时任务执行发现如下报错 tail -f /home/work/error_log.log
PHP Fatal error: Uncaught Alchemy\BinaryDriver\Exception\ExecutableNotFoundException: Executable not found, proposed : avconv, ffprobe in XXX/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/AbstractBinary.php:159
$ which ffprobe
/usr/local/bin/ffprobe
crontab -e 加上如下定时任务
* * * * * echo $PATH>/home/work/test.txt
cat /home/work/test.txt
/usr/bin:/bin
sudo ln -s /usr/local/bin/ffprobe /usr/bin/ffprobe
sudo ln -s /usr/local/bin/ffmpeg /usr/bin/ffmpeg
- 使用crontab最好使用绝对路径,就不需要考虑这个环境变量问题了。这儿没有使用是因为使用第三方库。