2012-01-04 73 views
4

我需要在計劃的時間每天運行一個php腳本來更新數據庫中的某些字段併發送自動發送的電子郵件。我如何做到這一點?如何在預定時間運行PHP腳本

是否可以在XAMP服務器中編寫一些服務以便在計劃的時間每天運行腳本?我不知道如何更新數據庫並在預定時間自動發送電子郵件。任何人都可以分享一些想法或概念嗎?

我使用在Linux服務器上運行的PHP和MySQL。

回答

3

您應該使用Cron工作來完成它。查看the Wikipedia page上的示例。

Cron作業應使用運行必要任務的可執行文件php調用腳本。

0

在Linux中,我們可以創建.sh文件,並且可以給出一個特定的時間來運行,稱爲cron作業。 所以SO應該使用這個方法創建一個shell文件並給它一個時間段。 你應該爲linux專家提供幫助。

使用以下命令:Cron Job

2

只需創建一個具有所需作業的腳本,通過點擊瀏覽器中的URL進行測試,一旦你確定它的作品的權利。複製該網址,並添加任何時候你想運行

php ABSOLUTE_URL_TO_SCRIPT >> logfile 

日誌文件是可選的一個Cronjob

然後安排這個命令在運行。但它會讓你有機會看到發生了什麼。

例如,如果你想運行腳本每4小時,並假設你的腳本是http://localhost/work/scripty.php,並假設你的HTTP根是/ var/WWW,

你會在終端中運行「crontab -e命令」並添加以下行:

* */4 * * * php /var/www/work/scripty.php 

如果您需要更多信息只是評論我會更新答案。

+0

這將運行工作每4分鐘,而不是小時。當你可以直接運行腳本時,爲什麼要使用lynx呢? – 2012-01-04 06:57:33

+0

感謝您的糾正和l is是無痛的,因爲在php cli中,即使您只是運行腳本,相關的php包括也會搞砸,除非您明確地將當前目錄更改爲腳本。我希望他的腳本在沒有任何修改的情況下運行:) – BlackDivine 2012-01-04 07:11:28

+0

如果'include_path'設置正確,或者您使用絕對路徑(當前文件的完整路徑總是在__FILE__中),應該沒有問題。使用l is是不必要的資源浪費;它包括l,,網絡服務器和PHP。直接運行腳本包括PHP。 – 2012-01-04 07:17:33

0

PHP不能自行運行腳本,因爲php沒有像python這樣的守護進程! 所以你必須採取操作系統的幫助來調用你的自定義腳本。

例如在Linux中: (example.sh) 出口USE_PHP = PHP CD $ SCRIPT_ROOTDIR $ USE_PHP -f cronfile.php服務= 「checkdatabase」 (服務傳遞給你的cronfile參數)。

有關設置cron作業,看看這個鏈接 http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/