Modx Evo-从Web服务器复制到本地主机后,管理员登录不再可能


Modx Evo - After copy from webserver to localhost manager login not possible anymore

我使用的是最新的WAMPServer64和PHP 5.5.12。

我所做的:从一个Web服务器(运行PHP 5.4.16),我已经将modx文件夹复制到localhost,然后我复制了整个数据库。我还通过manager/includes/confic.inc.php相应地更改了数据库凭据。

当打开经理登录时,我看到以下内容:

已弃用:mysql_connect():mysql扩展已弃用,将来将被删除:请在第93行上的''manager''includes''extenders''dbapi.mysql.class.inc.php中使用mysqli或PDO

当我尝试登录时,管理员没有出现,我得到了一堆错误,php_error.log的内容:

PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in manager'includes'extenders'dbapi.mysql.class.inc.php on line 93
PHP Stack trace:
PHP   1. {main}() manager'processors'login.processor.php:0
PHP   2. DBAPI->escape() manager'processors'login.processor.php:51
PHP   3. DBAPI->connect() manager'includes'extenders'dbapi.mysql.class.inc.php:156
PHP   4. mysql_connect() manager'includes'extenders'dbapi.mysql.class.inc.php:93
PHP Notice:  Undefined index: captcha_code in manager'processors'login.processor.php on line 53
PHP Stack trace:
PHP   1. {main}() manager'processors'login.processor.php:0
PHP Notice:  Undefined index: rememberme in manager'processors'login.processor.php on line 54
PHP Stack trace:
PHP   1. {main}() manager'processors'login.processor.php:0
PHP Notice:  Undefined variable: allowed_ip in manager'processors'login.processor.php on line 134
PHP Stack trace:
PHP   1. {main}() manager'processors'login.processor.php:0
PHP Notice:  Undefined variable: allowed_days in manager'processors'login.processor.php on line 148
PHP Stack trace:
PHP   1. {main}() manager'processors'login.processor.php:0
PHP Notice:  Undefined variable: newloginerror in manager'processors'login.processor.php on line 224
PHP Stack trace:
PHP   1. {main}() manager'processors'login.processor.php:0
PHP Warning:  Cannot modify header information - headers already sent by (output started at manager'processors'login.processor.php:54) in manager'processors'login.processor.php on line 298
PHP Stack trace:
PHP   1. {main}() manager'processors'login.processor.php:0
PHP   2. setcookie() manager'processors'login.processor.php:298
PHP Notice:  Undefined variable: sql in manager'includes'extenders'dbapi.mysql.class.inc.php on line 276
PHP Stack trace:
PHP   1. {main}() manager'processors'login.processor.php:0
PHP   2. logHandler->initAndWriteLog() manager'processors'login.processor.php:302
PHP   3. logHandler->writeToLog() manager'includes'log.class.inc.php:42
PHP   4. DBAPI->insert() manager'includes'log.class.inc.php:76

我在网上搜索过解决方案,有些人建议清除缓存,这是不可能的,因为管理器接口没有加载。我也尝试使用默认的安装文件夹进行升级,同样的问题仍然存在。

所以,如果有人知道我如何在不安装旧版本的PHP的情况下解决这个问题,那就太好了。

要摆脱mysql不推荐使用的警告,必须使用Evo 1.0.15+,并且应该更改

$database_type = 'mysql';

$database_type = 'mysqli'; 

在config.inc.php中

"唯一"使用旧mysql_函数的是安装程序。PHP 5.5中禁用了不推荐使用的警告。

MODx Evolution中有很多旧代码。正如您从警告中看到的,它使用了不推荐使用的mysql函数。这在MODx论坛中早已为人所知。

就目前而言,您有两种可能的解决方案:

  • 通过WAMP将您的本地php版本降级为一些(最好的,相同的)php 5.4版本
  • 只要Evo有这个问题,就可以更改PHP错误报告级别(在受影响的文件中或PHP.ini中),以忽略不推荐使用的错误

可以检查以下解决方案https://toster.ru/q/125593

真的很管用!:)