Esegui l’applicazione X11 GUI dal browser (apache – php)

Allo stesso modo di https://askubuntu.com/questions/364458/running-gui-app-with-php , ho bisogno di eseguire un’applicazione X11 (VLC) da una pagina php sul server Apache.

Devo aprire l’applicazione VLC sul server, non sul sistema remoto.

Sto cercando di ottenere questo attraverso una chiamata php shell_exec a uno script di shell contenente i comandi VLC.

Lo script sh apre correttamente l’app VLC se lanciata dalla riga di comando, ma non attraverso la chiamata php, perché non trova (credo) alcuna sessione X11 avviata: restituisce i relativi messaggi di errore:

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

Se concedo all’utente apache, www-data, di connettersi al server X.

 xhost +local:www-data 

funziona per il video ma non per l’audio; la finestra si apre e riproduce il video ma senza audio e ancora altri messaggi di errore relativi al server audio …

export DISPLAY =: 0 non sembra avere alcun effetto.

Qualsiasi aiuto sarebbe apprezzato.

C’è un server X in esecuzione sullo stesso computer di PHP? In tal caso, è ansible * eseguire il processo PHP come lo stesso utente del proprietario del server X (modificando /etc/apache2/apache2.conf ) e quindi concatenare l’identificatore di visualizzazione sul comando:

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

Puoi anche usare putenv (IIRC) per impostare le variabili d’ambiente da PHP.

* Ma considera le implicazioni sulla sicurezza di fare ciò prima di te. Se qualcosa di PHP era in esecuzione è stato compromesso (succede sempre), quale danno potrebbe fare?