2015-04-24 388 views
1

我在我的crontabcrontab的不運行PHP腳本正確

0 * * * * root cd /home/domain/public_html/webcrawler && php cron1.php 
40 * * * * root cd /home/domain/public_html/webcrawler && php cron2.php 

的事情是他們沒有設置運行下面的命令。我設置的命令中是否有明顯的錯誤?從ssh運行或在瀏覽器中加載時,php腳本運行良好。一開始我就嘗試過和沒有根。

+2

嘗試使用PHP的完整路徑。 PHP可執行文件可能不在用於運行cron的用戶的路徑中。 –

+0

你可以嘗試絕對路徑引用PHP嗎?/usr/bin/php cron1.php –

+0

@ye,你確定嗎? –

回答

4

你應該調用PHP cron作業的完整路徑(注意,你的PHP可以在不同的位置)

0 * * * * /usr/bin/php /path/to/your/script.php 
+0

通常'cd'會改變你的目錄。當與'&&'結合使用時,以下命令將從'cd''d目錄運行。 –

+0

不要忘了引用PHP的路徑!/usr/bin/php :) –

1

更改了&&;念想

0 * * * * root cd /home/domain/public_html/webcrawler; php cron1.php 

或從絕對路徑執行它

0 * * * * root php /home/domain/public_html/webcrawler/cron1.php 

W使用絕對路徑母雞,你可以強迫你的cron腳本的當前工作目錄通過執行

chdir(__DIR__); //or chdir(dirname(__FILE__)); 

您也可以將PHP家當添加到頂部的你cron.php文件(你的PHP程序可能有不同的路徑)

#!/usr/bin/php 

http://php.net/manual/en/features.commandline.usage.php

然後,你可以無需參考使用PHP二進制位置執行腳本

0 * * * * root /home/domain/public_html/webcrawler/cron1.php