SuiteCRM upgrade from 7.8.31 to 7.10.27

Hello everyone, I did upgrade from 7.7.8 to 7.8.31 without problem but the next step from 7.8.31 to 7.10.27 after copying files stage in brings blank page, I tried to delete old upgrades and the page again work but when I found the process in the same stage in become blank again without some critical errors, any idea how I can make the last step? I read a lot of solutions here and tried them but any of them didn’t work

1 Like

Hey,

What errors appeared?
Would you be able to pass over a screenshot of the errors on-screen?

Also, do you get any errors in either the SuiteCRM.log, upgradeWizard.log or your apache log files, around the time of the upgrade that might help?

Another thing worth checking is that your instance is still using a compatible version of PHP/SQL/etc
As far as I can see on the compatibility matrix, Suite 7.11 is no longer marked as being compatible for PHP 5.5: https://docs.suitecrm.com/admin/compatibility-matrix/

Hello John,

php version is 7.1
DB maria 10.2

suitecrm.log
Mon Aug 17 17:02:50 2020 [9359][51759430-6697-ef5a-5e01-57ea3edea1b9][FATAL] IP Address mismatch: SESSION IP: CLIENT IP:
Mon Aug 17 17:41:30 2020 [13629][cba7a452-614f-6fe7-fac8-5e709c7096fd][FATAL] ERROR: rmdir_recursive(): argument cache/themes/SuiteP/modules is not a file or a dir.
Mon Aug 17 17:41:30 2020 [13629][cba7a452-614f-6fe7-fac8-5e709c7096fd][FATAL] ERROR: rmdir_recursive(): argument cache/themes/SuiteR_old/modules is not a file or a dir.
Mon Aug 17 17:41:30 2020 [13629][cba7a452-614f-6fe7-fac8-5e709c7096fd][FATAL] ERROR: rmdir_recursive(): argument cache/themes/Suite7/modules is not a file or a dir.

upgradeWizard.log


Mon, 17 Aug 2020 17:37:49 +0300 [UpgradeWizard] - file backup done.
Mon, 17 Aug 2020 17:37:49 +0300 [UpgradeWizard] - Running pre_install()…
Mon, 17 Aug 2020 17:37:49 +0300 [UpgradeWizard] - pre_install() done.
I join in upgradewizard which is blank and the code is this
Tue, 18 Aug 2020 08:18:26 +0300 [UpgradeWizard] - setting session variables…
Tue, 18 Aug 2020 08:18:26 +0300 [UpgradeWizard] - [At commit.php]
Tue, 18 Aug 2020 08:18:26 +0300 [UpgradeWizard] - Setting error_reporting() to E_ERROR while running upgrade

For Upgrade SuiteCRM from old version to new version, Needs to Download Upgrade zip from following link,

SuiteCRM Upgradation Zip Download

Steps For Installing Upgradation Zip :

Notes: Before installing Upgradation Zip, please take your SuiteCRM and Database backup first.

Upgrade SuiteCRM 7.7.9 to 7.8.31 :

  1. To open the Administration Page, Click on the Admin tab as shown in below screenshot.

  1. Open Administration page, Click on “Upgrade Wizard” from the System Section.

  1. After clicking on “Upgrade Wizard”, the welcome page will be open. Click on “Next” Button from this page.

  1. After Click on “Next” Button, it displays the System Checks page.

  1. Click on the “Next” Button if the system check is successful. Once you click on the “Next” Button, it’ll display the “Upload an Upgrade page”.

  1. From the “Upload and Upgrade” page, click on “Browse” Button to Install the Upgradation zip and click on “Upload Package” Button.

  1. Once you click on the “Upload Package” Button , it’ll be shown like the screenshot below. After successfully importing zip, click on “Next” Button.

  1. Once you click on “Next” Button, It displays the “Preflight Check” page. Click “Recheck” to return “Preflight Check”. Click Next to skip this step.

When you click on the “Next” button, it displays the “Commit Upgrade” page.

  1. You can also click on “Show” to see a list of files that were copied and the rebuilt results.

  1. Click on the “Next” Button from the “Commit Upgrade” page, it’ll display confirm layout(Debrief) Page.

Click on “Done” Button from “Debrief” Page and it’ll redirect to the CRM About page.

Note : After Upgrade SuiteCRM-7.7.9 to 7.8.31 logout from your CRM and Login again.

Upgrade SuiteCRM 7.8.31 to 7.10.27 :

  1. To open the Administration Page, Click on the Admin tab as shown in below screenshot.

  1. Open Administration page, Click on “Upgrade Wizard” from the System Section.

  1. After clicking on “Upgrade Wizard”, the welcome page will be open. Click on “Next” Button from this page.

  1. After Click on “Next” Button, it displays the System Checks page.

  1. Click on the “Next” Button if the system check is successful. Once you click on the “Next” Button, it’ll display the “Upload an Upgrade page”.

  1. From the “Upload and Upgrade” page, click on “Browse” Button to Install the Upgradation zip and click on “Upload Package” Button.

  1. Once you click on the “Upload Package” Button , it’ll be shown like the screenshot below. After successfully importing zip, click on “Next” Button.

  1. Once you click on “Next” Button, It displays the “Preflight Check” page. On this page display one Notice as shown in the below screenshot.

For Remove that Notice, open the file which was mentioned in Notice and update the changes as per suggestion in the below screenshot.

Before Change that line :

After Change that line :

After changes on that line, Reload the Page & Notice Will be removed from “Preflight Check” Page.

When you click on the “Next” button, it displays the following page as shown in below screenshot.

After giving permission on CRM and Refresh page, it displays the following Warning and Fatal Error as shown in the below screenshot.

For Removing Warning and Fatal Error, you needs to replace upload_file.php and Add other file as listed below :

  1. include/upload_file.php
  2. include/UploadFile.php
  3. include/UploadMultipleFiles.php
  4. include/UploadStream.php

You can copy the above files from any SuiteCRM Version 7.10.* Instance(CRM) and Upload in CRM which you’re upgrading.

After adding these files, Refresh Page and it displays the “Commit Upgrade” page.

  1. Click on the “Next” Button from the “Commit Upgrade” page, it’ll display the confirm layout(Debrief) Page.

Click on “Done” Button from “Debrief” Page and it’ll redirect to the CRM About page.

I hope it helps you

2 Likes

Just a couple of comments on this nice tutorial:

  1. It’s recommended to turn off display_errors in your php.ini. You shouldn’t be getting notices on screen, but only in the logs. Having them showing on screen sometimes causes bugs.

  2. That code change isn’t entirely equivalent - you need to check first if it isset, and then you need to test its boolean value.

Hello everyone, thank you for your reply, I tried everything you suggested but the result is the same, same error as before

Hi @pgr
Thank you for your kind Suggestion :blush:

  1. I am not exactly agree with it. I think display_errors must be turn on because we can find what is the problem in code
    2)It’s default code of SuiteCRM. I didn’t changed anything in it
    Feel free to ask me any questions if you have
    Thank you
    Urvi
  1. You can leave it on in a development server. But I always turn it off and keep a window open to check the logs, they have more information. On a production server, you really shouldn’t, because PHP messages will come at any random point in the output; if they align with the HTML, you read them on screen, but if they don’t, they can break HTML, Javascript, and cause random bugs. They also cause corrupt PDF’s (lots of cases of this in the Forums).

  2. I meant this change you propose above:

Hi @pgr
what I understand like During Upgrade SuiteCRM 7.8.31 to 7.10.27, In Preflight Check Page, it’ll check if the “additional_step” parameter is set or not. If it’s not set then it’ll include the file which is mentioned in the screenshot. So In SuiteCRM Default Code, they added a line like if(!$_REQUEST[‘additional_step’]) but it’s giving Notice on CRM and it’ll not check if the parameter is set or not. So we have replace line with isset function of PHP for checking parameter is set or not
Please correct me, if I m understanding wrong.
Thank You :blush:
Urvi

Hi @Urvi

yes, you’re going in the right direction, checking with isset. But you need to keep the semantics of the condition the same as before, so that the code executes in the same way (apart from the warning) no matter how it is called. That’s the only way we can safely change complex (and sometimes very badly written) code without risking new bugs. And since PHP is very loose with types, you need to be very careful. You have to assume that $_REQUEST['additional_step'] can be null, zero, a string, an array, etc.

For example, in your change, if the variable is set, and evaluates to false, the old code would run the require, but the new one would skip it.

The correct change would be to this

if (!isset($_REQUEST['additional_step']) || 
    (!$_REQUEST['additional_step'])) {
    require('modules/UpgradeWizard/'.$upgradeStepFile.'.php');
}
1 Like