我使用 命令 ffmpeg -i /home/video/a.mp4 -r 1 -s 950x520 -f image2 /home/video/a.jpg在终端运行可以执行,但是在PHP文件里,用shell_exec('ffmpeg -i /home/video/a.mp4 -r 1 -s 950x520 -f image2 /home/video/a.jpg')却没有执行成功,网上百度说是权限问题,于是测试,
echo shell_exec('ls') 可以执行echo shell_exec('whoami') 显示 nginx
于是vim /etc/sudoers 添加了
Allow root to run any commands anywhere
root ALL=(ALL) ALLnginx ALL=(ALL) ALL
保存后, reboot重启 但是也没有用啊。
是不是要把nginx添加到root用户组才行?
5 回答
狐的传说
TA贡献1804条经验 获得超3个赞
1、如果你的命令如果需要超级权限的话,请确保你执行php-fpm的用户拥有sudo权限,并且在命令前就sudo
2、执行sudo命令默认情况下是需要一个终端环境的,想去掉这个约束的话,注释掉/etc/sudoers 文件下的Defaults requiretty这一行
3、在php里执行命令你可以把执行的结果打印出来看看错误信息以及错误码去分析
- 5 回答
- 0 关注
- 1717 浏览
添加回答
举报
0/150
提交
取消