gpt4 book ai didi

php - 500 内部服务器错误 Codeigniter 的 Cron 作业

转载 作者:行者123 更新时间:2023-11-29 07:27:43 26 4
gpt4 key购买 nike

我正在处理一个向数据库添加值的 cron 作业。我正在使用 Codeigniter。我正在使用终端测试脚本。它在我的本地计算机上运行(我正在使用 MAMP),但是当我将其上传到我的服务器并运行脚本时,它会出现以下错误: 状态:500 内部服务器错误 内容类型:text/html;字符集=UTF-8

无论我做什么,都没有什么不同。是什么原因导致此问题以及如何解决它?

编辑:

我使用的是 Codeigniter 3.0.3。

Cron Controller

class Cron extends MY_Controller {

public function __construct()
{
parent::__construct();
$this->load->model('cron_m');
}

public function index()
{
if(!$this->input->is_cli_request())
{
echo "This script can only be accessed via the command line" . PHP_EOL;
return;
}

$data = array('value' => 'test');
$this->cron_m->save($data);
echo 'saved!';

}

}

Frontend_Controller

class Frontend_Controller extends MY_Controller {

function __construct()
{
parent::__construct();
$this->load->helper('form');
$this->load->library('form_validation');
}

public function lock()
{
$this->load->library('session');
$this->load->model('user_m');

// Login check
$exception_uris = array(
'admin/user/login',
'admin/user/logout'
);

if (in_array(uri_string(), $exception_uris) == FALSE)
{
if ($this->user_m->loggedin() == FALSE)
{
$uri = $this->uri->uri_string();
$this->session->set_tempdata('uri', $uri);

redirect('admin/user/login');
}
}
}

}

MY_Controller

class MY_Controller extends CI_Controller {

public $data = array();

function __construct() {

parent::__construct();

$this->data['errors'] = array();

}

}

Cron_m模型

class Cron_m extends MY_Model {

public $_table_name = 'CRON';
protected $_order_by = 'id';

public function __construct()
{
parent::__construct();
}

}

MY_Model

class MY_Model extends CI_Model {

public $_table_name = '';
protected $_primary_key = 'id';
protected $_primary_filter = 'intval';
protected $_order_by = 'order';

function __construct()
{
parent::__construct();
}

public function save($data, $id = NULL)
{

//INSERT
if ($id === NULL)
{
!isset($data[$this->_primary_key]) || $data[$this->_primary_key] = NULL;
$this->db->set($data);
$this->db->insert($this->_table_name);
$id = $this->db->insert_id();
}

//UPDATE
else
{
$filter = $this->_primary_filter;
$id = $filter($id);
$this->db->set($data);
$this->db->where($this->_primary_key, $id);
$this->db->update($this->_table_name);
}

return $id;

}

}

.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt|assets|uploads|podcast\.xml)
RewriteRule ^(.*)$ /index.php/$1 [L]

最佳答案

首先在 Controller 中编写一个codeigniter函数。确保它满足以下标准

  • 要访问 codeigniter 功能,无需登录
  • 在函数中您不应使用任何 session 。

然后在服务器的cpanel中,您可以根据您的要求设置cron,可以是每分钟,每小时等等。

还可以使用wget

wget -T 0 -O path_to_a_text_file_where_cron_will_write_errors path_to_your_script_that_should_be_run_by_cron

希望有帮助。

关于php - 500 内部服务器错误 Codeigniter 的 Cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33967300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com