Если у вас есть сервер Linux и root-доступ, попробуйте это. Это самое простое решение, которое я нашел.
Создайте новый каталог для следующих файлов и предоставьте ему полные права. (Мы можем сделать его более безопасным позже.)
mkdir test
chmod -R 777 test
cd test
Поместите это в файл с именем bgping
.
echo starting bgping
ping -c 15 www.google.com > dump.txt &
echo ending bgping
Обратите внимание на &
. Команда ping будет выполняться в фоновом режиме, в то время как текущий процесс переходит к команде echo.
Он будет пинговать www.google.com 15 раз, что займет около 15 секунд.
Сделайте его исполняемым.
chmod 777 bgping
Поместите это в файл с именем bgtest.php
.
<?php
echo "start bgtest.php\n";
exec('./bgping', $output, $result)."\n";
echo "output:".print_r($output,true)."\n";
echo "result:".print_r($result,true)."\n";
echo "end bgtest.php\n";
?>
Когда вы запрашиваете bgtest.php в своем браузере, вы должны получить следующий ответ быстро, не дожидаясь
15 секунд до завершения команды ping.
start bgtest.php
output:Array
(
[0] => starting bgping
[1] => ending bgping
)
result:0
end bgtest.php
Команда ping теперь должна выполняться на сервере. Вместо команды ping вы можете запустить скрипт PHP:
php -n -f largejob.php > dump.txt &
Надеюсь, это поможет!