在 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 的本地主机上的主要内容,如果未能解决你的问题,请参考以下文章