o agendador de tarefas do servidor 2008 pode executar um arquivo php?

2

Eu tenho um servidor de máquina de 64 bits 2008 com php5 via fastcgi instalado. Eu quero executar um script .php todos os dias às 3 da manhã. Eu configurei uma tarefa e "Last Run Result" diz "% 1 não é um aplicativo Win32 válido"

As propriedades do evento descrevem mais falhas:

"O Agendador de Tarefas não ativou a ação" D: \ InetPub \ tools \ algo \ build.php "na instância" {88cc01f4-9554-4b8f-9836-34d806337d7f} "da tarefa" \ Something ". Dados Adicionais: Erro Valor: 2147942593. "

Categoria da tarefa: a ação falhou ao iniciar

É possível executar scripts usando o agendador de tarefas? Se não, como devo proceder para automatizar a execução de um script php?

Obrigado

    
por MadHatter 07.05.2010 / 22:19

2 respostas

2

Eu principalmente executo php em máquinas * nix, então não tenho certeza sobre isso.

Normalmente, os scripts php são executados pelo servidor web quando alguém solicita uma página com algum php nele.

Em sua configuração do Server 2008, sua ação padrão para .php pode ser definida para outra ação (por exemplo, 'abrir arquivo no editor') em vez de 'executar script usando o php.exe'

Você precisa chamar o interpretador php e usar seu script como um parâmetro de linha de comando.

Algo como

php.exe d:\InetPub\tools\something\build.php

Você também pode conseguir o mesmo efeito associando arquivos .php ao programa correto

    
por 07.05.2010 / 22:39
0

Definitivamente, é possível programar scripts php para executar como tarefas agendadas e é possível passar argumentos para o script php similar, mas não o mesmo que você os passa para um script PHP através de um navegador. Você não acessará os parâmetros passados via $ _REQUEST. Você usará $ _SERVER ['argv'] em vez disso e analisará você mesmo.

Existem diferenças nos ambientes de tempo de execução, portanto, se o seu script foi projetado para ser executado tanto de um navegador quanto da linha de comando, você pode usar

if(PHP_SAPI=='cli'){
 //this is command line interface
}else{
 // this is a different interface
}
  • Verifique se o Windows conhece o caminho completo do php.exe especificando-o explicitamente ou definindo o diretório atual no painel de configuração da tarefa.
  • Transmita o php.exe o caminho completo para o script que você quer que ele seja executado
  • coloque o nome do script entre aspas (") se houver espaços incorporados no caminho
  • coloque qualquer argumento que você passar entre aspas se tiver espaços incorporados.
por 02.03.2014 / 02:41