php5.4 dedecms后台登录之后显示500错误解决方法

重新安装了系统后,安装了新版的Dedecms 5.7 SP1,安装都很正常,解决安装后登录后台却发现500错误,却没提示什么错误。重新配置了php环境还是不行,实在是没办法了。

上网搜索了N遍也没发现有解决的办法,后来偶然发现有人提到DedeCMS与PHP版本兼容的问题,于是思考是不是PHP版本是不是太高了呢?

我使用的是:

  • PHP 5.4.8
  • fcgisetup 1.5
  • DedeCMS V5.7 SP1
  • MySQL

于是,我重新下载了PHP 5.3.13版本,替换了之前的5.4.8版。解决发现DedeCMS正常了!原来真的是DedeCMS与PHP高版本不兼容的问题。

网上有人说是PHP 5.4已经启用了session_register()方法,造成了此函数不可用。也提供了解决的办法,但是还是等dede升级吧。

 

原因很简单,服务器php环境用的php5.4,而dedecms的login.php中使用了一个被php5.4抛弃不用的函数(是不是真的抛弃我不知道,反正原文这么写的)
session_register()
意思就是这说个函数不能用了,想用也用不了。方法很简单,直接注释掉,不用进行注册就可以声明session。
在dedecms目录include/userlogin.class.php中查找
function keepUser()
大概在281行,把keepUser()函数下的 @session_register(); 整段注释掉(删除也可以),结果如下:
 

    1. function keepUser()

     

      1. {

       

        1.     if($this->userID != ” && $this->userType != ”)

         

          1.     {

           

            1.         global $admincachefile,$adminstyle;

             

              1.         if(emptyempty($adminstyle)) $adminstyle = ‘dedecms’;

               

                 

                  1.         //@session_register($this->keepUserIDTag);

                   

                    1.         $_SESSION[$this->keepUserIDTag] = $this->userID;

                     

                       

                        1.         //@session_register($this->keepUserTypeTag);

                         

                          1.         $_SESSION[$this->keepUserTypeTag] = $this->userType;

                           

                             

                              1.         //@session_register($this->keepUserChannelTag);

                               

                                1.         $_SESSION[$this->keepUserChannelTag] = $this->userChannel;

                                 

                                   

                                    1.         //@session_register($this->keepUserNameTag);

                                     

                                      1.         $_SESSION[$this->keepUserNameTag] = $this->userName;

                                       

                                         

                                          1.        // @session_register($this->keepUserPurviewTag);

                                           

                                            1.         $_SESSION[$this->keepUserPurviewTag] = $this->userPurview;

                                             

                                               

                                                1.         //@session_register($this->keepAdminStyleTag);

                                                 

                                                  1.         $_SESSION[$this->keepAdminStyleTag] = $adminstyle;

                                                   

                                                     

                                                      1.         PutCookie(‘DedeUserID’, $this->userID, 3600 * 24, ‘/’);

                                                       

                                                        1.         PutCookie(‘DedeLoginTime’, time(), 3600 * 24, ‘/’);

                                                         

                                                           

                                                            1.         $this->ReWriteAdminChannel();

                                                             

                                                               

                                                                1.         return 1;

                                                                 

                                                                  1.     }

                                                                   

                                                                    1.     else

                                                                     

                                                                      1.     {

                                                                       

                                                                        1.         return -1;

                                                                         

                                                                          1.     }

                                                                           

                                                                            1. }

                                                                             

                                                                            另外的解决方法就是在include/userlogin.class.php 中声明一个函数
                                                                             

                                                                              1. function session_register()

                                                                               

                                                                                1. {

                                                                                 

                                                                                  1. return true;

                                                                                   

                                                                                  1. }

                                                                                  未经允许不得转载:我说吧 » php5.4 dedecms后台登录之后显示500错误解决方法

                                                                                  赞 (0) 评论 (0) 分享 ()

                                                                                  评论 抢沙发

                                                                                  • 昵称 (必填)
                                                                                  • 邮箱 (必填)
                                                                                  • 网址