簡體   English   中英

使用curl來設定網址

[英]using curl to cronjob a url

我在MediaTemple上托管了一個關於php-Codeigniter的應用程序,並且我想讓cron作業運行一個控制器,支持人員告訴我使用我嘗試使用的CURL,但沒有成功,例如:

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

我的控制器向數據庫中插入了一些信息,curl不會顯示錯誤,但是只有當我直接在瀏覽器上運行控制器時,插入操作才會發生。 無需身份驗證。

任何想法?

謝謝

在人們真正幫助您之前,您需要提供有關正在發生的事情的更多信息。 請參閱此有用的指南來提問

一些起點:

  1. 從命令行運行該命令會發生什么?
  2. 在Web瀏覽器中轉到控制器URL時會發生什么?
  3. 您的“沒有成功”的確切含義是什么? 您正在尋找成功的標志,您正在觀察什么?
  4. 您的控制器需要身份驗證嗎? 如果是這樣,您將需要告訴curl如何提供它。 如果沒有,請注意,您正在允許Internet上的任何人啟動此過程,這可能會導致拒絕服務攻擊或其他安全問題。

或者...您可以只編寫旨在在CLI上運行的PHP腳本,然后將cron任務直接分配給php文件:

php -f /path/to/my/file.php

以下是有關在CLI上使用PHP的一些信息 使用CodeIgniter 可以執行此操作

就是說,有一種方法可以確定請求是否到了任何地方。 (除了保存請求的輸出外)CodeIgniter配備了出色的日志記錄方法。 您可以將application / config / config.php中$config['log_threshold']設置$config['log_threshold'] 3 在兩個瀏覽器中運行請求,然后在CLI中運行一次。 然后在您的application / logs文件夾中查找當天的日志文件。 在文件中找到您要的URL。 應該在兩個地方記錄它。 如果日志文件中的請求數量少於您所請求的數量,則說明CURL出了點問題。 否則,您知道該應用程序有問題。

只需創建一個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;

?>

@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在此類工作中更受歡迎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM