我有一個應用程序在php MediaTemple託管的php-Codeigniter,我想有一個cron作業運行一個控制器,支持告訴我使用CURL我嘗試使用沒有任何成功,例如:使用捲曲cronjob一個url
curl http://mydomain.com/admin/action/get
我的控制器向數據庫中插入一些信息,curl不顯示錯誤,但只有當我直接在瀏覽器上運行控制器時,插入纔會發生。不需要授權。
有什麼想法嗎?
謝謝
我有一個應用程序在php MediaTemple託管的php-Codeigniter,我想有一個cron作業運行一個控制器,支持告訴我使用CURL我嘗試使用沒有任何成功,例如:使用捲曲cronjob一個url
curl http://mydomain.com/admin/action/get
我的控制器向數據庫中插入一些信息,curl不顯示錯誤,但只有當我直接在瀏覽器上運行控制器時,插入纔會發生。不需要授權。
有什麼想法嗎?
謝謝
您需要提供更多關於人們能真正幫助您之前發生的事情的信息。請參閱此helpful guide to asking questions。
一些出發點:
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;
?>
假定'allow_url_fopen'已打開,通常關閉。使用PHP的CURL代替....哦,哎呀,你最終使用CURL;) – Christian 2010-11-24 23:16:55
@seth - 我不是在Linux中,從而不能真正測試了這一點,但你的問題是,無論是捲曲本身沒有安裝或捲曲需要某些特定的交換機工作。
如果您仍然希望它能夠正常工作,請先通過服務器的SSH(在Windows上使用Putty)或通過編寫腳本來測試它;
<?php
$code=system('curl --help');
echo '<br><br> Exit Code: '.$code;
?>
不是說如果它寫入的任何其他錯誤代碼都不是0,那麼您的CURL有問題。
另一方面,您可以使用wget
來代替。它在Linux上比CURL(afaik)更受支持。儘管我是CURL的忠實粉絲,但恰巧wget
在這類作品中更受歡迎。
或者......你可以只寫一個旨在在命令行直接運行和分配的cron任務到PHP文件中的PHP腳本:
php -f /path/to/my/file.php
繼承人some information使用的CLI PHP。 CodeIgniter有ways to do this。
也就是說,有一種方法可以確定請求是否在任何地方。(除了保存請求的輸出外)CodeIgniter配備了出色的日誌記錄方法。您可以將$config['log_threshold']
設置爲application/config/config.php,如3
。在瀏覽器中運行請求,然後在CLI中運行一次。然後在您的應用程序/日誌文件夾中查找當天的日誌文件。在文件中查找您請求的網址。應該有兩個地方登錄。如果少於您在日誌文件中發出的請求數量,那麼您知道CURL有問題。否則,你知道應用程序出了問題。
您可以隨時嘗試wget而不是捲曲。 – 2009-09-11 00:49:29