【问题标题】:FFmpeg permission denied CENTOS - PhpVideoToolKitFFmpeg 权限被拒绝 CENTOS - PhpVideoToolKit
【发布时间】:2016-09-21 18:59:25
【问题描述】:

我正在尝试执行这个 PHP 代码

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

【问题讨论】:

  • 试试 chown nobody:nobody /root/bin/ffmpegchown apache:apache /root/bin/ffmpeg ... 取决于 apache 的用户是什么
  • 谢谢。我正在尝试使用作为用户的 apache 并重新启动服务,但无法正常工作。
  • 实际上,如果你想从 PHP 运行它,你需要为运行 PHP 脚本的用户设置权限,而不是 Apache。这取决于您使用的扩展程序。例如。与 suEXEC wiki.archlinux.org/index.php/Apache,_suEXEC_and_Virtual_Hosts?
  • 另外,请注意,可能不要以 root 身份执行。
  • 如何以 root 身份执行?

标签: php ffmpeg


【解决方案1】:

好吧,首先在 Centos 操作系统中,我们需要给 apache 或 www-data 权限以执行:

编辑 sudoers

nano /etc/sudoers 

评论要求行

#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) ...

这行得通!

【讨论】:

    猜你喜欢
    • 2020-08-25
    • 2016-05-02
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多