Мне нужна работа cron на одном из моих старых веб-сайтов (CakePHP 1.3). я сделал следующие шаги:Cronjob in CakePHP 1.3
создали оболочки в
/somepath/public_html/app/vendors/shells/valute.php
class ValuteShell extends Shell { var $uses = array('Valute'); function main() { $this->Valute->cacheGetKonverterData(); } }
создал Баш скрипт и сохранить это в моих поставщиков папку, как
cakeshell
(/somepath/public_html/app/vendors/cakeshell)
#!/bin/bash TERM=dumb export TERM cmd="cake" while [ $# -ne 0 ]; do if [ "$1" = "-cli" ] || [ "$1" = "-console" ]; then PATH=$PATH:$2 shift else cmd="${cmd} $1" fi shift done $cmd
изменил разрешения на этот файл 777.
называется cronjob так:
0 0 * * * /somepath/public_html/app/vendors/cakeshell valute -cli /usr/bin -console /somepath/public_html/cake/console -app /somepath/public_html/app
К сожалению cronjob не работает. Зачем? Когда я звоню: http://www.somedomain.net/valutes/save_valute все работает нормально.
<?php
class ValutesController extends AppController {
var $name = 'Valutes';
var $uses = array('Valute');
function save_valutes()
{
$this->layout = null; // turn off the layout
$this->Valute->cacheGetKonverterData();
}
}
?>
возможно дубликат [Крон грузоотправитель CakePHP 2.0] (Http: // StackOverflow .com/a/23636079/761202) (в то время как этот вопрос использует собственный скрипт bash - правильным решением является просто вызвать консоль/cake). – AD7six