Я пытаюсь запустить FFMPEG на движке приложения flex env для php.
Я внес в белый список функцию exec () в моем app.yaml и установил FFMPEG с помощью файла docker — пока все хорошо.
Когда я запускаю exec («usr / bin / ffmpeg [args] …»), я получаю сообщение об ошибке, что ffmpeg не может получить доступ к dev / stderr, и функция закрывается. см. ссылку:
ПРЕДУПРЕЖДЕНИЕ: [пул приложение], дочерний элемент 44, сказал в stderr: «ВНИМАНИЕ: сообщение PHP: ALERT — Невозможно открыть файл журнала: / dev / stderr (злоумышленник», файл «/app/index.php ‘, строка 49)»
ПРЕДУПРЕЖДЕНИЕ: [пул приложение] дочерний 44 сказал в stderr: «ВНИМАНИЕ: сообщение PHP: PHP Предупреждение: exec () был отключен по соображениям безопасности в /app/index.php в строке 49»
Мои файлы конфигурации следующие:
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);
?>
Я попытался использовать все другие функции оболочки — system (), exec_shell (), proc_open ()
С тем же результатом.
Любая помощь?
Спасибо
Задача ещё не решена.
Других решений пока нет …