很多人在linux下使用crontab實現PHP執行定時任務卻未能成功,不能生成緩存。本文就linux下使用crontab實現定時PHP計劃任務失敗的原因做一分析。
一般我們linux定時執行php代碼例如:
*/5 * * * * /usr/local/php/bin/php /home/wwwroot/1.php
其實這樣是可以執行php代碼的。
但是為什麼很多朋友在1.php寫的生成一個緩存文件沒有生成呢?
這個要涉及到crontab執行php的相對路徑問題.
注意在執行文件中,有包含文件的,如:
include_once'./mysql.php';
當php代碼中,用的是相對路徑時,只有進入到那個目錄下,
然後執行/usr/local/php/bin/php /home/wwwroot/1.php 才能引用mysql.php生效。
解決方法如下:
*/10 * * * * cd /home/wwwroot && /usr/local/php/bin/php /home/wwwroot/1.php
同時也這樣緩存才能生成在 /home/wwwroot。此處需要特別注意!
這是大部分寫的所謂linux定時執行php沒有提到的,也最容易產生誤區的。
當然方法還有很多,還可以設置環境變量之類的。這個只是一個簡單的方法。