2016-09-21 446 views
0

我試圖執行這個PHP代碼的FFmpeg許可被拒絕CENTOS - PhpVideoToolKit

exec("/root/bin/ffmpeg -version 2>&1", $output); print_r($output);

但始終輸出返回權限被拒絕

Array ([0] => sh: /root/bin/ffmpeg: Permission denied)

,並從圖書館PhpVideoToolKit

輸出

sh: /root/bin/ffmpeg: Permission denied

我該如何給我的apache服務執行權限?我習慣CENTOS

+1

嘗試'chown nobody:nobody/root/bin/ffmpeg'或'chown apache:apache/root/bin/ffmpeg' ...取決於apache的用戶是什麼 – CatalinB

+0

謝謝。我試着與用戶的Apache,並重新啓動服務,但沒有工作。 – nikoz84

+0

其實,如果你想從PHP運行這個,你需要爲運行PHP腳本的用戶設置權限,而不是Apache。這取決於你使用的是什麼擴展。例如。用suEXEC https://wiki.archlinux.org/index.php/Apache,_suEXEC_and_Virtual_Hosts? – martin

回答

0

好了,先於CentOS操作系統,我們需要給Apache或www數據perssions用於執行:

編輯sudoers

nano /etc/sudoers 

評論requiretty線

#Defaults requiretty 

添加行的最後文件

apache ALL=(ALL)  NOPASSWD: ALL 

,現在我們可以通過PHP

exec('sudo /root/bin/ffmpeg -v',$output); 
print_r($ouput); 

執行命令和輸出是

Array ( 
[0] => ffmpeg version git-2016-07-03-1ad4471 Copyright (c) 2000-2016 the FFmpeg developers 
[1] => built with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-55) ... 

多數民衆贊成在工作!