【问题标题】:set permissions (PHP5) shell_exec("wine ffmpeg.exe") in ubuntu version 14在 ubuntu 版本 14 中设置权限 (PHP5) shell_exec("wine ffmpeg.exe")
【发布时间】:2017-07-28 23:35:23
【问题描述】:

如何在phpshell_exec("wine ffmpeg.exe");启动wine?

(ubuntu 版本 14 服务器)

安装

sudo apt-get install wine -y

php5代码:

$cmd = "/usr/bin/wine /var/www/html/ffmpeg.exe upload/image.jpg"
shell_exec($cmd);

ffmpeg.exe 位置: /var/www/html/

酒还没开始?

Linux版FFmpeg?,如何运行PHPshell_exec()

服务器域不在共享主机上

www-data 的权限可能有问题?

在终端中命令 ffmpeg 成功!

存在权限问题,刚刚测试,命令正确。
ffmpeg.exe 或 wine 的权限不正确。

命令(ffmpeg.exe)

chmod 755 ffmpeg.exe
chown www-data ffmpeg.exe

命令(/usr/bin/wine)

chmod 755 wine
chown www-data wine


sudo service apache2 restart

仍然无法正常工作,可能需要更多“葡萄酒”文件来应用权限。 我无法输出任何错误,从终端到 ffmpeg 的命令是正确的,问题必须是权限

【问题讨论】:

  • 这到底怎么会有五个赞和两个最喜欢的明星?你“假设”它没有正确启动?你为什么要假设什么?当您尝试运行该命令时,您是否查看过 STDOUT、STDERR 或返回值?是的,当然有 ffmpeg 的 Linux 版本。一个基本的网络搜索会告诉你这一点。通过 PHP 运行它没有什么特别需要做的。请在此处提问之前进行基础研究,并阅读How to Ask 以获取有关提出有效问题的提示。
  • (标准输出)。 $proc = popen($cmd, 'r');回声 $proc; =(输出)资源 ID #20
  • shell_exec($cmd,$output);var_dump($output); (输出)= NULL

标签: php ubuntu ffmpeg shell-exec wine


【解决方案1】:

首先,为你的服务器下载并安装 FFmpeg:https://www.ffmpeg.org/download.html,是的,有适用于 Linux 的版本。

那么,最好使用 exec() 并在后台运行 ffmpeg,这样您就不必等到视频转换到另一个页面。

$cmd = 'ffmpeg -- parameters here --';
// 2>&1 is used for execute on background
exec("$cmd 2>&1", $output);
// Do you need to debug?
// See ffmpeg results:
var_dump($output);

【讨论】:

  • 这里的安装没有问题,从终端执行时可以工作。必须是文件权限,因为 ffmpeg 和 shell_exec 运行时没有错误
  • PHP 是否配置为 CGI?,也许您需要运行 php-cli 才能使其工作,请检查:link
  • @user235423423424,如果你不需要的话,你应该避免使用 Wine。这里完全没有必要。只需使用本机版本的 ffmpeg。这几乎肯定会更快、使用更少的内存并产生更少的错误。
  • 尝试将完整路径添加到您的 ffmpeg 二进制文件中。例如/usr/bin/ffmpeg。您可以在终端中使用以下命令定位路径:which ffmeg
猜你喜欢
  • 1970-01-01
  • 2015-01-28
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多