Как запустить программу из веб-браузеров, используя php - PullRequest
0 голосов
/ 20 ноября 2010

Я пытаюсь сделать систему с открытым исходным кодом, похожую на киоск. Когда веб-браузер запускает все программы, он запускается в браузере с использованием PHP. Я нашел эту ссылку: Функции выполнения программы . Используется:

<?php
  $WshShell = new COM("WScript.Shell");
  $oExec = $WshShell->Run("WINWORD.exe", 7, false);
?>

Мне удалось запустить Microsoft Word в Windows, но я должен быть в состоянии сделать это в Linux. Вот что я попробовал на своем сервере Linux:

<?php
  exec("/var/www/test.sh");
?>

Но ничего не происходит. Я знаю, что test.sh работает, потому что я бежал, если из терминала. Я использую test.sh для запуска скрипта Python. Скрипт Python запускает текстовый редактор. Я протестировал скрипт Python, и он работает. Все, что мне нужно знать, это как запустить скрипт из PHP на Linux.

Ответы [ 2 ]

6 голосов
/ 20 ноября 2010

Попробуйте shell_exec .

shell_exec("/var/www/test.sh");

Также убедитесь, что для исполняемого файла установлено «разрешение».

Кроме того, вы должны запустить текстовый редактор как зарегистрированный пользователь (вероятно, вы сделаете это с sudo или около того) и установить переменную окружения DISPLAY на :0.0 (или что вам подходит) , Пример:

добавить это к /etc/sudoers:

ALL<tab>ALL=(kioskuser) NOPASSWD: ALL

(<tab> означает, что там есть настоящая вкладка, отредактируйте файл, выполнив visudo как root)

содержание скрипта:

#!/bin/bash
export DISPLAY=:0.0
sudo -u kioskuser /path/to/the/editor/command
1 голос
/ 21 ноября 2010

Мне пришлось изменить разрешение владельца test.sh на www-data, затем добавить

Cmnd_Alias  RUN = /var/www/test.sh
www-data      ALL = (root) NOPASSWD: RUN

в / etc / sudoers, затем код php

<?php
shell_exec("sudo /var/www/test.sh");
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...