我尝试使用 crontab -e
在 Centos 中运行 cronjob ,但我无法弄清楚作业何时运行,为什么它没有找到任何参数为 -app
在 ShellDispatcher 中。我读过了
Cake PHP Cronjobs并且有:
.bashrc
并添加了 export PATH="$PATH:/home/phonekar/public_html/app/Console"
crontab -e
向我的用户帐户添加了一个 cronjob 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
壳工程。任何澄清都会有所帮助。
最佳答案
警告:array_splice() 期望参数 1 是数组,在 ShellDispatcher.php 中给出 null
我使用 cakephp 2.3.8 的控制台遇到了这个错误,但你也可以在其他版本上遇到这个问题。
解决办法是编辑(看不到命令行参数)
app/Console/cake 并上线:
exec php -q "$CONSOLE"/cake.php -working "$APP" "$@"
-q 后添加
-d register_argc_argv=1
所以这条线看起来像:
exec php -q -d register_argc_argv=1 "$CONSOLE"/cake.php -working "$APP" "$@"
引用:
http://www.ecommy.com/programming/cakephp/warning-array_splice-expects-parameter-1-to-be-array-null-given-in-shelldispatcher-php
关于php - Centos Cronjob 中的 Cakephp ShellDispatcher 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17851294/