PHP 7 Migration Troubleshooting Guide

From WHMCS Documentation

Revision as of 14:45, 29 March 2018 by David (talk | contribs)

« Back to the PHP 7 Migration Guide

If following a change of PHP version you encounter an Oops error page, or blank or partially rendered page, the most likely cause is that there is a file present in your installation that is not compatible with the new PHP version.

Possible causes include:

  • Syntax Error - A file uses deprecated or removed functionality which is no longer available in the newer version of PHP.
  • Decoding - A file is encoded with an ionCube encoding that is not compatible with the newer version of PHP or the installed ionCube Loader extension.

To confirm the exact cause of the issue, you will need to enable error reporting.

Enabling Error Reporting

Enabling From The Admin Area

If you can login to the admin area and navigate to General Settings then follow these steps below to enable error display. After enabling Display Errors, retry the steps that previously led to the "Oops!", blank, or partially rendered page and further error information should be displayed.

  1. Navigate to Setup > General Settings > Other
  2. Tick the Display Errors checkbox located towards the bottom of the page
  3. Click Save Changes

Enabling From Your Configuration File

If the error is severe enough, you may find you are unable to login to the admin area. In those situations, there is a manual configuration file flag option that you can add to the configuration.php file in the WHMCS root directory to enable error reporting.

The lines needs to be added at the very end of the configuration.php file, below any other statements (but right before the closing PHP tag ?>, if present).

$display_errors = true;

After adding this line and saving/uploading the file, retry the steps that previously led to the "Oops!", blank, or partially rendered page and further error information should be displayed.

Resolving the Issue

With error reporting enabled, you should see the full error message being generated at the time the problematic PHP file is attempted to be included/executed. Below are some of the most common errors you may encounter.

  • The file /path/to/file.php was encoded by the ionCube Encoder for PHP 5.6 and cannot run under PHP 7.1 or later. Please ask the provider of the script to provide a version encoded with the ionCube Encoder for PHP 7.1.
  • The file /path/to/file.php was encoded by the ionCube Encoder for PHP 5.6 and cannot run under PHP 7.2 or later. Please ask the provider of the script to provide a version encoded with the ionCube Encoder for PHP 7.2.

Seeing the above error message indicates the itemised file was encoded using an older version of ionCube Encoder that does not include support for PHP 7.1 or later. You will need to contact the original vendor/author of the file to ask for an updated version of the file.

If the file is a WHMCS file (you can determine this by looking at first several lines of the file for the WHMCS copyright notice), it is possible that it is a file that we no longer maintain or distribute. Typically these files are removed automatically by the update routines built into WHMCS, but if at any time permissions did not allow for its removal, it is possible for it to remain on your system. In most cases such files are no longer in use or valid for the current version of WHMCS. If it relates to a module that you do not use, it should be safe to simply delete it. If you are unsure, our support team will be able to assist you in making this determination.

« Back to the PHP 7 Migration Guide