如何使用 cron 作业运行 php 文件

2022-08-30 21:39:43

我有一个电子邮件计划每天在php页面上使用cron作业运行。当我使用链接运行页面时,php代码工作正常。

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

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

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


答案 1

Cron 运行命令的方式与通过 shell 运行命令的方式相同,因此运行 PHP 将使用本地路径。

您需要使用如下命令:

php /home/USER/public_html/cron.php

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

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

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


答案 2

我会添加哈希,就像

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(我建议)哈希,然后检查它们是否相同 - 黑客不可能重新创建它 - 除非他以某种方式获得了您的原始哈希设置


推荐