我使用的是最新的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
真的很管用!:)