使用php在Windows中设置cron作业

时间:2012-03-27 17:45:35

标签: php windows cron xampp

我正在寻找一种使用PHP设置cron作业的方法。我想做的就是在特定时间运行PHP脚本。用户首先在脚本中输入时间,根据服务器运行脚本指定的时间。我使用的是Windows 7和xampp。

我发现的是:

  1. 创建一个调用cron.php文件的php文件:使用记事本(或其他),将以下内容粘贴到新文件中:     $ data = file(“http://pearl.supplychain.com/cron.php”);     你需要把它放在常规的php标签里,“少于标志”吗? 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中,但您可能需要更改路径)。

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

    可以通过php代码或使用其他方式来实现吗?因为我想在php / server上完成所有工作而不需要我的用户自己配置cron作业。这意味着我希望我的php代码可以在服务器中设置cron,服务器会查看cron吗?

    对stefgosselin:

      

    创建批处理文件

    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
    
         

    安排批处理文件运行

    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创建一个浴室文件,但有没有办法Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:\cron.bat 使用PHP而不是使用操作系统?谢谢

    谢谢

7 个答案:

答案 0 :(得分:37)

我在waytocode.com找到了我对这个问题的答案

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

解决方案-1 使用任务计划程序

在Windows 7 / windows 2005/2008中。

转到Startmenu->所有程序 - >附件 - >系统工具 - >任务计划程序 - >创建任务

在新窗口中:

  1. 常规(提供任务名称并进行测试,您可以选择“用户登录时运行”)

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

  3. 动作(这是最重要的部分。选择Mozilla firefox作为“程序/脚本”,并在Argument中提供使用Mozilla firefox触发的URL)。

  4. 解决方案-2 使用来自XAMPP服务器的任务计划程序和PHP

    在Windows Xp中,无需复制或安装任何内容(已在服务器上安装PHP,如XAMPP)

    转到任务计划程序

    创建任务给出运行时间,然后在“运行”命令文本框中输入高级设置选项

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

    在Windows 7 / server 2005/2008中

    无需复制或安装任何内容(已在服务器上安装PHP)

    创建任务给出触发器设置中的运行时间。然后在“程序/脚本”命令文本框中的“操作”设置选项中输入

    C:\xampp\php\php.exe
    

    并在“添加参数(可选)”中输入

    -f c:/xampp/htdocs/mycron.php
    

    解决方案-3 安装一个Windows exe文件,该文件将模拟* nix系统中的cron作业

    我不想将任何exe文件安装到我的服务器或开发计算机上, 但我会提供解决方案:

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

    在“运行”命令文本框类型

    中创建一个任务给出运行时间然后处于高级设置选项
    C:\Windows\wget.exe -q -O NUL http://localhost/mycron.php
    

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

    在“程序/脚本”命令文本框类型

    中创建一个任务给出运行时间然后在avanced setting选项中
    C:\Windows\wget.exe
    

    并在“添加参数(可选)”中输入

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

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

    我在Stackoverflow找到了它,它与前两个类似:

    1. 创建一个cron.php文件(您希望定期执行的代码)

    2. 创建一个CRON.BAT文件,复制并通过文件

      中的以下代码

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

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

      1. 安排任务 点击开始>所有程序>配件>系统工具>计划任务
      2. 或者你可以直接去 控制面板>计划任务

        右键单击该文件夹 新>安排任务

        为任务指定适当的名称。 在“运行”文本字段中...键入CRON.BAT文件的完整路径 就我而言,它是

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

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

        <强>解决方案-5

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

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

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

        选择一个更适合您的解决方案。希望这会对某人有所帮助。

        <强> 更新

        解决方案-6 (基于以下答案,也适用于CodeIgniter!)

        创建cron.bat文件并编写以下命令并保存。

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

        创建任务给出触发器设置中的运行时间。然后在“程序/脚本”命令文本框中的“操作”设置选项中输入

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

        END UPDATE

        回答你的问题:

          

        可以通过php代码或使用其他方式来实现吗?因为我   想要在php / server上完成所有工作而不需要我的用户配置   cron工作本身。这意味着我想要我的PHP代码可以设置   服务器和服务器中的cron会查看cron吗?

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

        在PHP中使用cron manager Using cron manager from within PHP

        使用PHP管理Cron Jobs http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php-2--net-19428

        不幸的是,所有使用PHP的解决方案都需要* nix服务器类型和/或cPanel,并且实现起来或多或少都很复杂。

答案 1 :(得分:2)

好的,如果我理解正确,您希望在系统上创建一个cron作业,而无需用户创建任务。

基本上,这可以很容易地在.bat文件中完成(甚至可以从php调用)。 schtasks应用程序可以轻松地自动创建计划任务。例如:

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

有关此漂亮应用程序的更多信息,请参阅official MS support page

对用户来说甚至更容易的另一个选择是使用安装程序。我自己并没有创建那么多Windows应用程序,但确实有幸与NSIS一起玩,而且这个应用程序也有创建预定任务的选项,其中许多其他功能在这里无法命名。如果您需要用户可安装的软件包,强烈建议使用。

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

答案 2 :(得分:2)

另一个很棒的工具可以在Windows上免费使用,nncron。它使用与unix'cron:

完全相同的语法

http://www.nncron.ru/

我觉得更容易管理这个可怕的史诗:)

Lite版本是我建议使用的版本。完整的动力版本支持配置文件中的脚本。它可能很方便但不知何故因为正常的cron工作而被杀死。

答案 3 :(得分:0)

步骤在Windows中创建Cron:

步骤1&gt;创建.bat文件

    1. open notepad.
    2. click File -> Save As.
    3.Give the file a name i.e. 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&gt;在MyBatchFile.bat中编写以下命令

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

步骤3&gt;     打开开始 - 所有程序 - 附件 - 系统工具 - 计划任务。     单击右侧栏中的创建任务。     名字:任何一个     触发器:从下拉设置时间并选择每天     操作:选择.bat文件     单击“确定”按钮

答案 4 :(得分:0)

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

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

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

(Ups,老帖子)

答案 5 :(得分:0)

这是我为自己的 windows 10 项目尝试的完整解决方案。

1)转到“ 开始”菜单,然后搜索“ 任务计划程序”。

  • 如果遇到任何权限问题,请以“ 以系统管理员身份运行”打开它。此选项正好在“打开”下方。

  • 仍然仍然遇到权限问题,请与系统管理员联系。

2)单击右侧栏中的“ 新任务”,将打开一个窗口。

3)默认情况下,将在此窗口中选择“ 常规”标签。给任务起一个合适的名称,如果需要,请提供简短描述。

4)转到“ 触发器”(如果需要终止日期时间,请在此处设置要运行的频率并开始日期时间),并设置所有require参数。

5)转到“ 操作”标签。这是最重要的部分。

  • 在“ 程序/脚本”中,编写“ php.exe ”的绝对路径。

  • 在“ 开始于”中,输入您打算用于cron的php文件所在的文件夹的绝对路径。

  • 在“ 添加参数”中,输入要通过任务作业运行的php文件的名称。

    • 在“ 添加参数”中,您还可以为php文件名后面的文件空间指定参数。并且如果有文本或特殊字符,请用双引号将其引起来。

    • 如果为脚本提供参数,则会分别在 $ argv [1],$ argv [2] 等中接收它们。

有关更多详细信息,请访问:https://medium.com/@shraddha_kulkarni/run-php-cron-in-windows-513fb1aa53a5

答案 6 :(得分:-1)

步骤在Windows操作系统中创建Cron:

第1步&gt; 创建.bat文件

    1. Open notepad.
    2. Click File -> Save As.
    3. Give the file a name i.e. 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&gt;在MyBatchFile.bat中编写以下命令

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

步骤3&gt;     打开开始 - 所有程序 - 附件 - 系统工具 - 计划任务。     单击右侧栏中的创建任务。     名字:任何一个     触发器:从下拉设置时间并选择每天     操作:选择.bat文件     单击“确定”按钮