今天,一个使用dedecms的朋友询问我后台500错误该怎么办?为此,我让他找空间商服务器,看看是不是空间服务器有问题了。后来,那位朋友反馈说服务器方面说没有问题,我也联系了他那边空间服务器,确实没问题。而那位朋友没有没有技术,让我给他解决。
具体存在的状况是这样的:
网站能够打开,就是dedecms的后台出现500错误。
笔者的解决方法:
(1)网站备份。
(2)将dede管理目录和include目录重新上传覆盖掉空间里面的原文件。
解决以后,笔者进行了百度搜索,发现有人进行了以下操作:
前几天安装了Linux的一个发行版:Ubuntu,打算以后就用Linux做主用系统了。如果你一开始接触的是Windows,并且一直以来使用的都是Windows的话,可能会有点不习惯,不过每个系统都有每个系统的好处。
用Linux配置服务器的方法并不复杂,按照教程来就行了,不过还是有一些问题
php5.4导致dedecms 后台登录出现500错误
原因很简单,服务器php环境用的php5.4,而dedecms的login.php中使用了一个被php5.4抛弃不用的函数(是不是真的抛弃我不知道,反正原文这么写的)
session_register()
意思就是这说个函数不能用了,想用也用不了。方法很简单,直接注释掉,不用进行注册就可以声明session。
在dedecms目录include/userlogin.class.php中查找
function keepUser()
大概在281行,把keepUser()函数下的 @session_register(); 整段注释掉(删除也可以),结果如下:
function keepUser()
{
if($this->userID != “ && $this->userType != ”)
{
global $admincachefile,$adminstyle;
if(emptyempty($adminstyle)) $adminstyle = 'dedecms‘;
//@session_register($this->keepUserIDTag);
$_SESSION[$this->keepUserIDTag] = $this->userID;
//@session_register($this->keepUserTypeTag);
$_SESSION[$this->keepUserTypeTag] = $this->userType;
//@session_register($this->keepUserChannelTag);
$_SESSION[$this->keepUserChannelTag] = $this->userChannel;
//@session_register($this->keepUserNameTag);
$_SESSION[$this->keepUserNameTag] = $this->userName;
//@session_register($this->keepUserPurviewTag);
$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;
//@session_register($this->keepAdminStyleTag);
$_SESSION[$this->keepAdminStyleTag] = $adminstyle;
PutCookie('DedeUserID’, $this->userID, 3600 * 24, '/‘);
PutCookie('DedeLoginTime’, time(), 3600 * 24, '/‘);
$this->ReWriteAdminChannel();
return 1;
}
else
{
return -1;
}
}
另外的解决方法就是在include/userlogin.class.php 中声明一个函数
function session_register()
{
return true;
}