Я создал файл HTA для установки и запуска PHP в Windows.Если уже есть папка my_app_folder/php
с какой-либо версией PHP, через файл HTA у нас есть только 1) установить переменную Win PATH
с путем к папке PHP, 2) перейти к /my_app_folder
где index.php
и 3) выполнить CMD-команду php -S
.
Итак, вот код моего тестового файла HTA:
<script>
var objUserInfo = new ActiveXObject('WScript.network');
var pathToUserFolder = 'C:\\Users\\'+objUserInfo.UserName+'\\';
var WShell = new ActiveXObject('WScript.Shell');
WShell.Run('cmd /c setx PATH '+pathToUserFolder+'my_app_folder\\php',0,true);
WShell.CurrentDirectory = pathToUserFolder+'my_app_folder';
WShell.Run('cmd /c php -S localhost:80',0,false);
setTimeout(function() {
WShell.Run('chrome -url http://localhost:80', 0, false);
}, 17000);
</script>
Если я открою этот файл HTA, PATH
переменная успешно добавляется, но процесс php.exe
не запускается.Однако, если переменная PATH
уже существует, и я открываю файл, процесс php.exe
запускается.
ps.Я заметил, что сервер PHP готов как минимум через 17 секунд после того, как мы запустили команду php -S
, поэтому, как вы видите, я использую setTimeout()
перед открытием браузера и следую по адресу localhost
.