Я почти успешно установил задание Cron на своем сервере, но я не могу назвать правильный контроллер.
Когда я удаляю CLI, только если оператор я могу успешно запустить скрипт из своего браузера.
// Make sure the request is being made by a CRON Job if ( ! $this->input->is_cli_request()) exit('Only CLI access allowed');
У меня есть выход, отправленный по электронной почте Cron Daemon. Я пробовал эту команду и следую моим результатам.
работа:
/usr/bin/php /home/dlp/public_html/abc.org/index.php birthday
Результат:
Я получаю 2 сообщения электронной почты в 1-м birthdady
электронной почты HTML по умолчанию контроллера index.php
и на 2-м birthdady
электронной birthdady
контроллера birthdady
.
код моего контроллера.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Birthday extends CI_Controller { function __construct() { parent::__construct(); $this->load->helper('url'); $this->load->database(); $this->load->library('email'); } /**** function for sending news letter on birthday ****/ function index() { error_log("birthday function call",1,"abc@gmail.com"); exit; } } ?>
Я не уверен, что я делаю неправильно.
Заранее спасибо за помощь.
Вы пишете только имя контроллера в cronjob, но вы должны написать имя метода также, когда метод является индексом. Таким образом, в вашем случае вы пишете birthday/index
в своей cronjob. ИЛИ
cron.php
в application/config
с данными как: $ Конфиг [ 'CRON_TIME_LIMIT'] = 0;
$ config ['argv'] = array (1 => 'birthday');
$ Конфиг [ 'CRON_BETA_MODE'] = ложь;
//! / USR / бен / PHP
<?php define('CRON', TRUE); // Load CRON config require('/home/dlp/public_html/abc.org/application/config/cron.php'); // Set CRON mode ( live or beta ) define('CRON_BETA_MODE', $config['CRON_BETA_MODE']); // Set index.php location if (isset($config['CRON_CI_INDEX']) && $config['CRON_CI_INDEX']) define('CRON_CI_INDEX', $config['CRON_CI_INDEX']); else define('CRON_CI_INDEX', '/home/dlp/public_html/abc.org/index.php'); if (count($argv) < 2) if (count($config['argv'])) { $argv = array_merge($argv, $config['argv']); $_SERVER['argv'] = $argv; } else die('Use: php cron.php controller/method'); // Simulate an HTTP request $_SERVER['PATH_INFO'] = $argv[1]; $_SERVER['REQUEST_URI'] = $argv[1]; //$_SERVER['SERVER_NAME'] = $config['SERVER_NAME']; // Set run time limit set_time_limit($config['CRON_TIME_LIMIT']); // Run CI and capture the output ob_start(); chdir(dirname(CRON_CI_INDEX)); // echo "== ".CRON_CI_INDEX; die; require( CRON_CI_INDEX ); // main CI index.php file $output = ob_get_contents(); if (CRON_FLUSH_BUFFERS === TRUE) while (@ob_end_flush()); // display buffer contents else ob_end_clean(); echo "\n"; ?>
/home/dlp/public_html/abc.org/cron.php