使用PHP在Windows中设置cron作业

我正在寻找一种方法来设置使用PHP的cron作业。 我只想在特定的时间运行PHP脚本。 用户首先在脚本中input一个时间,根据服务器运行脚本所指定的时间。 我正在使用Windows 7和XAMPP。

我发现的是:

  1. 创build一个调用cron.php文件的php文件:使用记事本(或其他),将以下内容粘贴到一个新文件中:$ data = file(“http://pearl.supplychain.com/cron.php”); 你需要把它放在普通的PHP标签里面,用“less于标志”? 在前面的PHP和? 最后“大于号”。 (我似乎无法只键入,因为它是“可疑的内容”,而且drupal不允许)将它作为executecron.php保存到与cron.php(htdocs)相同的目录中。

  2. 设置定期调用这个任务的计划任务:

    1. 打开“开始 – 所有程序 – 附件 – 系统工具 – 计划任务”。
    2. 双击计划的任务。
    3. 设置每日任务,从上午12:00开始,每半小时(或其他)运行,直到晚上11:59。 告诉任务“运行”以下内容:

      C:\cms\xampp\php\php.exe c:\cms\xampp\htdocs\executecron.php 

      (在这个系统上,php.exe被安装在C:\ cms \ xampp \ php中,但是你可能不得不改变path)。

正如您所看到的,要做到这一点,必须Open Start–All Programs–Accessories–System tools–Scheduled tasks.

可以具体的PHP代码或使用其他方式来做到这一点? 因为我想在php / server上完成所有的工作,而不需要我的用户自己configurationcron作业。 这意味着我想我的PHP代码可以设置在服务器和服务器的cron将看在cron?

以stefgosselin:

创buildbatch file

 Open Notepad. Paste the line "C:\xampp\php\php.exe C:\wamp\www\index.php" Click "File" -> "Save As" Ensure "Save as type:" is set to "All Files" Save the file as "cron.bat" to your C drive 

计划batch file运行

 Open Command Prompt Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat" Press Enter This will make the script run every 20 minutes, the first time 20 minutes from now. 

我能够使用PHP创build一个浴文件,但是,有没有什么办法来Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat使用PHP代替使用os?谢谢

谢谢

我在waytocode.comfind了我对这个问题的回答

他们提供了3种可能的解决scheme来在Windows上运行cron作业:

解决scheme1使用任务调度程序

在你的Windows 7 / Windows 2005/2008。

进入开始菜单 – >所有程序 – >附件 – >系统工具 – >任务计划 – >创build任务

在新窗口中:

  1. 一般(给出任务名称和testing你可以select“用户login时运行”)

  2. 触发(您可以select“每日,每周,每月”的运行时间间隔。)

  3. 操作(这是最重要的部分,select一个Mozilla的Firefox作为“程序/脚本”,在参数中提供了Mozilla Firefox的火焰)。

Solution-2使用来自XAMPP服务器的任务调度程序和PHP

在Windows XP中,不需要复制或安装任何东西(已经将PHP安装在服务器上,如XAMPP)

转到任务计划程序

创build一个任务给运行时间,然后在“RUN”命令文本框types的高级设置选项

 C:\xampp\php\php.exe -fc:/xampp/htdocs/waytocode/mycron.php 

在Windows 7 /服务器2005/2008

无需复制或安装任何东西(已经在服务器上安装了PHP)

在触发器设置中创build一个任务给予运行时间。然后在“程序/脚本”命令文本框中inputAction设置选项

 C:\xampp\php\php.exe 

并在“添加参数(可选)”types

 -fc:/xampp/htdocs/mycron.php 

解决scheme3安装Windows EXE文件,将模拟* nix系统的cron作业

我不想安装任何exe文件到我的服务器或开发机器,但我会提供他们发布的解决scheme:

在Windows XP中,将所有2 DLL文件与wget.exe复制到C:\ windows文件夹中

在“RUN”命令文本框types中,创build一个任务给运行时间,然后在高级设置选项中

 C:\Windows\wget.exe -q -O NUL http://localhost/mycron.php 

在Windows 7 / Server 2005/2008中,将所有2 DLL文件与wget.exe复制到C:\ windows文件夹中

在“程序/脚本”命令文本框中input运行时间,然后在高级设置选项中创build一个任务

 C:\Windows\wget.exe 

并在“添加参数(可选)”types

 -q -O NUL http://localhost/mycron.php 

解决scheme-4使用.bat文件和任务计划程序

我发现它在这里在Stackoverflow和它是类似的第2:

  1. 创build一个cron.php文件(你想要定期执行的代码)

  2. 创build一个CRON.BAT文件,复制并在文件中的下面的代码

    D:\ xampp \ php \ php.exe D:\ xampp \ htdocs \ Application \ cron.php

我写的path是根据我的xampp和cron.php文件,根据你的系统目录更新文件的path

  1. 安排任务单击开始>所有程序>附件>系统工具>计划任务

或者,您可以直接进入控制面板>计划任务

右键单击新build>计划任务文件夹

为该任务提供适当的名称。 在RUN文本字段中inputCRON.BAT文件的完整path,就我而言

 D:\xampp\htdocs\Application\CRON.BAT 

设置作业的时间表,如果需要,可以使用高级button。

解决scheme-5

我不喜欢它,因为一个脚本不能依赖别人的网站,但无论如何这是一个解决scheme。

使用外部在线cron作业服务。

https://www.google.ca/search?q=cron+job+online+service

select一个更适合你的解决scheme。 希望这会帮助别人。

UPDATE

解决scheme6 (基于下面的答案,并与CodeIgniter一起工作!)

创buildcron.bat文件并写入以下命令并保存。

 @ECHO OFF c: cd C:\Program Files\Internet Explorer START iexplore.exe http://localhost/path/to/cron/job/1 

在触发器设置中创build一个任务给予运行时间。然后在“程序/脚本”命令文本框中inputAction设置选项

 C:\xampp\path\htdocs\folder\includes\cron.bat 

END UPDATE

回答你的问题:

可以具体的PHP代码或使用其他方式来做到这一点? 因为我想在php / server上完成所有的工作,而不需要我的用户自己configurationcron作业。 这意味着我想我的PHP代码可以设置在服务器和服务器的cron将看在cron?

还有其他方法可以做到这一点:

在PHP中使用cron manager使用 PHP中的cron manager

使用PHPpipe理Cron作业http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php-2–net-19428

不幸的是,使用PHP的所有解决scheme都需要一个* nix服务器types和/或cPanel,并且实现起来或多或less复杂。

好吧,如果我理解正确,你想在系统上创build一个cron作业,而不需要用户创build任务。

基本上,这可以很容易地在一个.bat文件,甚至可以从PHP调用。 schtasks应用程序可以轻松自动创build计划任务。 例如:

 schtasks /create /tn UNO /tr YOURAPP.EXE /sc HOURLY /mo 2 

有关这个漂亮的应用程序的更多信息,请参阅官方MS支持页面 。

另一个对用户来说更简单的select是使用安装程序。 我自己并没有创build这么多的Windows应用程序,但有幸玩过NSIS ,而且这个应用程序也有创build计划任务的选项,其中许多其他许多function方式也不胜枚举。 强烈build议,如果你需要一个用户可安装的包。

希望有帮助,快乐编码的朋友。

另一个伟大的工具是在Windows上免费提供的nncron。 它使用与unix'cron完全相同的语法:

http://www.nncron.ru/

我发现pipe理这个可怕的schtasks更容易:)

精简版是我会build议使用的版本。 全功率版本在configuration文件中支持脚本。 它可能是方便的,但以某种方式死于正常的cron工作。

步骤在Windows中创buildCron:

步骤1>创build.bat文件

  1. open notepad. 2. click File -> Save As. 3.Give the file a name ie MyBatchFile.bat Underneath the filename box change the file type to All Files. The .bat on the end of the filename will instruct the PC to open it as a batch file. 

步骤2>在MyBatchFile.bat中写入以下命令

  ECHO OFF START File Full Path write here like http://www.google.com 

步骤3>打开“开始 – 所有程序 – 附件 – 系统工具 – 计划任务”。 点击右侧栏中的创build任务。 名称:任意一个触发器:从下拉菜单中设置时间并select每天操作:select.bat文件单击确定button

另一个非常简单的方法是powershell,获取你的php文件的内容。

任务计划程序,目标: Powershell.exe ,使用参数:

 -Command "(New-Object Net.WebClient).DownloadString('http://myhost/cron/cron.php')" 

(Ups,旧post)

步骤在Windows操作系统中创buildCron:

步骤1> 创build.bat文件

  1. Open notepad. 2. Click File -> Save As. 3. Give the file a name ie MyBatchFile.bat Underneath the filename box change the file type to All Files. The .bat on the end of the filename will instruct the PC to open it as a batch file. 

步骤2>在MyBatchFile.bat中写入以下命令

  ECHO OFF START File Full Path write here like http://www.google.com 

步骤3>打开“开始 – 所有程序 – 附件 – 系统工具 – 计划任务”。 点击右侧栏中的创build任务。 名称:任意一个触发器:从下拉菜单中设置时间并select每天操作:select.bat文件单击确定button