【问题标题】:Executing PHP file with Windows server 2008 Scheduled Task使用 Windows server 2008 计划任务执行 PHP 文件
【发布时间】:2013-03-26 07:03:28
【问题描述】:

我知道有很多关于计划任务的帖子和相当多的关于执行 PHP 文件的帖子,但我已经查看并试图弄清楚但仍然不足。

我还在学习很多Windows服务器的方法,如果有什么需要指出的,请告诉我。

所以我设置了一个计划任务,该任务将在凌晨 1 点执行,公平地说,这很有魅力,但是我没有意识到它只会在记事本中打开文件(因为这是 php 文件关联的应用程序与)。

所以我进行了研究,发现很多人说我需要将 php.exe 文件与它一起传递,这些人还提供我将其添加到任务中:

C:\Path\to\php.exe -f "C:\Path\to\file.php"

所以我像这样把它放在操作选项卡中。请注意,屏幕截图中有一个错误,我忘了把 \php.exe 放在 sting 的末尾。

当我点击确定时,我会被问到这个

从图片中可以看出,它只列出了“C:\Program”

我试过移动东西,但什么都没有,我也试过用引号括起来第一部分。

那么有人可以告诉我我需要做什么或我做错了什么吗?

感谢您的宝贵时间。

【问题讨论】:

  • 我很确定C:\Program Files (x86)\PHP 是一个目录,而不是一个应用程序。将"C:\Program Files (x86)\PHP\php.exe" 放入“程序”框中,将-f "C:\Path\to\file.php" 放入“参数”框中。可能还想将“开始于”设置为"C:\Path\to\"(没有目标脚本的实际文件名,只是它的路径)。
  • @DCoder 感谢您指出这一点,这是我在屏幕截图中留下的错误,我已更新帖子以使人们意识到这一点。我已经按照您的建议进行了设置,但现在它似乎无法正确执行代码。

标签: php cron windows-server-2008 scheduled-tasks


【解决方案1】:

您应该能够将整个内容放在引号中。我建议使用 php.exe 而不仅仅是 php。

"C:\Program Files (x86)\PHP\php.exe -f c:\inetpub\cron\test.php"

【讨论】:

    【解决方案2】:

    如果路径包含空格,则用引号括起来

    "C:\Path\to\php.exe" -f "C:\Path\to\file.php"
    

    执行文件的方式相同

    【讨论】:

    • 我没有尝试在两条路径周围加上引号,也没有 -f.... 现在试一试。
    • 另外,-f 有什么作用?
    • -f 告诉 PHP 下一个参数将是要执行的 php 脚本的文件名(详见php.net/manual/en/features.commandline.options.php
    • 嘿,我刚试过这个,它说它运行成功,但似乎我的脚本没有被执行。该脚本使用 PHP 邮件程序发送并通过电子邮件发送出去,现在我在脚本的开头向数据库中插入一条记录,以查看它是否正在执行任何操作,并且没有任何内容插入到数据库中。我通过浏览器运行脚本进一步测试了它,它工作得很好。有任何想法吗?再次感谢您的帮助。
    • 这取决于您的代码,但要注意脚本运行所在的目录等小问题
    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2012-06-29
    • 1970-01-01
    • 2016-02-21
    相关资源
    最近更新 更多