5

我一直在想,在创建 cron 作业时 wget [参数]、curl [参数] 和 php [参数] 之间有区别吗?

如果我有一个脚本“cron-00-00.php”并且我需要运行它上面提到的每一个会做什么?

0 0 * * * php -q /your_abolute_path/includes/php/cron/cron-00-00.php >/dev/null 2>&1
0 0 * * * wget -O - -q -t 1 http://your_domain_com/includes/php/cron/cron-00-00.php >/dev/null 2>&1
0 0 * * * curl http://your_domain_com/includes/php/cron/cron-00-00.php

还是可以选择使用其中一个(取决于最适合我的那个)?

我目前认为它们三个具有不同的功能。请纠正我的观念。

4

1 回答 1

9

直接运行 PHP 是最简单的选择。它不会占用您的 apache(或其他网络服务器)实例上的网络插槽。它还绕过了与旨在保护您的计算机免受恶意第三方攻击的网络服务器相关的限制。但是,PHP 命令行版本的运行环境略有不同,可能足以防止编写不佳的脚本正常运行。此外,一些网络服务器在 apache 的进程空间中将 PHP 作为 DSO 模块运行,并使用 apache 的用户权限。这可能会影响您的结果(可能是积极的,也可能是消极的)。

在其余两个选项中,curl似乎比 更广泛地部署wget,所以这将是我的第二选择,尽管它们大致相等。

于 2012-10-17T09:22:59.777 回答