iT邦幫忙

0

Cron Jobs 固定執行 php

我是使用 bluehost的 Cron Jobs服務

但是這樣做沒有用
請問正確應該怎麼設置Cron Jobs?
想讓他固定執行某php檔案

1 個回答

1
weiclin
iT邦高手 4 級 ‧ 2016-12-13 13:13:46
最佳解答

我沒用過 bluehost, 所以只給你一個大概的方向。從你的設定來看, /public_html/admin_notification.php 八成不是可執行檔, 所以系統不知道要怎麼執行它, 底下兩個方法都試試看:

  1. 最前面加上 php, 代表你要用 php 執行它, 變成:
    php /public_html/admin_notification.php
  2. 或是把它弄成正式的 shell script
    • admin_notification.php 第一行加上這個 #!/usr/bin/env php, 類似這樣:
    #!/usr/bin/env php
    <?php
    .....你的程式
    
    • 然後從 ftp 給 admin_notification.php 加上 rwx 的 x 權限, 就是可執行的意思

如果上面兩種方式都失敗了, 你也可以考慮用 webcron 服務, 例如 https://www.easycron.com/
他的運作方式是定時用 http 去讀取你給的網址, 所以你要填上完整的網址。

另外, 寫 shell script 跟寫網頁不太一樣, 我建議先用下列程式驗證是否有被執行:

#!/usr/bin/env php
<?php
file_put_contents(__DIR__ . "/test.txt", "cron test");

只要出現了 test.txt, 就是 crontab 有成功執行了。但是記得要讓這個資料夾是可寫入的。

看更多先前的回應...收起先前的回應...
hon2006 iT邦大師 1 級 ‧ 2016-12-13 13:19:37 檢舉
小松 Nana iT邦研究生 3 級 ‧ 2016-12-13 13:49:43 檢舉

假設是跟北美買的虛擬主機,是否需要依照當地時間?如何改成本地時間?

weiclin iT邦高手 4 級 ‧ 2016-12-13 13:54:30 檢舉

crontab 是依照主機時間, 我想應該沒辦法改

hon2006 iT邦大師 1 級 ‧ 2016-12-13 13:55:15 檢舉
hon2006 iT邦大師 1 級 ‧ 2016-12-13 13:57:27 檢舉
weiclin iT邦高手 4 級 ‧ 2016-12-13 14:05:06 檢舉

樓上那是改 php 的顯示時間, 但我想他問的是 crontab 執行的時間

小松 Nana iT邦研究生 3 級 ‧ 2016-12-13 14:29:23 檢舉

我設定 1 * * * * 這是每分鐘執行沒錯吧?我用了兩種

php /home/***/public_html/admin_notification.php
php /public_html/admin_notification.php

這兩種都沒有作用耶

小松 Nana iT邦研究生 3 級 ‧ 2016-12-13 14:29:48 檢舉

確定 admin_notification.php 直接訪問沒問題

weiclin iT邦高手 4 級 ‧ 2016-12-13 14:53:02 檢舉

那樣是每個小時第 1 分鐘執行, 每分鐘的話應該是 */1 * * * *

小松 Nana iT邦研究生 3 級 ‧ 2016-12-15 11:41:13 檢舉

感謝

我要發表回答

立即登入回答