1

我想使用 cron 选项卡从 url 运行 php 文件。我正在使用虚拟主机,我给出了这样的命令

9 11 9 2 * wget -O /dev/null http://www.domainname.com/cronfile.php

但它不起作用请告诉我为什么这不起作用。我认为这个命令必须运行“cronfile.php”,我不想收到来自 cron 的任何电子邮件。

4

2 回答 2

0

尝试:

9 11 9 2 * wget -O /dev/null 'php -f /path/to/cronfile.php'

或添加到“cronfile.php”

#!/usr/bin/php

并赋予它运行权限:

chmod +x 'cronfile.php'

有关从命令行运行 PHP 的完整详细信息,请参阅手册

更新 1

路径有问题吗?如果您尝试编辑文件vi path/to/file.php,您可以打开它吗?如果是这样,请尝试手动运行php -f /path/to/cronfile.php,您是否产生错误?如果没有,请将以下内容添加到您的 php 文件中:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

更新 2

我觉得你有点困惑。你为什么通过 URL 运行它?你想达到什么目的?

通过“执行” http://www.domainname.com/cronfile.php文件将不会在本地运行,PHP 服务器端 HTML 嵌入式脚本语言,这意味着当您将运行http://www.domainname。 com/cronfile.php vi 您的本地 crontab,该文件将在远程服务器 (www.domainname.com) 上运行,而不是在本地运行,就像您在浏览器中打开此 URL 一样。

只要它是静态脚本,最好在本地运行它。一旦你通过 URL 运行,你将很容易受到使用URL 劫持的代码注入。我建议你阅读它。

更新 3

添加参数使用$argv

php -f /path/to/cronfile.php hello_world

并在 php 文件中:

echo $argv[0];
于 2013-02-10T17:31:11.910 回答
0

这取决于您的目标页面是否是本地的。如果是,您可以使用命令php5 /path/to/php/file.php。如果不是,则 wget 方法是正确的,尽管我会这样称呼它:/usr/bin/wget --quiet --output-document=/dev/null http://www.server.com/page.php. 希望这可以帮助。(可能重复

于 2013-02-10T17:33:34.077 回答