
阿舍一直都是用那個窮人的 Cron 來跑的 ( Poormanscron 模組 ),其實,阿舍也不想當窮人,阿舍也想直接用 Hosting 上的 Cron 來跑,可以完全在背景跑,而且又準時,只是之前阿舍看的文件都說要有 wget 這支程式才行用的,阿舍不確定 Hosting 有沒有提供,所以就得用 Poormanscron 模組來擋一擋哩 !! 但是,阿舍還是認為,如果能夠用作業系統來跑 Cron.php, 應該會卡好一點... ( 純屬個人觀點 )。
阿舍把這件事一直都擺著,沒有特別去找有沒有別的解決方法,直到前幾天阿舍在爬文找資料時才又不小心想起來,所以就順道來研究研究一下。
一般來說,各位大德大概可以查的到設定方法,大概就是用 wget、lnyx 及 curl 等三支程式,配合下面所的語法,用讀取網頁的方式來達到執行 cron.php 的方式。
/usr/bin/wget -O - -q -t 1 http://drupal.soa.tw/cron.php
/usr/bin/lynx -source http://drupal.soa.tw/cron.php
curl --silent --compressed http://drupal.soa.tw/cron.php
阿舍的 Hosting 是用 CPanel 的管理界面,所以要從「Advanced」>「Cron Jobs」>「Standard」裡進去設定( 為什麼不選用 Advanced(Linux Style) 來設定哩 ? .. 喔 ! 因為阿舍功力比較差,不會算前面那個星星要怎麼填才會是正確的,所以就只好用 Standard,因為時間的週期只要用點的就可以了....呵呵 !! 而且,在 Standard 的設定好的 cron job,在 Advanced 裡也是會出現的....),阿舍就先試了用 curl 的方法,給它每個小時來執行一次,然後每次執行都寄出郵件通知。
設定好之後就該去喝口咖啡了,慢慢等待光陰的飛逝.......( 小時之後.....),先來去檢查下信箱,果然有個叫 "Cron Daemon" 的傢伙寄信給我,打開來看...怎麼會叫做 /bin/sh: /usr/bin/curl: Permission denied 的訊呢 ? 看來這招是不能用了,那就再換換用 wget 好了,結果還是出現一樣的訊息,所以阿舍就不去試 lynx 了,結果大概也是一樣吧 !....=_____=!!
所以阿舍就再去找找看有沒有別的方法可用,呵呵 !! 有大德說直接用 PHP 來跑 Cron.php 也是可以的,那阿舍就來試試看哩 ! 設定的語法如下:
php /home/drupalsoa/public_html/cron.php
然後就再去等待時光的流逝,再來去看信箱,一樣是 Cron Daemon 送來的,這次看來是正常了,那再去 「管理」>「日誌」>「最近日誌項目」(/admin/logs/watchdog) 裡看,果然是有一個叫做 "Cron 執行完畢。" 的記錄,這個和用 Poormanscron 模組所產生的訊息 "Cron run completed (via poormanscron)."是不一樣的,所以,可以確阿舍的設定有成功了吔 !!
既然設定成功了,那麼 Poormanscron 模組就可以功成身退了,就來去把它給停用掉,可是....怎麼停用之後,阿舍新增的文件在「送出」之後,怎麼都會出現 "找不到網頁" 的訊息,怎麼會這樣 ? 看來這樣設定還是有問題,只好再試試別的方法哩....。
最後,阿舍終於找到下面這個方式可以來順利執行 cron.php,其實和上一個用 php 的方式很像,只是分成二個動作來執行,並且將 cron.php 的輸出給導走了,可以用的原因為何,阿舍不是很清楚 ( ....應該說根本沒搞懂哩....),但是這樣用之後,就真的可以用,而且沒問題了哩......呵呵 !!
cd '/home/drupalsoa/public_html/' ; php -q 'cron.php' > /dev/null 2>&1;
註:
1. '/home/drupalsoa/public_html/' => 這個是指各位大德的 cron.php 在 Hosting 上的路徑。
2.上面這串指令是加上時間後,放到 /etc/crontab 裡去的..
- 增加新的回應
- 瀏覽次數: 4714

有幸用着舒服的cron跑着……
我还是喜欢*号的设定 省事
>_< 我是因为FEEDAPI无法由POORMANSCRON驱动才转投正统CRON门下的。