PHP Cron作业窗口和Linux

时间:2013-02-25 08:55:01

标签: php linux windows cron

我需要在Windows(共享)/ linux(共享)/ wamp 服务器上设置cron / automatic taks。

问题是项目在多个环境中运行。

那么设置cron / scheduled taks的最佳方法是什么?

实际上我需要做的是检查电子邮件服务器是否有新电子邮件,如果发现了什么,请将其保存到本地数据库。如果您有除cron工作以外的任何其他选择,请告诉我。

感谢。

编辑:

正如我在问题中提到的,我有多个电子邮件/过滤,所以我需要在后台运行一些东西来获取数据定期。 Linux中为CRON,Windows上为Scheduled Tasks。 但真正的问题是我在共享主机(或者它取决于客户端)上这样做,所以我无法使用 CRON / Scheduled Tasks

Ex:Project安装在GOdaddy windows共享主机上,它是一个Windows服务器,所以不支持CRON(通常),他们不允许使用Scheduled Tasks

  

问题是:CRON / Scheduled Tasks是否有其他选择?   ?

2 个答案:

答案 0 :(得分:2)

简答

我不知道满足您需求的CRON / ScheduledTask的替代品 我建议你将时间表外包给另一台服务器,请参阅下面的可能性。

我提出了以下可能性:

与CRON作业共享主机(最简单)

寻找可让您添加cron作业的共享托管服务提供商(例如,通过网站空间管理)。 HostEurope(德国)将是这样一个主人。

您拥有专用(虚拟)服务器

鉴于您将此项目部署到多个共享服务器,但为您自己拥有专用(虚拟)服务器:
使您的脚本公开可用,但使用强大的授权机制保护它。 (难以猜测的请求令牌,白名单某些IP作为被调用者,......)。 在您自己的服务器上设置一个cron作业,该作业在客户端的webhost上调用脚本。

您没有服务器

作为最后一种可能性,但您没有专用服务器 在某个云提供商(例如OpenShift)上设置虚拟机并在那里添加cronjob。不要将此实例用于其他工作,它应该完全满足您的需求(参考:https://openshift.redhat.com/community/blogs/getting-started-with-cron-jobs-on-openshift

要求不符合基础设施(可能!)

您的客户/项目的要求不适合共享托管环境。强烈建议您获得满足您真实需求的托管计划。共享托管和第一个虚拟服务器或专用托管之间的价格差异不是那么陡峭,以至于调查是不可能的。

答案 1 :(得分:1)

正如其他人一样,如果这是一个网页,您可以使用wget来运行它。 如果是CLI脚本,则必须使用php /directory/filepath.php运行它 如果实际的问题是您将如何定期运行它,您将不得不使用 cron on * NIX和Windows服务器上的预定任务。 如果要自动安装cron,则必须检查操作系统并根据操作系统是Windows还是* NIX进行操作。 谷歌搜索将为您提供有关如何在两种环境中执行此操作的结果。

红色澄清后编辑 正如Samuel Herzog所说,在共享主机上你(通常)有一个控制面板。 众所周知的Linux是:

Cpanel:http://www.siteground.com/tutorials/cpanel/cron_jobs.htm

Plesk:http://www.hosting.com/support/plesk/crontab

Webmin:Setting up a cron job with Webmin

对于窗户,我只有一些与plesk有关的家庭,其程序与以前相同。

如果你没有控制面板但有shell访问权限(linux),你可以按照this教程。

如果你没有控制面板但有远程桌面(windows),你可以按照this教程。

如果您没有上述任何一项,您应该遵循Samuel Herzog关于云提供商的虚拟机的建议或考虑升级到VPS或专用服务器。