我在 ubuntu 上安装了 lamp,我想知道每天凌晨 2 点要输入什么才能启动 php 页面。我仍在研究 crontab 的工作原理,所以我无法测试哪一个有效。
所以如果我有类似的东西,我该如何将其与参数一起放入 php 页面中?
30 18 * * * http://myip/mypage.php?action=do_something
我应该这样输入还是使用绝对路径?像这样
30 18 * * * /var/www/mypage.php?action=do_something
答案1
你肯定想使用方法一。那就是
30 18 * * * wget -O - -q -t http://myip/mypage.php?action=do_something
因为这样会通过通常的 Web 路径使用 wget(文件下载程序)获取文件。这意味着当 apache 处理请求时,它将导致 php 解释该脚本,然后您就会运行该脚本。
我相当确定也可以使用方法 2 来运行它,通过调用 php-cli 应用程序并将路径作为参数传递给脚本,但在大多数情况下这不会产生任何实际区别。
答案2
您在 cron 中放置的命令取决于 php 文件的实际编写方式。如果文件是 Web 服务器下的脚本,那么上述 wget 将正常工作。请注意,上面的命令中 -O 表示输出将写入文件,-q 表示安静,-t 用于限制重试次数。
但是如果 php 脚本是 shell 脚本,wget 就无用了。在这种情况下,文件必须是可执行的,并且您的 cron 命令将如下所示:
30 18 * * * /usr/bin/env php /path/to/script