Kohana 3 и CRON всегда обращаются к index.php (не следуя аргументу URI) - PullRequest
0 голосов
/ 19 марта 2010

Хорошо, я надеюсь, что это мой последний вопрос о рабочих местах CRON и Kohana 3. Примечание: другие не являются дубликатами, просто другие проблемы.

Вот мое задание CRON (настройка в cPanel)

php /home/user/public_html/index.php --uri=properties/update

Согласно этому ответу .

Я настроил его, чтобы он отправлял мне по электронной почте вывод. Он работает каждые 5 минут.

К сожалению, он всегда отправляет мне по электронной почте источник домашней страницы моего сайта (index.php или /).

Я могу получить доступ к этому URL в моем браузере, т. Е. http://www.example.com/properties/update, и он работает и работает правильно. Я могу сказать, что Cron никогда не запускает скрипт, потому что у меня есть file logger .

Это как-то связано с .htaccess?

Случалось ли это с кем-то раньше, и как они это исправляли?

Большое спасибо.

Обновление

Вот мой домашний маршрут в bootstrap.php, если кому-то интересно.

Route::set('home', '')
    ->defaults(array(
    'controller' => 'home',
    'action' => 'index'
    ));

Это первый определенный маршрут.

Еще одно обновление

Что странно, так это то, что var_dump(Kohana::$is_cli); выдает false по электронной почте с КРОНА.

Ответы [ 2 ]

5 голосов
/ 05 февраля 2012

В случае, если у кого-то еще есть эта проблема, потратив часы на ее решение, я в конечном итоге обнаружил, что вместо использования (в качестве примера)

php /home/user/public_html/index.php --uri=properties/update

Я должен был использовать

/usr/local/bin/php -q /home/user/public_html/index.php --uri=properties/update

Точный путь к php может отличаться, но без его использования он не использовал CLI, и хотя я не совсем уверен, я думаю , что это было CURLing его .

Я также обнаружил, что мне пришлось явно указывать действия с индексами при их вызове; они не были вызваны как действия контроллеров по умолчанию (хотя, как ни странно, раньше () был вызван ).

0 голосов
/ 14 июня 2011

Обновите свой маршрут до:

Route::set('home', '<>')
    ->defaults(array(
    'controller' => 'home',
    'action' => 'index'
    ));

или

Route::set('home', 'properties/update')
    ->defaults(array(
    'controller' => 'home',
    'action' => 'index'
    ));
...