2016-09-21 441 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) ... 

多数民众赞成在工作!