如何使用 crontab 執行 php 檔案?

如何使用 crontab 執行 php 檔案?

我在 ubuntu 上安裝了 lamp,我想知道每天凌晨 2 點我會輸入什麼來啟動一個 php 頁面。我仍在研究 crontab 是如何運作的,所以我無法測試哪一個有效。

那麼,如果我有這樣的東西,我該如何將參數放入 php 頁面呢?

30 18 * * * http://myip/mypage.php?action=do_something

我會這樣輸入還是使用絕對路徑?像這樣

30 18 * * * /var/www/mypage.php?action=do_something

答案1

您肯定想使用方法一。那是

30 18 * * * wget -O - -q -t http://myip/mypage.php?action=do_something

因為這將使 wget(檔案下載程式)透過通常的網路路徑取得檔案。這意味著當 apache 處理請求時,它將導致 php 解釋該腳本,並且您將執行該腳本。

我相當確定也可以使用方法 2 來運行此程序,方法是調用 php-cli 應用程式並將腳本的路徑作為參數傳遞,但在大多數情況下,這不會產生任何真正的區別。

答案2

您在 cron 中放置的命令取決於 php 檔案的實際編寫方式。如果該檔案是網頁伺服器下的腳本,那麼如上所述的 wget 就可以正常運作。請注意,上面的命令中 -O 表示輸出將寫入文件,-q 表示安靜,-t 表示限制重試次數。

但是如果php腳本是shell腳本,wget就沒用了。在這種情況下,該檔案必須是可執行的,並且您的 cron 命令將如下所示:

30 18 * * * /usr/bin/env php /path/to/script

相關內容