【问题标题】:How to run the PHP script at scheduled time如何在预定时间运行 PHP 脚本
【发布时间】:2012-02-02 03:04:00
【问题描述】:

我需要在每天的预定时间运行一个 php 脚本来更新数据库中的某些字段并发送自动电子邮件。我怎么能做到这一点?

是否可以在 XAMP 服务器中编写一些服务以每天在预定时间运行脚本?我不知道如何更新数据库并在预定时间自动发送电子邮件。谁能分享一些想法或概念?

我正在使用在 Linux 服务器上运行的 PHP 和 MySQL。

【问题讨论】:

    标签: php mysql linux


    【解决方案1】:

    您应该使用Cron 作业来执行此操作。查看the Wikipedia page 上的示例。

    Cron 作业应使用运行必要任务的php 可执行文件调用脚本。

    【讨论】:

      【解决方案2】:

      只需创建执行所需工作的脚本,一旦确定它可以正常工作,通过在浏览器中点击 URL 来测试它。复制网址并添加Cronjob

      然后安排此命令在您想要运行的任何时间运行

      php ABSOLUTE_URL_TO_SCRIPT >> logfile
      

      日志文件是可选的。但它会让你有机会看看发生了什么。

      例如,如果您想每 4 小时运行一次脚本,并假设您的脚本位于 http://localhost/work/scripty.php 并假设您的 http 根目录是 /var/www,

      您将在终端中运行“crontab -e”并添加以下行:

      * */4 * * * php /var/www/work/scripty.php
      

      如果您需要更多信息,请发表评论,我会更新答案。

      【讨论】:

      • 这将每 4 分钟而不是几小时运行一次作业。既然可以直接运行脚本,为什么还要使用 lynx?
      • 感谢您的更正,lynx 很轻松,因为在 php cli 中,即使您只是运行脚本,除非您将当前目录明确更改为脚本目录,否则相关 php 包含的内容也会混乱。我希望他的脚本无需任何修改即可运行 :)
      • 如果include_path 设置正确,或者您使用绝对路径(当前文件的完整路径总是在__FILE__ 中)应该没有问题。使用 lynx 是不必要的资源浪费;它包括 lynx、网络服务器和 PHP。直接运行脚本包括 PHP。
      • 两种方式各有优缺点,我通常有很多包含,没有使用绝对路径。 lynx 也是一个非常精简的“纯文本”浏览器,因此不会有多少资源受到伤害。但是,我会更新答案
      【解决方案3】:

      PHP 不能自己运行脚本,因为 php 没有像 python 这样的守护进程!! 因此,您必须借助操作系统的帮助来调用您的自定义脚本。

      例如在 linux 中: (example.sh) 导出 USE_PHP=php cd $SCRIPT_ROOTDIR $USE_PHP -f cronfile.php service="checkdatabase" (服务是传递给您的 cronfile 的参数)。

      要设置 cron 作业,请查看此链接 http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

      【讨论】:

        【解决方案4】:

        在 Linux 中,我们可以创建 .sh 文件,并可以给出一个特定的运行时间,称为 cron 作业。 所以应该使用这种方法只是制作一个shell文件并给它一个时间段。 为此,您应该寻求 linux 专家的帮助。

        使用以下内容:Cron Job

        【讨论】:

          猜你喜欢
          • 2020-10-24
          • 2020-06-10
          • 1970-01-01
          • 2011-12-21
          • 2015-09-28
          • 1970-01-01
          • 2013-11-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多