Modx Evo - 从网络服务器复制到本地主机管理器后无法再登录

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

我在 PHP 5.5.12 中使用最新的 WAMPServer64。

我做了什么:从网络服务器(运行 PHP 5.4.16)我将 modx 文件夹复制到本地主机,然后我复制了整个数据库。我还通过 manager/includes/confic.inc.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_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 的情况下解决此问题,那就太好了。

MODx Evolution 里面有很多旧代码。正如您从警告中看到的那样,它正在使用 deprecated mysql-functions. This is long known in the MODx Forums.

至于现在你有两个可能的解决方案:

要摆脱 mysql 已弃用的警告,您必须使用 Evo 1.0.15+,并且您应该更改

$database_type = 'mysql';

$database_type = 'mysqli'; 

在config.inc.php

使用旧 mysql_ 功能的 'only' 东西就是安装程序。 PHP 5.5.

中禁用了已弃用的警告

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

真的有效! :)