当前位置: 首页 > 面试题库 >

Codeigniter Cron工作不起作用

须志新
2023-03-14
问题内容

我有这样的计划工作:

/usr/bin/php /var/www/website/public_html/index.php className methodName

如果我在终端中运行它,它将运行,但是什么也不输出。如果我传递了错误的方法名称,它将成功运行。如果我传递了错误的类名,则会输出网站404错误。

我也有一个将“ en”添加到URL中的路由,例如

http://www.website.com/en/home/index

这可能是问题吗?

我的config.php设置是:

$config['uri_protocol'] = 'AUTO';
$config['index_page'] = '';

问题答案:

通过CLI(命令行界面)为cron-
jobs准备CodeIgniter 2.x的步骤:

1: 创建根index.php文件的副本并将其另存为cli.php

第二: 在您的cli.php中,<?php用以下代码替换:

#!/usr/local/bin/php
<?php

/* override normal limitations */
set_time_limit(0);
ini_set('memory_limit', '256M');

/* deny direct call from web browser */
if (isset($_SERVER['REMOTE_ADDR'])) die('Permission denied.');

/* constants */
define('CMD', 1);

/* manually set the URI path based on command line arguments... */
unset($argv[0]); /* except the first one */
$_SERVER['QUERY_STRING'] =  $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'] = '/' . implode('/', $argv) . '/';

第三: 像这样执行您的Cron工作:

/usr/bin/php /var/www/website/public_html/cli.php controller method

这里/var/www/website/public_html/是你的服务器的主目录,你的位置index.phpcli.php

笔记:

对于CI
3.0,您可以在此处找到必要的信息

数据库 您需要在控制器方法中提供数据库配置设置,因为cron作业仅执行控制器的方法。因此,它对任何数据库设置一无所知!

$config['hostname'] = "localhost";
$config['username'] = "username_admin";
$config['password'] = "password";
//etc..

$this->db  = $this->load->database($config, TRUE);

调试:
只需在html中添加一个链接即可运行控制器的方法,例如:(index.php/controller/method一旦您的网站启用,请删除该链接)



 类似资料:
  • 我的MySQL工作台6.0(我在Ubuntu上工作)有问题,当我选择一个服务器实例时,它显示的不是“SCHEMAS”面板,而是消息“No object selected”。在“SQL面板”(主面板)中,查询<code>显示数据库有效,但我在“SCHEMAS”面板中没有数据库列表。 我的所有实例都有这个问题,当有很多数据库和表时,这很烦人! 你对这个问题有什么想法吗? 谢谢,

  • 因此,我在一个控制器中有一个非常简单的代码片段,在这个代码片段中,我使用从外部文件中获取数据,它工作得很好!但是当我使用时,我会在控制台中得到一个

  • 问题内容: 我的ContentView具有两个不同的模式视图,因此我都使用了它们,但似乎只显示了最后一个。我该如何解决这个问题?还是无法在SwiftUI的视图上使用多个图纸? 上面的代码编译时没有警告(Xcode 11.2.1)。 问题答案: 请尝试以下代码

  • 我正在我的应用程序中使用ActionSheet。在我的iPhone上它可以工作,但在iPad模拟器上却不行。 这是我的代码: 我的错误是: 由于未捕获的异常“NSGenericeException”而终止应用程序,原因:“您的应用程序已呈现UIAlertControllerStyleActionSheet样式的UIAlertController()。具有此样式的UIAlertController的

  • 问题内容: 正则表达式似乎还可以,因为第一行将子字符串正确替换为“ helloworld”,但是后者却不匹配,因为我看不到“ whynothelloworld?”。在控制台上 问题答案: 期望 整个 字符串匹配,而不仅仅是子字符串。 使用正则表达式匹配器对象的方法代替: