如何在服务器端安排PHP脚本的执行?

如何在服务器端安排PHP脚本的执行?,php,Php,我需要一个PHP脚本在特定时间自动执行。如何实现这一目标?如果您运行的是Linux/Unix(包括Mac OSX)版本 如果您正在运行Windows 注意:以上两个链接都专门针对PHP用户。如果您使用linux。如果您不使用linux/Unix,请询问您的主机是否能够为您设置Windows计划作业。取决于你能否通过一些主机的支持部门,他们应该很高兴,因为这不一定会带来安全风险我假设你正在创建某种Web应用程序,并且你需要系统的一部分定期运行某些程序,因此不能通过浏览器运行。如果要加载大量第三方l

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

如果您运行的是Linux/Unix(包括Mac OSX)版本

如果您正在运行Windows


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

如果您使用linux。

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

我假设你正在创建某种Web应用程序,并且你需要系统的一部分定期运行某些程序,因此不能通过浏览器运行。如果要加载大量第三方lib或使用大量服务器功能,那么这样做有点棘手,但是如果是纯PHP,那么可以非常轻松地完成。创建运行命令
php-f filename.php
的某种计划作业(Linux上的cron作业、Windows上的计划任务等)。这将通过CLI PHP解释器执行您选择的PHP脚本,这与通过CGI执行PHP脚本的方式非常相似(可能相同),但减去一些特定于服务器的环境变量。

如果您使用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”是什么类型的脚本,最好在web服务器中执行它,因此选项是将“php/home/scripts/do_something.php”替换为“wget”。当然,如果它是基于web的,那么就对脚本进行wget。否则,如果它是一个PHPCLI应用程序,则按演示调用它。无论哪种方式,我都在演示有用的注释。仅链接的答案在Stackoverflow上的价值很低,因为它们很容易被破坏。