0

我已将 CakePHP 安装从我的开发服务器移动到生产服务器(配置文件和 htaccess 已更新)。

生产服务器使用的是旧版本的 PHP,我已请求主机对其进行升级。他们升级 PHP 版本后,网站在网页上打印 php 代码 ( Class : /lib/Cake/core/app) .. 而且它在页面底部显示一个致命错误,如下

致命错误:在 /xxxxxxx/lib/Cake/bootstrap.php:154 中,未捕获异常 'LogicException' 并带有消息“传递的数组未指定现有静态方法(未找到类 'App')”堆栈跟踪:#0 /xxxxxxx/ lib/Cake/bootstrap.php(154): spl_autoload_register(Array) #1 /xxxxxxx/app/webroot/index.php(92): include('/xxxxxxx/pu...') #2 {main} 抛出/xxxxxxx/lib/Cake/bootstrap.php 第 154 行

请帮忙..

4

2 回答 2

1

显然,CakePHP 无法找到或加载App类 ( /xxxx/lib/Cake/core/App.php)。

但是,自更新以来路径可能已更改,但是(如果您使用的是 CakePHP 2.3.1)同一文件的第 134 行使用它来加载该文件:

require CAKE . 'Core' . DS . 'App.php';

如果文件不存在或无法加载,则脚本应在该点停止。

要检查您的路径是否正确,请尝试调试该路径;

 echo CAKE . 'Core' . DS . 'App.php'; die();

如果该路径是正确的(我猜它是正确的,否则require应该已经停止了上面提到的脚本),则文件的内容有问题App.php。也许某些东西损坏了文件(部分上传?)或不正确的行尾导致 PHP 错误地解释它。

如果页面确实显示了App 类的完整源代码,则您可能(不经意间)使用 php 'short opening tags' 并且这在新配置中已被禁用,<?这可能是原因,例如,如果一个空格<?-后面有空格吗<? PHP

更多关于短开始标签的信息可以在这里找到:

可以使用 PHP 短标签吗?

于 2013-04-05T08:45:54.673 回答
1

您是否检查过 PHP 版本实际上已更改,您是否检查过(使用 phpinfo())?

于 2013-04-05T08:06:21.303 回答