отказано в разрешении на прямой доступ к файлу cron для cronjob в codeigniter

У меня есть настройка cronjob в codeigniter. Работа Cron работает нормально, но я хочу ограничить прямой доступ к URL Cron.

Я попробовал приведенный ниже код, но он не работал.

if (isset($_SERVER['REMOTE_ADDR'])) die('Called from Browser');
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'] = '/cron/cron_alert'; // Setting the path of controller/method
include(dirname(dirname(__FILE__)).'/index.php'); //Now just call the framework

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

0

Решение

Вы не включаете / не требуете такой структуры для заданий cron.

Вот что ты должен делать

Imaging у нас есть контроллер cron

class Cron extends CI_Controller {
public function __construct () {
parent::__construct();
// All requests to this controller should come through CLI only.
if( ! $this->input->is_cli_request() ) {
die("Only CLI Requests Allowed");
}
}

public function process_something ($param1, $param2) {
echo "Processing ...";
sleep(2);
echo "Successfully Processed {$param1}, {$param2}";
}
}

Теперь, чтобы запустить это через cron, вам нужно будет сделать что-то вроде этого:

0 */2 * * * /usr/local/bin/php /path/to/index.php ControllerName Method Param1 Param2

Для приведенного выше примера это должно выглядеть так

0 */2 * * * /usr/local/bin/php /path/to/index.php cron process_something p1 p2
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector