Linux — Как открыть внешнее приложение с графическим интерфейсом из веб-браузера с помощью PHP?

Я новичок в веб-разработке. Я пытаюсь выполнить сценарий оболочки, используя PHP shell_exec(), Внутри скрипта я пытаюсь вызвать приложение с графическим интерфейсом (Qt). Когда я выполнил скрипт PHP из терминала, приложение запустилось, как и ожидалось. Но когда я открыл его из браузера, появилась пустая пустая страница.

Я использую Ubuntu с сервером apache2, работающим как сервис. Когда я искал в Google, аналогичная проблема была решена в среде Windows, позволяя службе apache взаимодействовать с рабочим столом.

PHP скрипт:

<?php
$log = shell_exec('sh testcmd.sh');
?>

testcmd.sh:

./Program1

Любая предоставленная помощь будет высоко оценена.

2

Решение

Несколько непонятно, о чем вы спрашиваете.

Если вы хотите, чтобы при просмотре определенного веб-сайта запускался скрипт PHP, который откроет приложение с графическим интерфейсом для клиент чтобы взаимодействовать, ответ «вы не можете». Причина заключается в том, что способ установки заключается в том, что сервер и клиент работают на разных компьютерах, а ваш PHP работает на сервере. Таким образом, клиент никогда не увидит запущенную программу.

Вышесказанное верно и для Windows. Ответ, который вы цитируете в своем вопросе, не относится к серверу, работающему на другом компьютере, чем клиент.

Если по какой-либо причине вы хотите что-то, что работает только тогда, когда сервер и клиент работают на одном компьютере (или кто-то наблюдает за дисплеем сервера), то вам нужно сделать эквивалент ответа Windows.

Графический дисплей в Linux (при условии, что вы не работаете wayland) использует протокол под названием X11. Для отображения дисплея вашей программе с графическим интерфейсом нужны две вещи. Первое — это знать, какой дисплей ему нужно использовать. Это поставляется с переменной среды под названием DISPLAY, Второе — это разрешение на использование этого дисплея.

Таким образом, чтобы ваш PHP-скрипт запускал приложение с графическим интерфейсом, которое будет отображать его графический интерфейс, вам необходимо сначала выполнить следующие шаги:

  1. Установить DISPLAY переменная к правильному значению (скопируйте из своего рабочего стола).
  2. Бежать xauth add somethingгде можно взять что что-то работает xauth list на вашем рабочем столе.

Если вы делаете эти две вещи (в этом порядке), ваш GUI должен появиться.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector