2013-05-01

CentOS 6.4 (64位元) 設定 Moodle cron.php 自動執行排程

moodle 網站中有許多不同的任務都需要在不同的時間區間定期的執行
而這些任務都被寫在 cron.php 這個檔案裡
所以必須讓系統定期的執行 cron.php 這個檔案,以維持 moodle 網站能正常運作
請一定要做這個步驟!

如果不確定系統中是否有排程套件(通常都會有),請先安裝
yum install cronie -y
查看是哪個使用者在執行 apache 的網頁服務
grep -i user /etc/httpd/conf/httpd.conf
找到下列這段文字
# If you wish httpd to run as a different user or group, you must run
# User/Group: The name (or #number) of the user/group to run httpd as.
#  . On SCO (ODT 3) use "User nouser" and "Group nogroup".
#    suggested workaround is to create a user www and use that user.
User apache
目前 httpd 的 User 為 apache,這會影響待會要幫哪個使用者建立排程

接著幫使用者 apache 建立排程
crontab -u apache -e
-u:幫使用者建立或移除 crontab 的工作排程
-e:編輯 crontab 工作內容
詳細排程操作請參考鳥哥的私房菜:循環執行的例行工作排程

按『i』進入編輯,輸入下列文字,每隔 15 分鐘執行 cron.php 這個檔案
*請先確認自己moodle網頁資料存放在系統中的位置,以我為例是存放在『/var/www/html/moodle』
# Run the cron every 15 minutes
*/15 * * * * /usr/bin/php  /var/www/html/moodle/admin/cli/cron.php
存檔離開

重啟排程
service crond restart
查看 apache 使用者的排程是否已經正確寫入
crontab -u apache -l
這樣就完成讓系統定期執行 cron.php 的設定了

查看 cron 的 log 檔
less /var/log/cron
*空白鍵、PageDown:下一頁、PageUp:上一頁、q:離開

可以看到指令每 15 分鐘會執行一次
May  2 13:15:01 localhost CROND[3046]: (apache) CMD (/usr/bin/php  /var/www/html/moodle/admin/cli/cron.php >/dev/null)
May  2 13:30:01 localhost CROND[3078]: (apache) CMD (/usr/bin/php  /var/www/html/moodle/admin/cli/cron.php >/dev/null)
May  2 13:45:01 localhost CROND[3112]: (apache) CMD (/usr/bin/php  /var/www/html/moodle/admin/cli/cron.php >/dev/null)
May  2 14:00:01 localhost CROND[3148]: (apache) CMD (/usr/bin/php  /var/www/html/moodle/admin/cli/cron.php >/dev/null)

參考文章:Feiticeir0's BlogMoodleDocs

沒有留言 :

張貼留言