2015-05-14 68 views
0

我使用PHP5製作website,這裏是我的設置:該網站託管在運行Raspbian(Debian)操作系統的Raspberry Pi上。我使用Nginx作爲php5-fpm 5.4.39的web服務器。我的網站是使用Atomik Framework製作的,我的腳本是使用ConsoleKit插件製作的(這有點特殊,但問題可能不是)。使用crontab執行PHP腳本時出現錯誤

所以我有我的腳本,我用php /path/to/index.php <command>運行它。它在我的shell中使用它的時候非常好用,但是當我嘗試讓cron執行它時,它會打印出一個錯誤,說明$_SERVER['REQUEST_METHOD']沒有被定義,但這是我可以通過強制該變量解決某個值的問題。之後,什麼都沒有發生,我不知道該怎麼辦。我嘗試了一切:不同的命令,在外部bash腳本中運行命令,使用PHP she-bang,它們都不起作用。 有沒有人有什麼可能會導致此問題的想法?也許一個cron可以運行的不同命令可以解決這個問題?事實上,「沒有用戶」(我猜我不是Linux專家)正在運行該腳本的問題?

+0

你包括任何其他文件,'require_once'或'include_once'?因爲從cron運行這些路徑可能會有問題 – RightClick

回答

0

你可能會引發通過HTTP這樣的PHP代碼在你的cron:

30 11 * * * /usr/bin/wget http://www.example.com/cron.php 
+0

是的,但腳本無法通過網絡訪問,所以沒有人可以運行它。這實際上是一個網站之外的腳本,可以隱藏數據庫操作。 – GilDev

0

要調試的問題,您將需要獲得訪問日誌。

*/1 * * * * full_path_to_your_php_script.php >> full_path_to_your_log_file.log 2>&1 

然後檢查full_path_to_your_log_file.log文件

+0

是的,我已經嘗試過。當我將'$ _SERVER ['REQUEST_METHOD']'變量強制爲'GET'時,我什麼也沒有。當我沒有設置這個變量時,Atomik Framework中有一堆錯誤,說這個變量沒有設置,腳本無法繼續執行(儘管我在執行shell腳本時沒有遇到這些錯誤,該變量甚至沒有設置!真奇怪......)。 – GilDev