0

我将我的应用程序从一台服务器(开发)移动到另一台服务器(发布)并且蛋糕落在文件 lib/Cake/bootstrap.php 中,这是蛋糕核心文件之一。

前一个地址(正在运行)是http://sdruzenid.kho.cz 在地址http://sdruzenid.cz是错误的。

我只是将所有文件从一台服务器复制到另一台服务器。没有硬编码的地址

在第一台服务器上,adresar 结构是

root: /sdruzenid
app: /sdruzenid/app
webroot: /sdruzenid/app/webroot
adresar www 没有被使用(因为其他网络在其中运行,这只是子域)

在新位置它是
根目录:/www
应用程序:/www/app
webroot:/www/app/webroot

当我从 app/webroot/index.php 打印路径时,它是:
ROOT: /httpd/html/sdruzenidcz/www
WWW_ROOT: /httpd/html/sdruzenidcz/www/app/webroot/
CAKE_CORE_INCLUDE_PATH: /httpd/html/sdruzenidcz/www /lib:/httpd/html/sdruzenidcz:./

该错误是由 lib/Cake/bootstrap.php 中的此代码引起的

App::uses('ErrorHandler', 'Error');
App::uses('Configure', 'Core');
App::uses('CakePlugin', 'Core');
App::uses('Cache', 'Cache');
App::uses('Object', 'Core');
App::$bootstrapping = true;

错误在最后一行。我找不到变量 $bootstrapping 是在哪里定义或设置的,但这是在蛋糕核心中,在开发部署时它工作正常

在我的代码 app/webroot.index.php 附近的错误是:

if (!defined('CAKE_CORE_INCLUDE_PATH')) {
    if (function_exists('ini_set')) {
        ini_set('include_path', ROOT . DS . 'lib' . PATH_SEPARATOR . ini_get('include_path'));
    }
    //it crashes after include of bootstrap.php
    if (!include 'Cake' . DS . 'bootstrap.php') {
        $failed = true;
    }
} else {
    if (!include CAKE_CORE_INCLUDE_PATH . DS . 'Cake' . DS . 'bootstrap.php') {
        $failed = true;
    }
}
4

2 回答 2

3

删除所有缓存文件

  • 应用程序/tmp/缓存/模型
  • 应用程序/tmp/缓存/持久
于 2012-10-31T08:13:58.270 回答
1

问题很简单。在托管是低版本的php。升级后一切正常。

简而言之:如果您在第 144 行的 cake/core/bootstrapping.php 中有错误,请升级您的 php。

于 2012-11-05T09:16:03.640 回答