У меня есть два сценария php, которые нужно запускать как непрерывные процессы back-ground на сервере WAMP.
Wamp-сервер установлен в окне 7 ПК. Эти скрипты уже находятся в отдельной папке в корневом каталоге www.
Версия Apache: 2.2.8
Версия PHP: 5.2.6
Поскольку это не платформа unix, я не могу использовать nohup php script.php > /dev/null &
command для выполнения этой задачи. Я ищу аналогичную команду или метод, который работает на платформе Windows сервера wamp.
Может ли кто-нибудь объяснить шаги, которые мне нужно предпринять для выполнения этой задачи?
Просто используйте эту функцию. Он работает под управлением обеих ОС (Windows и Linux):
function execInBackground($cmd){ if (substr(php_uname(), 0, 7) == "Windows"){ pclose(popen("start /B ". $cmd, "r")); }else{ exec($cmd . " > /dev/null &"); } }
Вот простой пример использования функции:
execInBackground('php feed/handleFeed.php db_name '.$second_param);
В приведенном выше примере мы запускаем скрипт handleFeed.php, который находится в папке с именем «feed», и мы передаем 2 параметра (имя базы данных и другой второй параметр).
Между этим: http://php.net/manual/en/install.windows.commandline.php и с помощью утилиты «at» вы должны иметь возможность заставить ее работать.
Вы можете использовать «start» перед запуском фонового скрипта. Пример:
Создайте cron.cmd с
start /B php.exe "path to your script 1" start /B php.exe "path to your script 2"
Вы можете показать человеку о команде запуска:
cmd
help start
типа Это то, что я сделал:
Файл PHP
<?php my code goes here ?>
* Обратите внимание, что если вы используете HTTP API / CURL в CLI, используйте dl("php_curl.dll");
это нагружает завиток в cli
Теперь я добавил PHP к переменной пути к Windows, это можно сделать с помощью моего компьютера, свойств, дополнительных параметров, переменных среды, новых
Затем я создал файл .bat, просто откройте блокнот и введите код ниже и сохраните как myfile.bat
@ECHO OFF php -fd:\wamp\www\V3\task.php
Этот сайт может помочь вам в синтаксисе файла .bat.
Теперь создайте новую запланированную задачу на windows и вызовите вышеуказанный .bat-файл в качестве источника,