phpmodxmodx-evolution

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


I am using the latest WAMPServer64 with PHP 5.5.12.

What I did: From a webserver (runs PHP 5.4.16) I have copied the modx folders to localhost, then I copied the entire database. I have also changed the database credentials accordingly via manager/includes/confic.inc.php.

When opening the manager login, I see the following:

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

When I try to login, the manager does not show up and I get a bunch of errors, content of 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

I have searched for solutions on the net, some suggested to clear the cache, which is not directly possible since the manager interface does not load. I also tried to upgrade using the default install folder, same problem remains.

So if anyone has a clue how I can solve this without installing an old version of PHP, that would be great.


Solution

  • To get rid of the mysql deprecated warning you have to use Evo 1.0.15+ and you should change

    $database_type = 'mysql';
    

    to

    $database_type = 'mysqli'; 
    

    in config.inc.php

    The 'only' thing that uses the old mysql_ functions is the installer then. The deprecated warnings are disabled in there for PHP 5.5.