Search code examples
phpconcrete5concrete

Issues upgrading Concrete5 from 5.5.2.1 to 5.6.x


I'm currently updating a very old website from 5.4.x to 5.6.3.3. So far I've been able to upgrade to 5.5.2.1 locally without problems.

But upgrading from 5.5.2.1 to 5.6.x causes a lot of problems. I've tried updating directly to 5.6.3.3, which the backend suggests, as well as 5.6.0, 5.6.0.1 and 5.6.0.2 with no luck.

The problem is that when i click "Download", Concrete5 downloads 5.6.3.2. Not the advertised 5.6.3.3. After the download has completed, nothing happens. I can't click update, I can only click the download button again. However Concrete5 does download the 5.6.3.2 update.

I've tried running the upgrade script manually. The manual upgrade script returns this message:

"Upgrade concrete5

Your site is already up to date! You should remove this file for security. Back to Home Click here if you would like to re-run this script.The current version of Concrete5 is 5.5.2.1."

So I click and "?force=1" is added to the URL. This returns:

"Upgrade to 5.5.2.1 complete!"

That's with in the site.php. If I remove that and run it like this guides suggests (http://www.concrete5.org/documentation/how-tos/developers/manually-upgrade-concrete5/), I only get blank pages and cannot run the upgrade script manually. I've tried both methods mentioned in the guide without luck, and I've also tried different versions of 5.6.

So my next step was to download 5.6.3.3 manually and place it in the updates folder. Now the update page returns:

"Install Local Update

Make sure you backup your database before updating. Several updates are available. Please choose the desired update from the list below.

CURRENT VERSION

5.5.2.1

5.6.0.2

5.6.3.2

5.6.3.3"

Choosing any of these returns a blank page because the script changes the site.php file with a new dirname. It's like the dirname change happens before the script updates the database and therefore nothing happens. The process stops and all pages are blank.

Now this is where I'm stuck. Right now I have no idea how to get the update script started. Any help is appreciated!

Technical information:

I'm using a local server (MAMP) with: PHP: 5.5.18 MySQL: 5.5.38 Apache: 2.2.29 Caching: Completely turned off Pretty URLs: Turned off

Environment information:

concrete5 Version 5.5.2.1

concrete5 Packages Database Case Sensitivity Migration (1.1.2), Extended Form (2.4).

concrete5 Overrides blocks/autonav, blocks/catalogue_item, blocks/google_map, jobs/index_search.php.DONOTUSE, languages/da_DK, libraries/request.php, themes/compower-theme

Software on the webserver Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.5.18 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/v5.20.0

Webservers API apache2handler

PHP version 5.5.18

PHP modules apache2handler, bcmath, bz2, calendar, Core, ctype, curl, date, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imap, intl, json, ldap, libxml, mbstring, mcrypt, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, Reflection, session, SimpleXML, soap, sockets, SPL, sqlite3, standard, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, yaz, zip, zlib.

PHP settings

  • log_errors_max_len - 1024
  • max_execution_time - 5
  • max_file_uploads - 20
  • max_input_nesting_level - 64
  • max_input_time - 60
  • max_input_vars - 1000
  • memory_limit - 128M
  • post_max_size - 128M
  • sql.safe_mode - Off
  • upload_max_filesize - 128M
  • ldap.max_links - Unlimited
  • mysql.max_links - Unlimited
  • mysql.max_persistent - Unlimited
  • mysqli.max_links - Unlimited
  • mysqli.max_persistent - Unlimited
  • pcre.backtrack_limit - 1000000
  • pcre.recursion_limit - 100000
  • pgsql.max_links - Unlimited
  • pgsql.max_persistent - Unlimited
  • session.cache_limiter - nocache
  • session.gc_maxlifetime - 7200
  • soap.wsdl_cache_limit - 5

Solution

  • The problem in this case was better identified by examining the PHP error log (the clue here was the white screen after attempting to upgrade). The error was

    PHP Fatal error: Call to undefined method Request::hasCustomRequestUser() in /bla/bla/bla/concrete/core/models/user.php on line 177

    And the solution was to remove the [root]/libraries/request.php file and the manually start the upgrade again with http://site/index.php/tools/required/upgrade/


    The entire solution can be found here.