该文件说,我需要:
如果您的主机帐户在LINUX / UNIX系统上,您可以设置一个CRON作业来指向这个URL http://yourUrlToThisScript.com/cron.php?cron=do&d=31
虽然这是他们如何设置cron的唯一信息。 我知道脚本工作正常,因为当我通过浏览器访问URL时,我收到了电子邮件。
*/1 * * * * /usr/bin/php -q /var/www/website/public/domain-manager/cron.php cron=do&d=31 >/dev/nul 虽然这不起作用,我没有收到任何电子邮件或错误?
cron.php以便它不能从浏览器执行? 也许像这样的答案,虽然一个单一的文件,而不是一个目录。 你如何调用一个PHP脚本,特别是如何处理给定的参数,有一点点区别。 该文档是关于HTTP GET请求,您正在执行PHP脚本的命令行调用。
通过命令行执行的HTTP GET请求示例:
wget -q -O - "http://localhost/domain-manager/cron.php?cron=do&d=31"
通过命令行执行PHP脚本的示例:
php -f /var/www/website/public/domain-manager/cron.php cron=do d=31
主要的区别是PHP将如何获取参数。 对于HTTP请求,PHP将使用一个接口到Apache或任何您正在使用的Web服务器,并获取$ _GET数组中的参数。 对于命令行调用,PHP必须使用$ argv数组。
如果文档需要HTTP调用,我会使用它,即使命令行调用会因性能原因而更好,并且没有这样的限制。
推荐你的crontab:
*/2 * * * * wget -q -O - "http://localhost/domain-manager/cron.php?cron=do&d=31" > /dev/null 2>&1
保护这个文件免受外部请求的build议:/var/www/website/public/domain-manager/.htaccess的内容(在相同的目录中)
<files cron.php> order deny,allow deny from all allow from localhost </files>