У меня есть 64-битная машина server 2008 с установленным php5 через fastcgi. Я хочу запускать скрипт .php каждый день в 3 часа ночи. Я настроил задачу, и в «Результате последнего запуска» говорится: «% 1 не является допустимым приложением Win32»
Свойства события описывают больше сбоев:
"Планировщику задач не удалось запустить действие" D: \ InetPub \ tools \ something \ build.php "в экземпляре" {88cc01f4-9554-4b8f-9836-34d806337d7f} "задачи" \ Something ". Дополнительные данные: Значение ошибки: 2147942593 . "
Категория задачи: не удалось запустить действие
Можно ли запускать скрипты с помощью планировщика задач? Если нет, как мне автоматизировать выполнение скрипта php?
Спасибо
Я в основном запускаю php на машинах * nix, поэтому не уверен в этом.
Обычно скрипты php запускаются веб-сервером, когда кто-то запрашивает страницу с некоторым php на ней.
В вашей настройке Server 2008 ваше действие по умолчанию для .php может быть установлено на другое действие (например, «открыть файл в редакторе»), а не на «запустить скрипт с помощью php.exe».
Вы должны вызвать интерпретатор php и использовать ваш фактический скрипт в качестве параметра командной строки.
Что-то вроде
php.exe d:\InetPub\tools\something\build.php
Вы также можете добиться того же эффекта, связав файлы .php с правильной программой.
Определенно можно запланировать запуск сценариев php как запланированных задач, и можно передавать аргументы сценарию php аналогично, но не так, как вы передаете их сценарию PHP через браузер. Вы не получите доступа к переданным параметрам через $ _REQUEST. Вместо этого вы воспользуетесь $ _SERVER ['argv'] и проанализируете сами.
Существуют различия в средах выполнения, поэтому, если ваш сценарий предназначен для запуска как из браузера, так и из командной строки, вы можете использовать
if(PHP_SAPI=='cli'){
//this is command line interface
}else{
// this is a different interface
}