我试图在我的web应用程序中“伪造”一个进程(通过SMTP发送的电子邮件),而该应用程序是基于Kohana构建的。
$command = 'test/email';
exec('php index.php '.$command.' > /dev/null/ &', $errors, $response);我收到一个错误--
Notice: Undefined index: SERVER_NAME
当我查看Kohana的index.php文件时,我看到它正在寻找一个名为SERVER_NAME的变量,但我猜它是NULL,因为Kohana无法检测到这个值并在运行前对其进行设置。
有什么办法让Kohana通过命令行运行吗?
发布于 2010-01-26 00:01:32
据我所知,您不能直接在命令行中运行kohana文件,因为它的引导方法。
你可以做两件事:将所有类似命令的函数导出到kohana之外,然后独立运行它们。
你可以做的另一件事是通过位于kohana主文件夹中的index.php运行它,同时将$controller,$method变量传递给它,这样它就会到达代码所在的正确对象:
对于kohana 2:
php index.php controller/method/var1/var2Kohana 3
php index.php --uri=controller/method/var1/var2CLI编辑: Kohana有一个很棒的任务运行器,从3.3版本开始作为官方模块。对于3.2版本,它仍然是一个非官方的模块。我建议您使用这些选项,因为它们为从CLI运行提供了许多额外的选项:
发布于 2010-03-10 12:33:07
在查看了Kohana3源代码后,我发现它支持cli (system/classes/kohana/cli.php)。您可以传递3个选项(uri、method、get、post)。所以:-
$ php index.php --uri="items/list"
将在Controller_Items中调用list方法。
发布于 2010-02-10 03:44:44
而Kohana2就是php index.php controller/method/param1/param2/etc
Kohana是为在CLI和web上运行而构建的。
https://stackoverflow.com/questions/2133433
复制相似问题