Как выполнять скрипты PHP в фоновом режиме с помощью EXEC () и CMD

Я не могу использовать $com = new Com('WScript.shell'); Кстати, это вызывает проблемы в моей системе. Возможно, мне нужно обновить свой PHP, потому что он очень старый (5.2), но я полагаю, что то, что я пытаюсь сделать, зависит не от версии.

Я запускаю PHP в Windows 2008 64-бит. Где я могу запустить команду с префиксом start для запуска команды на отдельной консоли.

 start php myscript.php 

Если это выполняется из командной строки, он запускает новую консоль для сценария.

Мне нужно сделать то же самое с PHP, используя только exec .

 exec("CMD /C start php myscript.php"); 

/C – завершение сеанса CMD при завершении скрипта.

Но он не дает одинаковых результатов, он все еще ждет завершения сценария!

Этот шут работает:

 exec("start /B php myscript.php"); 

Также закройте все стандартные потоки в самом начале myscript.php:

 fclose(STDIN); fclose(STDOUT); fclose(STDERR); 

Если вы хотите, чтобы echo все еще работало, вы можете открыть файл для записи в stdout после закрытия стандартных потоков:

 $STDIN = fopen('/dev/null', 'r'); $STDOUT = fopen('myscript.log', 'wb');