我发现了很多关于这个的问题和文章,但我仍然有一些困难。我正在使用以下命令 /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
在脚本名称上放一个前导斜杠,即
/usr/bin/php /home/domain.com/public_html/cron/script.php
除非您真的打算通过网络运行脚本,如 lacqui 的回答,并且您不介意随机的第三方能够随时运行它,否则您没有理由将它放在您的 public_html 目录中;恰恰相反。
尝试:
wget -O - http://domain.com/cron/script.php
看看你是否能得到更好的结果。
编辑:添加“- O -”以不将输出写入主文件夹。
您可能需要使用称为 php-cli 的二进制文件,而不仅仅是 php。
我意识到这是一个老问题,您可能已经找到了解决方案,但上面的答案都没有帮助我,而且当我运行 cron 脚本时,我遇到了同样的 404 错误。
问题与编写 php 脚本路径的方式有关。路径必须像这样从 public_html 开始/usr/bin/php public_html/public/index.php
在几个共享主机wget
和curl
命令中,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¶m2=value2');
?>