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.
至于现在你有两个可能的解决方案:
- Downgrade your local php version via WAMP给一些(最好的,一样的)PHP5.4版本。
- Change your PHP error-reporting level (inside the affected files or in your php.ini) to omit deprecated errors, as long as Evo has this issue。
要摆脱 mysql 已弃用的警告,您必须使用 Evo 1.0.15+,并且您应该更改
$database_type = 'mysql';
到
$database_type = 'mysqli';
在config.inc.php
使用旧 mysql_ 功能的 'only' 东西就是安装程序。 PHP 5.5.
中禁用了已弃用的警告
可以查看以下解决方案
https://toster.ru/q/125593
真的有效!
:)
我在 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.
至于现在你有两个可能的解决方案:
- Downgrade your local php version via WAMP给一些(最好的,一样的)PHP5.4版本。
- Change your PHP error-reporting level (inside the affected files or in your php.ini) to omit deprecated errors, as long as Evo has this issue。
要摆脱 mysql 已弃用的警告,您必须使用 Evo 1.0.15+,并且您应该更改
$database_type = 'mysql';
到
$database_type = 'mysqli';
在config.inc.php
使用旧 mysql_ 功能的 'only' 东西就是安装程序。 PHP 5.5.
中禁用了已弃用的警告可以查看以下解决方案 https://toster.ru/q/125593
真的有效! :)