Php
Debain cron 幫助訪問 URL
文件說我需要:
如果您的主機帳戶在 LINUX/UNIX 系統上,您可以設置 CRON 作業以指向此 URL http://yourUrlToThisScript.com/cron.php?cron=do&d=31
儘管這是他們提供的有關如何設置 cron 的唯一資訊。我知道腳本工作正常,因為當我通過瀏覽器訪問 URL 時,我會收到電子郵件。
- 我查看了幾個範例並嘗試閱讀手冊:執行 PHP 文件並提出:
*/1 * * * * /usr/bin/php -q /var/www/website/public/domain-manager/cron.php cron=do&d=31 >/dev/nul
雖然這不起作用並且我沒有收到任何電子郵件或錯誤?
- 如何保護此文件
cron.php
以使其無法從瀏覽器執行?儘管對於單個文件而不是目錄,但可能類似於此答案。
呼叫 PHP 腳本的方式,尤其是處理給定參數的方式略有不同。該文件是關於 HTTP GET 請求的,您正在執行 PHP 腳本的命令行呼叫。
通過命令行執行的 HTTP GET 請求範例:
wget -q -O - "http://localhost/domain-manager/cron.php?cron=do&d=31"
通過命令行執行 PHP 腳本的範例:
php -f /var/www/website/public/domain-manager/cron.php cron=do d=31
主要區別在於 PHP 如何獲取參數。對於 HTTP 請求,PHP 將使用 Apache 或您正在使用的任何 Web 伺服器的介面,並在 $ _GET array. For the command line call PHP must use the $ argv 數組。
如果文件需要 HTTP 呼叫,我會使用它,即使命令行呼叫出於性能原因會更好並且沒有此類限制。
對您的 crontab 的建議:
*/2 * * * * wget -q -O - "http://localhost/domain-manager/cron.php?cron=do&d=31" > /dev/null 2>&1
保護此文件免受外部請求的建議:/var/www/website/public/domain-manager/.htaccess 的內容(在同一目錄中)
<files cron.php> order deny,allow deny from all allow from localhost </files>