2015-04-22 3 views
1

Я пытаюсь вызвать контроллер Codeigniter через задание cron. Но что-то идет не так, я не получаю желаемого результата. Я попытался получить доступ к тому же контроллеру через CLI-интерфейс PHP и вместо того, чтобы возвращать вывод, который должен вернуть контроллер, он выводит содержимое главной страницы проекта. This question имеет аналогичную проблему.Как вызвать CodeIgniter Controller как задание Cron

Мой кронтаб имеет следующую запись:

22 13 * * * php /var/www/html/projectfolder/index.php cronJobGmutrrPdt runJobForUpdatingClgRevConnSummary 

Но это не работает, поэтому я попытался запустить его через CLI:

php /var/www/html/projectfolder/index.php cronJobGmutrrPdt runJobForUpdatingClgRevConnSummary 

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

+0

Какой контроллер вы звоните? Кажется, вы просто запрашиваете index.php, и в этом случае было бы странно, что вы получите вывод стандартного контроллера. Вы пробовали '/ var/www/html/projectfolder/index.php/mycontroller/method /'? (Попробуйте это с первым кликом) –

+0

«cronJobGmutrrPdt» - это контроллер, а «runJobForUpdatingClgRevConnSummary» - это функция –

ответ

0

Скорее всего у вас есть register_argc_argv отключено в вашем файле php.ini. Вот почему работает прямой скрипт php. Поскольку cronjob работает как команда CLI, вам понадобится это, чтобы передать аргументы.

http://php.net/manual/en/reserved.variables.argv.php

Посмотрите на этот документ PHP выше, и это должно привести вас в правильном направлении.

+0

Было ли это, но грустно сказать, что это мне не помогло. Тот же результат, получающий главную страницу в качестве вывода вместо контроллера, который я назвал PS i, добавил register_argc_argv в php.ini, который находится в местоположении /etc/php5/cli/php.ini, а не в папках apache2 и cgi. Правильно ли это или должно быть где-нибудь еще –

Смежные вопросы