2014-01-17 2 views
0

Я нашел несколько ответов на эту тему, но никто мне не помог.CakePhp 2.4 "Ошибка: класс оболочки HelloShell не найден." Пути беспорядок?

Так вот, ситуация. Я работаю в системе Ubuntu и моя установка по умолчанию CakePHP 2.4.4 под:

/var/www/myproject/ 
    /gkm-be (this is my app) 
    /lib/Cake 

Так все пути здесь по умолчанию и приложение gkm_be в целом работает нормально.

В моей .bashrc У меня есть следующие настройки:

PATH=$PATH:$HOME/bin 
export PATH="$PATH:/var/www/myproject/lib/Cake/Console/" 

Когда я открываю новую оболочку и перейдите в каталог/вар/WWW/MyProject/ГКМ-быть и введите консоль/торт I получить ошибку Баша: Console/торт: Файл или каталог не найден после кд/вар/WWW/MyProject/ГОГО-быть/Console/ , если я введу торт, то я получаю основной торт с следующим выводом

Welcome to CakePHP v2.4.4 Console 
--------------------------------------------------------------- 
App : Console 
Path: /var/www/myproject/gkm-be/Console/ 
--------------------------------------------------------------- 
Current Paths: 

-app: Console 
-working: /var/www/myproject/gkm-be/Console 
-root: /var/www/myproject/gkm-be 
-core: /var/www/myproject/lib 

Changing Paths: 

Your working path should be the same as your application path. To change your path use the '-app' param. 
Example: -app relative/path/to/myapp or -app /absolute/path/to/myapp 

Available Shells: 

[CORE] acl, api, bake, command_list, console, i18n, schema, server, test, testsuite, upgrade 

Примечание пути для -app и -рабочая

Не говоря уже, конечно, что мой HelloShell, расположенный под

/var/www/myproject/gkm-be/Console/Command/HelloShell.php 

не является ни в списке не может быть названо.

Были ли у меня неправильные пути? Кто-нибудь может заметить ошибку?

Каламити Джейн

PS: Код из оболочки:

class HelloShell extends AppShell 
{ 

    public function main() 
    { 
     date_default_timezone_set('Europe/Berlin'); 
     $this->out('Hello world.'); 
    } 

} 
+0

Вы должны всегда запускать снаряды относительные из приложения реж (/ gkm-be) - и не Консоль! '/.../gkm-be>Console/cake hello' – mark

ответ

2

пойти /var/www/myproject/gkm-be и запустить команду

../lib/Cake/Console/cake Hello 
+0

Это производит тонны вывода html. Я предпочитаю их не включать. –

+0

Что должно делать Shell? Вы получаете вывод html, который означает, что оболочка не выполняется или работает, и она показывает результат, который генерирует Shell? – cornelb

+0

Это производит тонны вывода html. Я предпочитаю их не включать. Насколько я могу судить, это ошибка, связанная с настройкой часового пояса по умолчанию. Чтобы избежать этого, я в явном виде задал часовой пояс в своей оболочке. BUt, если оболочка не найдена, строка с настройкой часового пояса не может быть найдена. После этого я вижу сообщение об ошибке «Ошибка: [CacheException] Двигатель кэша долго не настроен правильно». Однако он не вызывает мой HelloShell.php, и я не вижу типичный вывод оболочки. –