服务器2008的任务调度程序可以运行一个PHP文件?

我有一台服务器2008 64位机器,通过安装了fastcgi的php5。 我想每天凌晨3点运行一个.php脚本。 我设置了一个任务,并且“最后运行结果”显示“%1不是有效的Win32应用程序”

事件属性描述更多的失败:

“任务计划程序无法在任务”\ Something“的实例”{88cc01f4-9554-4b8f-9836-34d806337d7f}“中启动操作”D:\ InetPub \ tools \ something \ build.php“附加数据:错误值:2147942593 “。

任务类别:操作无法启动

是否可以使用任务计划程序运行脚本? 如果没有,我应该如何去执行一个PHP脚本自动执行?

谢谢

我主要在* nix机器上运行php,所以不知道这一点。

当有人用一些PHP请求一个页面时,通常PHP脚本是由Web服务器运行的。

在你的Server 2008设置中,你的.php的默认动作可能被设置为另一个动作(例如'在编辑器中打开文件'),而不是'使用php.exe运行脚本'

你必须调用PHP解释器,并使用您的实际脚本作为命令行参数。

就像是

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

您也可以通过将.php文件与正确的程序关联来实现相同的效果

这是绝对可以安排的PHP脚本作为计划任务运行,并有可能传递参数的PHP脚本类似,但不一样,你通过浏览器传递给PHP脚本。 您将不会通过$ _REQUEST访问传递的参数。 您将使用$ _SERVER ['argv']来parsing自己。

在运行时环境中有所不同,所以如果您的脚本devise为既可以从浏览器也可以从命令行运行,则可以使用

 if(PHP_SAPI=='cli'){ //this is command line interface }else{ // this is a different interface } 
  • 确保Windows知道php.exe的完整path,方法是明确指定它或通过在任务设置面板中设置当前目录。
  • 将php.exe传递给您希望运行的脚本的完整path
  • 如果path中有embedded的空格,请将脚本名称括在引号(“)中
  • 用embedded空格的引号括住引号。