我收到错误致命错误:无法重新声明config()(之前在... / basics.php:58中声明,在实时服务器中。它在我的本地服务器中工作正常,但是当我将网站上传到实时服务器时,我得到了致命的错误。 我检查了config()是否被多次声明,但它只在basics.php文件中声明了一次。 还遵循命名约定,因为它在本地服务器中正常工作。它只在实时站点中显示此类错误。 请为此提出解决方案。
非常感谢您的帮助。
答案 0 :(得分:2)
将$ uses设置为array(),将$ autoRender设置为false,如下所示将解决此问题
class IndexController extends AppController
{
public $uses = array();
public $autoRender = false;
public function index()
{
echo 'test';
}
}
答案 1 :(得分:2)
我在运行Apache时遇到此错误,最终与我的.htaccess
文件被忽略 - 我一直在重新配置Apache,并且意外地将AllowOverride
设置为None
配置文件,它以某种方式导致此错误。
因此,简而言之,在您的http.conf或您的某个网站配置中,请确保相关目录部分中的AllowOverride设置为All
(或None
以外的其他内容),这是我的:
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
答案 2 :(得分:1)
如果多次包含“basics.php”,就会发生这种情况。您可以使用include_once/require_once
代替include/require
来阻止它。
但这并不能解释为什么它会在您的本地网络服务器上运行。
答案 3 :(得分:1)
以防有人碰巧搜索此内容。
我在安装了cakephp 1.3.11的Windows 2003服务器上遇到了同样的错误。在我的情况下,这是因为我在一个类关联声明中有一个拼写错误。
我已经定义了一个 Client 类,其中包含与Account类的hasOne关联。在那里我错误地将className属性输入到 Client ,它创建了一个循环并导致无法重新声明cakePHP中的config()错误。
答案 4 :(得分:1)
检查您的PHP版本。当您使用比5.3更严格的PHP版本5.4时会发生错误
打开你的cake / bootstrap.php并进行更改以确保每个文件都加载一次函数'require_once'。代码将是这样的:
require_once CORE_PATH . 'cake' . DS . 'basics.php';
require CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php';
require_once LIBS . 'object.php';
require_once LIBS . 'inflector.php';
require_once LIBS . 'configure.php';
require_once LIBS . 'set.php';
require_once LIBS . 'cache.php';
Configure::getInstance();
require_once CAKE . 'dispatcher.php';