PHP 5.5 - > 5.6:不再工作(Codeigniter)

时间:2016-05-30 12:21:34

标签: php codeigniter

我正在将应用程序从 PHP 5.5服务器移动到PHP 5.6 服务器。该应用程序基于 Codeigniter 2.2

在旧服务器上,我在视图中有类似的内容,包括其他模板部分:

include('header.php');

这个简单直接的功能就像旧服务器上的魅力一样。

在新服务器上,我得到了例外情况,无法找到包含的文件

我发现,PHP预处理器试图从linux包含路径以及“system / core”目录中获取文件。但不是来自视图本身所在的目录。

我不知道这两个系统之间的区别是什么......有谁知道我可以在哪里搜索这个问题?

2 个答案:

答案 0 :(得分:0)

  

检查文件路径。是否在其他文件夹内。

也可以试试

$this->load->view('header.php');

或者也可以在Controller中加载标题

还有一些有用的关键字。

  1. APPPATH - 输出应用程序路径。前application/

答案 1 :(得分:0)

感谢大家的所有意见 - 我已经尝试了大部分调试尝试。

现在我更深入地挖掘了找到了我的问题的原因。 PHP中的 short_open_tag指令导致了这个问题。因为这个新服务器在 php.ini 中有一些细微差别。

core / loader.php 如果禁用了short_open_tags的.ini设置,Codeigniter会尝试将短打开标记替换为普通标记。出于任何原因,这种替换不能按预期工作,这导致了我的问题。

因此,如果在将Codeigniter安装从一台计算机移动到另一台计算机后,任何人都遇到同样的问题,那么这可能就是您可以开始的地方。

感谢你们所有人, 迈克尔