我发现了很多关于此的问题和文章,但我仍有一些困难。 我正在使用以下命令 / usr / bin / php home / domain.com / public_html / cron / script.php 我收到以下错误 状态:404未找到 X-Powered-By:PHP / 5.2.8 内容类型:text / html
未指定输入文件。
我正在使用Cpanel,该文件托管在domain.com/cron/script.php上 Anyideas,谢谢:p
答案 0 :(得分:11)
在脚本名称上加上一个前导斜杠,即
/usr/bin/php /home/domain.com/public_html/cron/script.php
除非你真的打算通过网络运行脚本,如lacqui的回答,和你不介意随机的第三方能够随时运行它,你没理由应该把它放在你的public_html目录中;恰恰相反。
答案 1 :(得分:6)
尝试:
wget -O - http://domain.com/cron/script.php
看看你是否得到了更好的结果。
编辑:添加“ - O - ”以不将输出写入主文件夹。
答案 2 :(得分:1)
您可能需要使用称为php-cli的二进制文件而不仅仅是php。
答案 3 :(得分:1)
我意识到这是一个老问题,你可能已经找到了解决方案,但上面的答案都没有帮助我,当我运行cron脚本时,我得到了同样的404错误。
问题与写入php脚本的路径的方式有关。路径必须从public_html开始,如/usr/bin/php public_html/public/index.php
答案 4 :(得分:0)
在多个共享托管wget
和curl
命令中,cron不可用。如果要执行来自cron的web (http)
请求,则可以通过在cron php脚本中以php curl调用所需的Web URL来完成。
下面是放在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');
?>