4

我发现了很多关于这个的问题和文章,但我仍然有一些困难。我正在使用以下命令 /usr/bin/php home/domain.com/public_html/cron/script.php 我收到以下错误状态:404 Not Found X-Powered-By: PHP/5.2.8 Content-type :文本/html

未指定输入文件。

我正在使用 Cpanel,该文件托管在 domain.com/cron/script.php Anyideas,谢谢:p

4

5 回答 5

11

在脚本名称上放一个前导斜杠,即

/usr/bin/php /home/domain.com/public_html/cron/script.php

除非您真的打算通过网络运行脚本,如 lacqui 的回答,并且您不介意随机的第三方能够随时运行它,否则您没有理由将它放在您的 public_html 目录中;恰恰相反。

于 2009-03-28T04:44:58.887 回答
7

尝试:

wget -O - http://domain.com/cron/script.php

看看你是否能得到更好的结果。

编辑:添加“- O -”以不将输出写入主文件夹。

于 2009-03-28T04:42:24.273 回答
1

您可能需要使用称为 php-cli 的二进制文件,而不仅仅是 php。

于 2009-03-28T05:08:00.530 回答
1

我意识到这是一个老问题,您可能已经找到了解决方案,但上面的答案都没有帮助我,而且当我运行 cron 脚本时,我遇到了同样的 404 错误。

问题与编写 php 脚本路径的方式有关。路径必须像这样从 public_html 开始/usr/bin/php public_html/public/index.php

于 2012-09-01T18:44:15.267 回答
0

在几个共享主机wgetcurl命令中,cron 不可用。如果想要执行web (http)来自 cron 的请求,那么可以通过在 cron php 脚本中调用所需的 web url 作为 php curl 来完成。

下面是要放入 cron php 文件中的示例代码:

<?php
function callRemoteHttp($url)
{

    $curl = curl_init();    

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($curl);
    $ret_arr = array('data' => $result, 'status_code' => curl_getinfo($curl, CURLINFO_HTTP_CODE));
    curl_close($curl);

    return $ret_arr;
}
$ret = callRemoteHttp('http://example.com?param1=value1&param2=value2');
?>
于 2020-07-09T09:18:14.707 回答