【发布时间】:2012-05-24 15:54:22
【问题描述】:
我编写了一个小型 codeigniter 测试应用程序,目前正在我的 Windows 机器上运行。 我创建了一个 linux vm 并尝试在这个新的虚拟服务器上安装该应用程序。 我的一些网络应用程序运行正常,但其他部分没有。 具体来说,这是有效的:
http://123.123.123.123/myapp/controller1/
但这不是:
http://123.123.123.123/myapp/controller2/mymethod/1/2/3
失败并出现无法加载 controller2_model 的错误。
这是失败的控制器的实际代码(它实际上称为 xferLogger 与 controller2):
class xferLogger extends CI_Controller {
public function __construct() {
parent::__construct();
echo(2);
$this->load->model('xferLogger_model');
$this->load->helper('date'); //this library is needed for the base_url() method that is being called in the view "result.php"
$this->load->helper('url');
}
这是模型:
class xferLogger_model extends CI_Model {
public function __construct() {
$this->load->database();
}
完整的错误消息是:遇到错误。找不到您指定的模型:xferlogger_model。
这是我注意到的一点。在错误消息中,您会注意到 logger 中的“L”是小写的。但在我的代码中,它是大写的 L。 我检查了我的控制器、模型本身以及 routes.php 文件。我的外壳似乎没有任何问题。
??
【问题讨论】:
-
显示完整的错误会很有帮助。
-
另外,你确定你复制了所有内容,包括隐藏文件,如 .htaccess
-
Linux 是区分大小写的,这可能会弄乱你的应用程序。
-
正如 SérgioMichels 已经提到的,在 linux(以及 IIRC,任何其他非 Windows 系统)上,文件/目录名称和 mysql 表名称都区分大小写。而且,“不起作用”不是有效的错误消息。
-
完整的错误消息是:“遇到错误。无法找到您指定的模型:mycontroller2_model”。我已将所有内容都复制了一遍……我检查了与案件的差异……到目前为止还没有注意到任何事情。将继续检查。
标签: php linux apache codeigniter alpine