Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用curl创建url_Php_Curl_Ssh_Cron_Mediatemple - Fatal编程技术网

Php 使用curl创建url

Php 使用curl创建url,php,curl,ssh,cron,mediatemple,Php,Curl,Ssh,Cron,Mediatemple,我在MediaTemple上托管了一个php Codeigniter上的应用程序,我希望有一个运行控制器的cron作业,支持人员告诉我使用CURL,我尝试过使用,但没有成功,例如: curl http://mydomain.com/admin/action/get 我的控制器将一些信息插入到数据库中,curl不会显示错误,但只有在浏览器上直接运行控制器时,插入才会发生。不需要身份验证 有什么想法吗 谢谢在人们能够真正帮助你之前,你需要提供更多关于正在发生的事情的信息。请看这个 一些出发点: 从

我在MediaTemple上托管了一个php Codeigniter上的应用程序,我希望有一个运行控制器的cron作业,支持人员告诉我使用CURL,我尝试过使用,但没有成功,例如:

curl http://mydomain.com/admin/action/get

我的控制器将一些信息插入到数据库中,curl不会显示错误,但只有在浏览器上直接运行控制器时,插入才会发生。不需要身份验证

有什么想法吗


谢谢

在人们能够真正帮助你之前,你需要提供更多关于正在发生的事情的信息。请看这个

一些出发点:

  • 从命令行运行该命令时会发生什么
  • 在Web浏览器中转到控制器URL时会发生什么
  • 你的“不成功”到底包括什么?你在寻找什么样的成功迹象?你在观察什么
  • 您的控制器是否需要身份验证?如果是这样,您需要告诉
    curl
    如何提供它。如果没有,请注意您允许Internet上的任何人启动此过程,这可能会导致拒绝服务攻击或其他安全问题

  • 只需创建一个cronactivator.php文件,并将您的cronjob指向该文件。不需要卷发

    <?php 
    //for php4 use fopen
    $html_data = file_get_contents('http://www.yoursite.com/framework/controller/action', 'r');
    echo "DONE!";
    exit;
    
    ?>
    

    @seth-我不在linux机器上,因此无法真正测试这一点,但您的问题是,curl本身未安装,或者curl需要某些特定的开关才能工作

    如果您仍然希望它工作,首先通过服务器的SSH(在Windows上使用Putty)让它工作,或者您可以编写一个脚本来测试它

    <?php
        $code=system('curl --help');
        echo '<br><br> Exit Code: '.$code;
    ?>
    
    
    
    并不是说,如果它写入除0以外的任何其他错误代码,那么您就存在CURL问题



    另一方面,您可以使用
    wget
    。与CURL(afaik)相比,它在Linux上更受支持。虽然我是CURL的忠实粉丝,但碰巧的是,
    wget
    在这类工作中更受欢迎。

    或者。。。您可以编写一个打算在CLI上运行的PHP脚本,并将cron任务直接分配给PHP文件:

    php -f /path/to/my/file.php
    
    下面介绍如何在CLI上使用PHP。代码点火器有两个功能


    这就是说,有一种方法可以确定请求是否有进展。(除了保存请求的输出)CodeIgniter配备了优秀的日志记录方法。您可以将application/config/config.php中的
    $config['log\u threshold']
    设置为类似
    3
    的值。在两个浏览器中运行请求,然后在CLI中运行一次。然后在应用程序/日志文件夹中查找当天的日志文件。在文件中查找您请求的URL。应该有两个地方记录它。如果日志文件中的请求数少于您的请求数,那么您就知道CURL有问题。否则,您就会知道应用程序有问题。

    我的控制器将一些信息插入数据库,卷曲不会显示错误,但只有在浏览器上直接运行控制器时,插入才会发生。不需要身份验证。
    curl
    不显示错误;它是否显示控制器产生的输出?(如果有,也就是说。如果没有,您可能应该临时添加一些进行调试。)比如,如果您执行
    curlhttp://www.google.com/
    ,您将看到
    curl
    应该向您显示检索到的网页内容。您始终可以尝试wget而不是curl。这假设启用了
    allow\u url\u fopen
    ,这通常是关闭的。使用PHP的CURL来代替……哦,糟糕,你最终还是使用了CURL;)