App Engine php flex env exec(“ ffmpeg ...”)-无法打开日志文件:/ dev / stderr

时间:2018-10-15 08:55:20

标签: php google-app-engine ffmpeg app-engine-flexible

我正在尝试在php的应用引擎flex env上运行FFMPEG。

我已在我的app.yaml中将exec()函数列入白名单,并使用docker文件安装了FFMPEG-到目前为止一切顺利。

当我运行exec(“ usr / bin / ffmpeg [args] ...”)时,我收到一个错误,表明ffmpeg无法访问dev / stderr,并且该函数关闭了。参见参考:

  

警告:[pool app]子项44对stderr说:“注意:PHP消息:ALERT-无法打开日志文件:/ dev / stderr(攻击者”,文件'/app/index.php',第49行) “

     

警告:[pool app]子级44对stderr说:“注意:PHP消息:PHP警告:出于安全原因,在第49行的/app/index.php中已禁用exec()”

我的配置文件如下:

APP.YAML:

runtime: custom
env: flex
runtime_config:
  document_root: .

COMPOSER.JSON:

{
    "require": {
        "php": "5.6.*",
        "google/cloud-storage": "^1.0",
    }
}

DOCKERFILE:

FROM gcr.io/google-appengine/php:latest
ENV DOCUMENT_ROOT /app
RUN apt-get -y update && apt-get install -y ffmpeg

INDEX.PHP:

<?php
//downloaded images into /tmp folder
$cmd = "/usr/bin/ffmpeg -r 24 -i /tmp/frame_%05d.png -r 24 -vcodec libx264 -pix_fmt yuv420p -b 50M -s 1920x1080 -y /tmp/export.mp4";
exec($cmd);
?>

我尝试使用所有其他shell函数-system(),exec_shell(),proc_open() 结果相同。

有帮助吗?

谢谢

0 个答案:

没有答案