簡體   English   中英

如何編寫PHP cron腳本?

[英]How can I write a PHP cron script?

很抱歉,這是一個愚蠢的問題,但實際上我沒有任何線索。

我編寫了這個應用程序,用於將文件從客戶端PC壓縮和移動到主PC。
它可以很好地用作網頁。 這是唐,幾乎沒有指導,也沒有規范文檔。
因此,按照命運的安排,這應該是一項計划工作,可以通過致電

*****runScript.php

因此,我不知道執行將以或應以哪個順序進行。

我使用了2個AJAX調用來調用腳本中的方法,但是僅將文件作為腳本運行並沒有什么不同。

誰能指導我?

例如,是否有將首先調用的MAIN方法。 如果是這樣,那么我可以從那里指導腳本。

更新

答案確實可以幫助您解決所有問題,但是php文件將如何受到影響? @Ole Haugset提到我應該對其進行調整,因此請使用$_GET vars。 例如,在腳本中已經通過if ($_GET["argument"]=='runScript'){}了此操作。

因此,將runScript附加到腳本調用應該可以正常工作嗎?

例如* * * * * php /path/to/file/runScript.php runScript

將PHP腳本作為cron作業運行沒有問題。 您需要做的是在文件系統中提供腳本文件的完整路徑,然后使用php命令告訴Linux使用什么程序運行文件。

例:

*/5 * * * * php /var/www/vhosts/statistikk/cron/getLastArticleFromIntranet.cron.php >> /var/www/vhosts/statistikk/cron/LOG.txt 2> /dev/null

該腳本將在一周的所有天中每5分鍾運行一次。 不管PHP腳本回顯/打印出什么內容,都將存儲到LOG.txt文件中,以便我可以監視腳本事件。

在將命令放入cronjobs中之前,請嘗試僅在外殼中運行該命令以確保其正常工作。

但是,您說通常使用AJAX調用來調用此腳本。 這將與cronjob無關。 我假設您使用AJAX傳遞腳本需要的一些$ _POST元素。 因此,您需要做的就是要么使腳本也允許$argv參數,然后將它們添加到crontab作業中,要么干脆編寫一個不需要任何給定參數的腳本即可運行。

如果要修改腳本以支持$argv參數,請遵循Stack Overflow中已經存在的關於向作業添加參數的答案:

如何在cron選項卡中使用參數運行php url

編輯:

我只想從下面的答案中添加到我的答案中。 要在Linux中編輯crontab作業,您只需使用命令crontab -e

這是需要填寫的每個必需參數的描述。

*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of        month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

要在Linux中添加cronjob,請執行以下操作:

#crontab -e如果vi是您的編輯器,請按i輸入文本,按esc退出。 使用:w保存更改,並使用:q退出。 如果nano是您選擇的編輯器,則使用strg + o進行保存,使用str + x進行關閉。

無論如何,將以下行添加到文件的正文中:* / 5 * * * * php runScript.php

每隔5分鍾就會調用一次。

* * * * * php /path/to/file/runScript.php
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday is 0 or 7)
│ │ │ └────── Month (1-12)
│ │ └──────── Day (1-31)
│ └────────── Hour (0-23)
└──────────── Minute (0-59) 

應該就是這樣:)

從cron作業運行PHP腳本的常用方法是使用命令行程序,例如curl或wget。 例如,cron作業運行類似於以下命令的命令:

curl http://*****.com/script.php

在此命令中,curl檢索網頁,然后該網頁運行PHP腳本。

但是,有一種更好的方法可以通過cron作業在您的網站上運行PHP腳本。 您可以使用PHP命令行解釋器直接運行腳本。 這種方法同樣有效,通常更快。 以下命令顯示了如何使用PHP命令行解釋器運行腳本:

/usr/local/bin/php -q /home/username/public_html/script.php

在此示例中,PHP命令行解釋器運行script.php文件。 -q選項啟用安靜模式,該模式可防止顯示HTTP標頭。

根據PHP腳本中的代碼,僅當從特定目錄中調用時,它才能正確運行。 例如,如果腳本使用相對路徑包括文件,則只有從正確的目錄中調用腳本時,腳本才會運行。 以下命令顯示如何從特定目錄調用PHP腳本:

cd /home/username/public_html/; /usr/local/bin/php -q script.php

如果您的腳本需要特殊的配置選項,則可以使用自定義php.ini文件。 -c選項允許您使用自定義php.ini文件調用PHP script

/usr/local/bin/php -c /home/username/php.ini /home/username/public_html/script.php

單擊此處以了解有關Cron PHP Script示例的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM