PHP CLI в macOS и Linux, использующий встроенный веб-сервер, ведет себя так же, как на Windows, для выполнения команд? - PullRequest
0 голосов
/ 11 июля 2020

Это работает в моей системе Windows 10, но я очень скептически отношусь к тому, будет ли это работать также в Linux и macOS. Я хочу убедиться, что это так, потому что невероятно полезно иметь возможность запускать команды для открытия различных приложений из «веб-панели управления» localhost. Я делаю это все время, но у меня нет Ma c или Linux P C для тестирования.

Шаги для воспроизведения:

  1. Убедитесь, что вы используете встроенный PHP веб-сервер, а не что-то еще.

  2. Создайте файл с именем test.php с этим содержимым и поместите его в свой WWW root:

     if (isset($_GET['run']))
         shell_exec('winver');
    
     echo '<p><a href="?run=1">test me</a></p>';
    

Очевидно, измените часть «winver» на команду, которую понимает macOS или Linux. Пока он при запуске вызывает какое-то окно GUI.

Go на http://127.0.0.1/test.php и щелкните гиперссылку. Теперь он должен запустить указанную команду и, таким образом, отобразить на экране какое-то поле GUI.

Это происходит в macOS и Linux, или это «счастливое совпадение», которое работает на Windows, но не предназначено?

1 Ответ

0 голосов
/ 11 июля 2020

Я только что протестировал это и успешно запустил Microsoft Word на macOS и xcal c на Linux.

Вы должны быть осторожны что пользователь, на котором запущен веб-сервер, имеет доступ к рабочему столу (например, в Linux вам нужно правильно установить DISPLAY et c), но это не проблема, если вы используете php -S на тот же рабочий стол, на котором вы хотите отображать приложение GUI.

...