【问题标题】:How to schedule the execution of a PHP script on the server side?如何在服务器端安排 PHP 脚本的执行?
【发布时间】:2013-05-04 03:11:02
【问题描述】:

我需要一个在特定时间自动执行的 PHP 脚本。我将如何实现这个目标?

【问题讨论】:

  • 你的操作系统是什么?这一切都不同。

标签: php


【解决方案1】:

如果您运行的是 Linux/Unix(包括 Mac OSX),create a cron job

如果您运行的是 Windows,create a scheduled task

注意:以上两个链接都专门针对 PHP 受众。

【讨论】:

    【解决方案2】:

    如果您使用 crontab -e 手动编辑 crontab 或使用 crontab -l 将其列出,则在 crontab 顶部放置一个有用的注释如下。

    # .---------------- minute (0 - 59) 
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... 
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)  OR sun,mon,tue,wed,thu,fri,sat 
    # |  |  |  |  |
    # *  *  *  *  *  command to be executed
    
      30 3  *  *  *  php /home/scripts/do_something.php
    

    【讨论】:

    • 在某些情况下,根据“do_something.php”是什么类型的脚本,最好在网络服务器中执行它,因此可以选择替换“php /home/scripts” /do_something.php" 与 "wget your.domain.com/do_something.php"
    • 当然,如果它是基于网络的,那么 wget 脚本。否则,如果它是 PHP cli 应用程序,则按照演示的方式调用它。无论哪种方式,我都在展示有用的评论。
    【解决方案3】:

    我假设您正在创建某种 web 应用程序,并且您需要系统的一部分定期运行某些东西,因此它不能通过浏览器运行。如果您要加载大量 3rd 方库或使用大量服务器功能,则执行此操作有点棘手,但如果它是直接的 PHP,您可以很容易地做到这一点。创建运行命令php -f filename.php 的某种计划作业(Linux 上的cron 作业、Windows 上的计划任务等)。这将通过 CLI PHP 解释器执行您选择的 PHP 脚本,这与通过 CGI 执行 PHP 脚本的方式非常相似(可能相同),但减去了一些特定于服务器的环境变量。

    【讨论】:

      【解决方案4】:

      【讨论】:

      • 仅链接的答案在 Stackoverflow 上的价值很低,因为它们很容易被破坏。
      【解决方案5】:

      如果您使用 Linux/Unix,请询问您的主机是否能够为您设置 Windows 计划作业。取决于您是否可以通过某些主机支持部门的丛林,他们应该很高兴,因为这不一定会带来安全风险

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多