【问题标题】:how to run php file using cron jobs如何使用 cron 作业运行 php 文件
【发布时间】:2012-04-23 06:23:34
【问题描述】:

我每天使用 cron 作业在 php 页面上运行电子邮件计划。当我使用链接运行页面时,php 代码运行良好。

现在,当我使用 cron 作业运行 php 脚本时,它也可以正常工作,但是当我提出一些查询时,cron 作业将无法理解链接。

例如:http://www.wetube.org/cron.php?id=01001 所以现在如果我尝试每天使用 cron 作业运行它,它就不起作用了。

但是,如果我们只是删除查询,它就可以正常工作。你们知道使这个链接在 cron 工作中工作的任何代码吗?

【问题讨论】:

  • “提出一些查询”是什么意思?另外,你把什么作为 cron-job 的命令?

标签: php cron


【解决方案1】:

我会像这样添加哈希

curl http://www.wetube.org/cron.php?id=01001&hash=cm349ucKuc023b2ynGyv23ycr23

在php文件中

if(isset($_GET['hash']) && $_GET['hash']=='cm349ucKuc023b2ynGyv23ycr23'){
....
stuff to do
....
}

*您甚至可以在应该运行时添加特定的时间/日期检查。
*您可以检查IP
*在cron和php文件中使用相同的盐甚至时间生成sha512(我会推荐)哈希,然后检查它们是否相同-黑客不可能重新创建它-除非他以某种方式获取您的原始文件哈希设置

【讨论】:

    【解决方案2】:

    Cron 运行命令就像它们通过 shell 运行一样,因此运行 PHP 将使用本地路径。

    你需要使用如下命令:

    php /home/USER/public_html/cron.php

    或者如果需要包含查询字符串,请改用 cURL(如果已安装):

    curl http://www.wetube.org/cron.php?id=01001

    您可能希望不要将您的 cron 脚本暴露在互联网上 - 将它们移到您的 Web 目录之外,因为如果有人发现它,他们可以不断重新加载它以向您的 cron 脚本发送垃圾邮件(即发送大量电子邮件)

    【讨论】:

    • 如果您必须通过 HTTP 运行脚本(首先这通常是一个坏主意)并且您的服务器有一个静态(和专用)IP 地址,您可以限制仅来自您的访问服务器通过将您的 cron 脚本包含在条件检查中,以检查 $_SERVER['REMOTE_HOST'] 是否与您的服务器的 IP 地址匹配。但这并不是万无一失的,最安全的选择是简单地将 cron 脚本放在 Web 目录之外。
    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 2021-02-02
    • 2011-11-12
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多