truegeek,
Ты не поверишь - у меня все работает...
Значит так, по шагам.
1. Установил на ubuntu 14.04
sudo apt install apache2 php5
2. Создал в /var/www/html файл:
d.php
<?php
echo exec("display");
?>
и сделал
sudo chown www-data.www-data /var/www/html/d.php
3. Сделал
sudo xhost +
4. Проверил запуск из командной строки
export DISPLAY=:0.0 && sudo -u www-data php5 d.php
(запускается)
5. Изменил файл d.php следующим образом:
<?php
echo exec("export DISPLAY=:0.0 && display");
?>
6. Зашел на
http://127.0.0.1/d.php - и вуаля: все работает.
Одно замечание: сессия апача продолжает "висеть" (т.е. крутится обновление страницы), пока не выйдешь из графической программы. Отвязать ни nohup'ом, ни запуском в фоне (&) у меня не получилось. Если принципиально - надо думать, как.
7.
Ну и я понял, почему у тебя "не работало"Дело в том, что ты пробовал запускать xterm. Он запускался, выполнял "ничего" и выходил. Попробуй задать выполнение xterm bash - все получится.