Запустите приложение X11 GUI из браузера (apache - php)

Так же, как https://askubuntu.com/questions/364458/running-gui-app-with-php , мне нужно запустить приложение X11 (VLC) со страницы php на Сервер Apache.

Мне нужно открыть приложение VLC на сервере, а не в удаленной системе.

Я пытаюсь получить это с помощью вызова php shell_exec сценария оболочки, содержащего команды VLC.

Скрипт sh правильно открывает приложение VLC, если оно запущено из командной строки, но не через вызов php, потому что он не находит (я думаю) ни одного инициированного сеанса X11: он возвращает связанные сообщения об ошибках:

  - inhibit interface error: Failed to connect to the D-Bus session daemon: //bin/dbus-launch terminated abnormally with the following error: No protocol specified
  - Autolaunch error: X11 initialization failed.
  - main interface error: no suitable interface module
  - xcb_xv vout display error: parent window not available
  - ...

Если я разрешу пользователю apache www-data подключиться к X-серверу

xhost +local:www-data

, он будет работать для видео, но не для аудио; окна открываются и воспроизводят видео, но без звука и других сообщений об ошибках, связанных с аудиосервером ...

export DISPLAY =: 0, похоже, не оказывает никакого влияния.

Любая помощь будет оценена.

1
задан 13 April 2017 в 15:23

1 ответ

X-сервер работает на том же компьютере, что и PHP? В этом случае вы могли бы * запустить процесс PHP от имени того же пользователя, что и владелец X-сервера (отредактировав /etc/apache2/apache2.conf), а затем добавить в цепочку идентификатор отображения в команду:

shell_exec("DISPLAY=:0 vlc ....");

Вы также можете использовать putenv (IIRC) для установки переменных среды из PHP.

* Но подумайте о том, как это сделать, прежде чем делать это. Если что-то, что выполнялось PHP, было скомпрометировано (происходит постоянно), то какой ущерб мог бы это нанести?

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: