2013-07-25 117 views
0

我試圖在Centos中運行一個cronjob與crontab -e,但我無法弄清楚什麼時候作業運行爲什麼它在ShellDispatcher中找不到任何參數爲-app。我已閱讀 Cake PHP Cronjobs和有:在Centos中Cakephp ShellDispatcher錯誤Cronjob

  1. 編輯.bashrc並添加export PATH="$PATH:/home/phonekar/public_html/app/Console"
  2. 添加一個cronjob我useraccount與crontab -e

    53 23 * * * /home/useraccount/public_html/lib/Cake/Console/cakeshell Tracking -cli "/usr/bin" -console "/home/useraccount/public_html/lib/Cake/Console" -app "/home/useraccount/public_html/app" >> /home/useraccount/public_html/tracking.log 2>&1 
    

手動運行此命令工作正常,但是當我讓作業運行我得到這個錯誤在一個循環:

PHP Warning: array_search() expects parameter 2 to be array, null given in /home/useraccount/public_html/lib/Cake/Console/ShellDispatcher.php on line 320 
PHP Warning: array_splice() expects parameter 1 to be array, null given in /home/useraccount/public_html/lib/Cake/Console/ShellDispatcher.php on line 324 

我看着文件,它似乎是期待-app值,而是得到一個null值傳遞給它。我還驗證了Tracking shell的工作原理。任何澄清都將有所幫助。

回答

2

警告:array_splice()預計參數1是陣列,在ShellDispatcher.php

空給我打了使用CakePHP 2.3.8的控制檯這個錯誤,但你可能會遇到其他版本這個問題爲好。 的解決方法是編輯(命令行參數不可見) 應用程序/控制檯/蛋糕就行了:

exec php -q "$CONSOLE"/cake.php -working "$APP" "[email protected]" 

後-q添加

-d register_argc_argv=1 

太行看起來像:

exec php -q -d register_argc_argv=1 "$CONSOLE"/cake.php -working "$APP" "[email protected]" 

裁判: http://www.ecommy.com/programming/cakephp/warning-array_splice-expects-parameter-1-to-be-array-null-given-in-shelldispatcher-php