下面这里找到用户指南的指示后: http://ellislab.com/codeigniter/user-guide/general/cli.html我无法运行通过命令行测试脚本。
我控制器位于位于/ var / WWW / mysite的/应用/控制器/
class Tools extends CI_Controller {
public function message($to = 'World')
{
echo "Hello {$to}!".PHP_EOL;
}
}
在我的浏览器我可以访问
http://mysite/tools/message/ben
和函数正确输出“你好奔”
从终端我应该能够运行:
说明:$ php的index.php工具消息“奔”
我的终端应打印:“你好奔”
不过,我得到以下错误:
PHP致命错误:类“是CI_Controller”在/var/www/mysite/system/core/CodeIgniter.php未发现行233
我的服务器是非常标准的; Ubuntu的LAMP。 笨是非常标准也和我有运行通过命令行的非CI脚本没问题
我的PHP程序仅位于/ usr / bin中/ PHP < - 本帖表明直接从USR /斌/ PHP运行CI的问题,但是我没有操作共享PHP服务,我不明白为什么这个将会对PHP如何执行一个脚本CI的差异。
如何调试这任何帮助或指示,将不胜感激。
提前致谢。
解决了! (部分)的问题是CodeIgniters错误日志。
在应用程序/配置/ config.php文件,我修改了以下配置属性:
$config['log_threshold'] = 0;
这将禁用日志记录,并允许$ php index.php
来执行。
如果任何人都可以解释为什么CI只显示在CLI PHP这个错误 - 可能帮助其他人谁拥有这个问题,需要将其与错误登录解决。
为了解决错误“类‘是CI_Controller’找不到”尝试去Application -> Config -> database.php
,然后检查数据库的细节,如主机名 , 用户名 , 密码和数据库 。
要Mijahn:
我有这个同样的问题,约两个小时通过代码跟踪来找出问题后,似乎有某种与利用原生PHP load_class功能时加载是CI_Controller冲突。
我工作围绕这一问题通过向的common.php文件进行以下更改(黑客,我知道)。
//$_log =& load_class('Log');
require_once('system/libraries/Log.php');
$_log = new CI_Log();
我的日志然后在那里创建了完全一样我想要的。 希望这有助于破解。
该网站说,在命令行运行笨,必须设置$ _ SERVER [“PATH_INFO”]变量。
$ _SERVER [“PATH_INFO”]通常是由PHP提供当Web请求。 然而,由于我们在命令行中调用这个脚本,我们需要模拟环境作为Web请求的这一小部分。
在所提供的答案这个堆栈溢出后为我工作。
在system/core/CodeIgniter.php
,围绕线75,更改:
set_error_handler('_exception_handler');
至...
set_exception_handler('_exception_handler');
其他一些用户报告,这给了他们一个更好的回溯与调试潜在的问题,但对我来说,这其实完全删除的问题。
文章来源: Codeigniter Command line error - PHP Fatal error: Class 'CI_Controller' not found