Cakephp 2.0, скрипты CPanel и Shell - PullRequest
       13

Cakephp 2.0, скрипты CPanel и Shell

0 голосов
/ 15 января 2012

У меня cPanel на общем сервере, и мне нужно каждый день запускать скрипт оболочки.

Этот скрипт должен вызывать функцию контроллера, которая ежедневно очищает веб-страницу.

Моя проблема в том, что я не знаю, как создать сценарий оболочки, который вызывает эту функцию, и добавить ее в задания cron в cpanel. Как мне все это сделать?

Заранее спасибо!


Я собираюсь расширить свой вопрос.

У меня есть этот код "TestTask.php":

class TestTask extends Shell {

    function main() {
         $this->out('Hello world.');
    }

    function execute() {
         $this->out('Hello world 2.');
    }
}

Находится в: /home/myuser/public_html/app/Console/Command/Task

А потом, мой cronjob выглядит так:

* * * * * php /home/myuser/public_html/app/Console/cake.php test -app /home/myuser/public_html/app >> /home/myuser/public_html/file.log

Последняя часть - запись выходных данных в файл.

Он вообще не работает.

Помогите пожалуйста !!!

1 Ответ

0 голосов
/ 10 февраля 2012

Вот команда для задания cron, которое я использую на своем сервере:

/home/path-to-cake/lib/Cake/Console/cake -app /home/path-to-cake/app time

, где time - моя оболочка, расположенная в /app/Console/Command/TimeShell.php.Вот как вы запускаете оболочки.

Теперь, с другой стороны вашего вопроса, задача должна быть вызвана из оболочки.Из кода, который вы разместили, кажется, что вы путаете немного оболочек с задачами.Оболочка может содержать задачи, так же как контроллеры могут иметь компоненты.main(); требуется для оболочки, когда она вызывается без каких-либо аргументов.Для выполнения задачи не обязательно.С другой стороны, задача должна реализовывать метод execute();.

Чтобы запустить задачу из вашей оболочки, обязательно добавьте public $tasks = array('Test'); в класс TestShell;Вы можете использовать эту задачу в своей оболочке так же, как вы используете компонент в контроллере: $this->Test->whatever();

Для получения дополнительной информации об оболочках и задачах CakePHP 2.0, посмотрите здесь

Надеюсь, это помогло!

...