我使用 命令 ffmpeg -i /home/video/a.mp4 -r 1 -s 950x520 -f image2 /home/video/a.jpg在終端運行可以執(zhí)行,但是在PHP文件里,用shell_exec('ffmpeg -i /home/video/a.mp4 -r 1 -s 950x520 -f image2 /home/video/a.jpg')卻沒有執(zhí)行成功,網(wǎng)上百度說是權(quán)限問題,于是測試,
echo shell_exec('ls') 可以執(zhí)行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貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
1、如果你的命令如果需要超級權(quán)限的話,請確保你執(zhí)行php-fpm的用戶擁有sudo權(quán)限,并且在命令前就sudo
2、執(zhí)行sudo命令默認(rèn)情況下是需要一個終端環(huán)境的,想去掉這個約束的話,注釋掉/etc/sudoers 文件下的Defaults requiretty這一行
3、在php里執(zhí)行命令你可以把執(zhí)行的結(jié)果打印出來看看錯誤信息以及錯誤碼去分析

DIEA
TA貢獻(xiàn)1820條經(jīng)驗 獲得超3個贊
1.權(quán)限(包含php可執(zhí)行的方法)
2.程序路徑
3.你可以把日志和錯誤重定向輸出到文件
關(guān)注下應(yīng)該就能找到問題了。
- 5 回答
- 0 關(guān)注
- 1756 瀏覽
添加回答
舉報
0/150
提交
取消