【问题标题】:How do I run a PHP script using windows schedule task?如何使用 Windows 计划任务运行 PHP 脚本?
【发布时间】:2011-06-09 18:24:59
【问题描述】:

我已经在我的机器上安装了 localhost/server,我需要使用 windows schedule 任务运行一个 php 脚本。如何在计划任务的“操作”选项卡中添加路径/配置脚本以在特定时间段内运行?

【问题讨论】:

标签: php windows-7 scheduled-tasks


【解决方案1】:

在您的系统上找到 php.exe 可执行文件,并使用 -f 参数将脚本文件的名称传递给它。

例子:

C:\Xampp\php\php.exe -f C:\Xampp\htdocs\my_script.php

参考:

【讨论】:

  • 为什么上面的代码对我不起作用。我写了这段代码并将其保存为bat文件但没有成功
  • @Karthi 根据您的 PHP 代码编写方式,您可能还需要在任务计划程序中设置工作目录。
  • 启动任务后我的php文件被删除了,请问是什么原因?
【解决方案2】:

您可以使用PHP Command Line 来执行它,而不是尝试通过浏览器加载它。

在操作选项卡下,创建一个新操作并:

  • 程序/脚本:指向您的 PHP.exe 文件
  • 添加参数:-f /path/to/php/file.php

您也可以选择在脚本目录中启动它。

【讨论】:

    【解决方案3】:

    至少我尝试了一些建议但它不起作用所以我尝试了这个。

    使用 bat 文件并安排执行该 bat 文件。

    比如在bat文件中executephp.bat,这样写

    c:\xampp\php\php.exe -f c:\xampp\htdocs\do_something.php

    保存包含该行的 bat 文件。

    转到 Windows 调度程序并创建一个新任务并在操作选项卡中,浏览指向 executephp.bat 并开始 -> 直接到您拥有该 executephp.bat 的目录。

    例如,如果您将文件保存在 C:\xampp\htdocs 下,则将 C:\xampp\htdocs 放在开头。

    记得在用户未登录时调用脚本。

    一切都设置好了,它将毫无问题地执行。

    【讨论】:

    • .bat 对我来说很好用,直接在命令行上的 php.exe 不起作用。
    • @RoccoTheTaco,为什么它不起作用?您是否确保用引号将文件名括起来 "
    【解决方案4】:

    我是这样做的。

    在运行框中:c:\location_of_my_php_installation\php.exe -f c:\location_of_my_php_file\php_file.php

    在“开始于”框中:c:\location_of_my_php_installation\php.exe

    【讨论】:

      【解决方案5】:

      在任务计划程序的任务属性中,将运行脚本的帐户更改为 SYSTEM 帐户。

      当心!您应该只对您完全信任的脚本执行此操作 - 这样做会将脚本的权限提升到管理员之外。

      【讨论】:

        【解决方案6】:

        这是怎么做到的。

        Windows 调度程序 -> 创建新任务 -> 操作选项卡 -> 编辑

        【讨论】:

          【解决方案7】:

          你可以直接调用你的本地主机url使用

          explorer "http://localhost/yourFile.php"
          

          【讨论】:

            【解决方案8】:

            我只是想留下我必须做的事情才能让它在服务器 2012 上工作。这就是之前所说的,但添加了引号并使用了“添加参数”框。所以在Task Scheduler->Actions->Edit Action.

            Program/script: "C:\xampp\php\php.exe"
            Add arguments: -f "<full path and filename>"
            Start in: <Path to file>
            

            (我必须使用“开始”,因为我在脚本中提到了类)

            希望这会有所帮助。

            【讨论】:

              【解决方案9】:

              要在 Windows 中创建调度程序,您需要:

              1. 在您的服务器或系统上创建.bat 文件;
              2. 在您的.bat 文件中键入以下命令:
                “F:\xampp\php\php.exe” -f “F:/xampp/htdocs/sitefolder/test.php”;
              3. 在 Windows 的任务计划程序中设置计划程序时间和文件。

              【讨论】:

              • 请在代码格式化包装器(反引号)中包含命令(或命令?)并检查您的引号:它们可能应该是 " 或根本省略
              【解决方案10】:

              创建计划任务 调度程序->动作->编辑动作

              如果你有 php 文件

              Program/script: powershell 
              Add arguments: curl http://localhost/demo/cron.php
              

              如果你有 MVC/CMS URL

              Program/script: powershell
              Add arguments: curl http://localhost/demo/controller/method
              

              【讨论】:

                【解决方案11】:

                如果 answer given by Pekka 不起作用 (C:\Xampp\php\php.exe -f C:\Xampp\htdocs\my_script.php),请确保您启用了正确的 PHP 扩展,以及用于您正在使用的 PHP 版本的正确的 php.ini 文件。

                我最近遇到了这个问题并解决了。我使用 PHP v5.4 运行嵌套在顶级 PHP 文件夹 (v5.3) 中的 script.php。当我从 v5.4 文件夹中运行 script.php 时,它正在使用具有不同扩展名的 v5.3 php.ini 文件,这导致 script.php 失败。

                为了解决这个问题,这是我在任务计划程序中所做的:操作选项卡

                程序脚本:

                "C:\Program Files (x86)\PHP\v5.4\php.exe"

                添加参数:

                -c "C:\Program Files (x86)\PHP\v5.4\php.ini" -f "C:\Xampp\htdocs\script.php"

                使用-c 选项,您可以指定应使用哪个php.ini 文件(stackflow answer)。

                我通过关注stackflow answer 验证了正在使用的 php。

                在命令行中,键入php -m 以检查启用了哪些扩展。 然后,使用 php --ini 检查 PHP 正在读取哪个 .ini 文件。

                如果您安装了多个版本,则您使用的 PHP 版本可能没有使用正确的 ini 文件。

                【讨论】:

                【解决方案12】:

                您不需要 .bat 文件,只需在任务调度程序中设置选项即可:

                所以这里我只是指向 php.exe,然后在参数中

                -f fullpath2PHP 文件

                重要的是 Start in 部分 - 这应该是您的 php 文件(您要运行的文件)所在的文件夹。 比如:

                文件位置 -f c:\inetpub\wwwroot\runthisplease\myFile.php

                开始 c:\inetpub\wwwroot\runthisplease\

                您可以通过创建 Windows 快捷方式来测试这一点(但您不能安排快捷方式链接)

                【讨论】:

                • “开始”而不是“开始”
                • 我认为“这应该是文件夹”您的脚本“位于”而不是“您的 php”。
                猜你喜欢
                • 2012-05-08
                • 2017-06-21
                • 1970-01-01
                • 2011-06-20
                • 2010-09-22
                • 1970-01-01
                • 2015-10-21
                • 1970-01-01
                相关资源
                最近更新 更多