我在MediaTemple上托管的php-Codeigniter上有一个应用程序,我希望有一个cron作业运行一个控制器,支持告诉我使用CURL我尝试使用没有任何成功,例如:
curl http://mydomain.com/admin/action/get
我的控制器将一些信息插入到数据库中,curl不会显示错误,但只有当我直接在浏览器上运行控制器时才会发生插入。不需要auth。
任何想法?
感谢
答案 0 :(得分:2)
在人们真正帮助您之前,您需要提供有关正在发生的事情的更多信息。请参阅此helpful guide to asking questions。
一些起点:
curl
如何提供它。如果没有,请注意您允许互联网上的任何人启动此过程,这可能会导致拒绝服务攻击或其他安全问题。答案 1 :(得分:1)
或者......你可以编写一个旨在在CLI上运行的PHP脚本,并将cron任务直接分配给php文件:
php -f /path/to/my/file.php
Heres some information在CLI上使用PHP。 CodeIgniter有ways to do this。
也就是说,有一种方法可以确定请求是否随处可见。 (除了保存请求的输出)CodeIgniter配备了出色的记录方法。您可以将 application / config / config.php 中的$config['log_threshold']
设置为3
。在浏览器中运行请求,然后在CLI中运行一次。然后在 application / logs 文件夹中查找当天的日志文件。在文件中查找您要求的网址。它应该有两个记录的地方。如果少于您在日志文件中发出的请求数,那么您就知道CURL出了问题。否则,您知道应用程序出了问题。
答案 2 :(得分:0)
只需制作一个cronactivator.php文件,然后将您的cronjob指向此文件即可。不需要CURL。
<?php
//for php4 use fopen
$html_data = file_get_contents('http://www.yoursite.com/framework/controller/action', 'r');
echo "DONE!";
exit;
?>
答案 3 :(得分:0)
@seth - 我不是在Linux机器上,所以不能真正测试它,但你的问题是 curl本身没有安装或 curl需要某些特定的开关工作强>
如果您仍然希望它能够正常工作,首先通过服务器的SSH(在Windows上使用Putty)使其工作,或者您可以编写一个脚本来测试它;
<?php
$code=system('curl --help');
echo '<br><br> Exit Code: '.$code;
?>
如果它写的任何其他错误代码不是0,那么你就会遇到CURL问题。
另一方面,您可以使用wget
代替。它在Linux上比支持CURL(afaik)更受支持。虽然我是CURL的忠实粉丝,但wget
更适合这种工作。