在 PHP 脚本上运行 Cron 作业,在 Windows 的本地主机上

Posted

技术标签:

【中文标题】在 PHP 脚本上运行 Cron 作业,在 Windows 的本地主机上【英文标题】:Run Cron Job on PHP Script, on localhost in Windows 【发布时间】:2014-07-24 23:09:27 【问题描述】:

我有一个 php 脚本并想按计划运行它。我在 Windows 上使用本地 Web 服务器(WAMP 服务器),需要一种方法来运行 my_script.php每 10 分钟

如何在 PHP 脚本上运行 cron 作业,在 windows 的 localhost 上?

【问题讨论】:

【参考方案1】:

最近我在 Windows 7 的 localhost(WAMP 服务器)上的 php 脚本上运行 cron 作业时遇到了一些问题,当时我正在测试长期从 www 那里获取一些链接。

顺便说一句,我正在为任何从事同一件事的人分享这个。

您将需要一个 shellscript 来长期运行,使用 Windows 任务计划程序。您还需要一个批处理脚本 (script.bat) 来调用 php.exe 并运行您的 php 脚本(这里称为 @987654322 @)

shellscript.vbs

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\path\to\script\script.bat" & Chr(34), 0
Set WinScriptHost = Nothing

script.bat

"C:\wamp\bin\php\php5.4.12\php.exe" -f "C:\wamp\www\website\my_process.php"

现在,我们准备将 Windows 任务计划程序 设置为以所需的时间间隔运行 shellscript.vbs

    从 Windows 开始菜单打开任务计划程序 转到Action菜单并点击Create Task...常规标签中,根据需要填写名称说明字段 在触发器标签中,点击新建按钮。 从开始任务下拉菜单中,选择按计划并选择每天高级设置部分,选择Repeat task every,然后将持续时间设置为无限期 . 在 Actions 选项卡上,从 Action 下拉菜单中选择 Start a program。 在 Program\script 框中,输入 shellscript.vbs 的路径,例如 C:\path\to\shellscript.vbs。 将添加参数(可选)部分留空。 在Start in (optional)框中,输入shellscript.vbs的父目录,如C:\path\to\。 为本教程点赞 :) 玩得开心。

【讨论】:

我按照您的教程进行操作,但是我的日志中有错误。 This answer帮我解决了错误。 我有一个问题,通过这个程序,任务正在执行,但是我的 php 脚本没有运行,我得到了“打开方式”对话框。如果我看到我的任务的属性,它会指出:ActionName C:\Windows\system32\OpenWith.exe 即使我按照您的建议将其设置为 vbs 文件。我究竟做错了什么?谢谢 你能告诉我我必须创建 .Bat 文件还是 .vbs 文件? 请包括创建 .vbs 和 .bat 文件就像从文本文档创建 .php 文件一样简单...最简单的部分让我感到困惑 xD 在“常规”选项卡中选择“以最高权限运行”后,我得到了它的工作,这只是对任何遇到此问题的人的提示!【参考方案2】:

要设置 Windows 机器在特定时间运行 cron.php,请遵循以下特定说明。如果您不熟悉 Linux/Unix,或者您的网络主机不提供运行 cron 作业的能力,这将很有用;您可以从自己的计算机上远程运行它们。

注意:这些说明是为 Windows XP 编写的,但在其他版本的 Windows 中应该类似。

https://www.drupal.org/node/31506

【讨论】:

【参考方案3】:

如果您使用 Trix 的答案并遇到与 Metafaniel 相同的问题:

我有一个问题,使用这个程序,正在执行任务, 但是我的 php 脚本没有运行,我得到了“打开方式” 对话。如果我看到我的任务的属性,它会说明:ActionName C:\Windows\system32\OpenWith.exe 即使我将其设置为 vbs 文件 你建议。我做错了什么?

你应该使用这个:

    改为“输入 shellscript.vbs 的路径,例如 C:\path\to\shellscript.vbs。”使用“C:\Windows\System32\wscript.exe” 改为“将添加参数(可选)部分留空”使用(带引号): "C:\path\to\shellscript.vbs"

【讨论】:

【参考方案4】:

在多次尝试使用 Windows 任务计划程序失败后,这是在我的 Windows 10 专业版机器上为我工作的方法。我只是跳过了添加 .vbs 和 .bat 文件并直接将 PATH 发布到脚本文件。

在“Actions > Settings”下,它提供了浏览“程序/脚本”的选项,这是我将完整路径和文件名放置到的位置脚本我想不带引号运行。

C:\Server\Scripts\script.py

然后在您刚刚输入“程序/脚本”的文本框下方的“Actions > Settings”下的同一区域中,它的区域显示“Start in (可选)”。这就是我将 PATH 放入运行脚本的程序 的地方(即:本例中的 python.exe)。但是我没有直接指定“python.exe”,我使用了 PATH ONLY 没有引号,如下所示。

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64

如果您在没有 Visual Studio 的情况下直接安装 Python,它将位于不同的路径下,可能类似于“C:\Program Files\Python\Python37”或类似的东西,如果我没记错的话......

【讨论】:

【参考方案5】:

有点晚了,但对于那些不希望它冗长并且不想在测试中浪费时间(因为目的是将其托管到服务器)的人来说,可以通过添加 http 内容刷新来做一件事在该 php 文件的 html 元标记中,向其中添加所需的计时器并在浏览器中运行它。 注意:您必须使系统保持打开状态,直到您没有获得所需的输出。 我再说一遍,这不是完美且正确的方法,但可以节省某人的配置设置时间。

【讨论】:

以上是关于在 PHP 脚本上运行 Cron 作业,在 Windows 的本地主机上的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 服务器上运行“cron”作业 [重复]

在 cpanel 中使用 cron 作业运行 php 脚本

PHP:运行计划作业(cron 作业)

在 CPanel 上设置 Cron 作业以执行 PHP 脚本

在 Windows 中使用 php 设置 cron 作业

有没有办法在没有 cron 的托管 Web 服务器上自动运行 PHP 脚本?