shell_exec()
не имеет к этому никакого отношения.Если ваше приложение работает в Linux, то для того, чтобы исполняемая программа продолжала работать в фоновом режиме, а вызов вызова немедленно возвращается, вы должны использовать помощники, такие как nohup (и удалить конечный &
):
$command = "nohup php artisan serve --host {$ip} --port 1807 2>&1";
...
РЕДАКТИРОВАТЬ
Я использую Windows.
Если это так, первое, ваш прежний $command
недействителен на платформе Windowsиз-за того, как вы пытались перенаправить потоки ввода / вывода (а также из-за использования &
).Тем не менее, для запуска чего-либо в фоновом режиме в Windows вам также понадобится помощник, такой как START
( документы здесь ).
См. Связанный вопрос по Superuser: Как выполнить командную строку Windows в фоновом режиме? .