看板 Knuckles_note
作者 標題 [PHP] 使用crontab工作排程定時執行php程式
時間 2010年01月28日 Thu. AM 03:47:34
安裝 php 執行檔
ubuntu 使用
$ sudo apt-get install php5-cli
centos 使用
$ sudo yum install php-cli
找出 php 執行檔的位置
$ which php
/usr/bin/php
參考: http://www.hkcode.com/programming/414
要用 crontab 自動執行 php 程式,可以這樣做:
◆ 方法一
1. 在 php 程式的第一行加入:
#!/usr/bin/php -q
2. 將 php 程式給予可執行權限:
chmod +x test.php
3. 執行 crontab -e,然後加入以下內容:
00 00 * * * /mypath/test.php >> /mypath/test.log
以上語法會在每天的零時零分執行 /mypath/test.php
執行結果加進 /mypath/test.log
*/10 * * * * /mypath/test.php >> /mypath/test.log
以上語法會在每十分鐘執行一次 /mypath/test.php
◆ 方法二
另一個方法是不用在 php 程式檔的第一行加入 "#!/usr/bin/php -q",不用執行權限
可以省略第一步及第二步,
直接執行 crontab -e,並輸入以下內容:
00 00 * * * /usr/bin/php -q /mypath/test.php >> /mypath/test.log
這個方法的結果跟方法一的結果相同。
另外要注意用這個方法執行的PHP程式中不能使用php檔案的相對路徑
因為目前的工作目錄被設為 執行檔 /usr/bin/php 的路徑了
可將 crontab 的指令先加上 cd /mypath;
00 00 * * * cd /mypath; /usr/bin/php -q /mypath/test.php >> /mypath/test.log
或是在 php程式中使用 $dir = dirname(__FILE__); 取得此php檔的絕對路徑
要讀取其他檔案時,前面再加上 $dir
像這樣: require($dir."/include/function.php");
開啟 error_log
修改 /etc/php.ini
尋找 ;error_log = php_errors.log
改成 error_log = /var/log/php_errors.log
這樣使用php cli執行時產生的錯誤記錄就會被存在 /var/log/php_errors.log
--
※ 來源: DISP BBS (http://disp.twbbs.org)
※ 作者: Knuckles 來自: 114.43.113.83 時間: 2010-01-28 03:47:34
※ 編輯: Knuckles 時間: 2014-08-27 03:25:30
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 6221
回列表(←)
分享