PHP 7 Migration Troubleshooting Guide
« 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:
- Use of old deprecated or removed functions that are no longer available in the newer version of PHP
- Use of old ionCube encoding that is no longer compatible with the newer version of PHP
To confirm the exact cause of the issue, you will need to enable error reporting.
Contents
Enabling Error Reporting
Enabling From The Admin Area
If the admin area is functioning enough to allow you to navigate to General Settings follow these steps to enable error display. Then retry the steps that previously led to the blank or partially rendered page and further error information should be displayed.
- Navigate to Setup > General Settings > Other
- Tick the Display Errors checkbox located towards the bottom of the page
- 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, right before the closing PHP tag (?>) if your configuration.php file has one, otherwise just the last line in the file.
$display_errors = true;
After adding the lines 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. -OR- 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 head of the file and looking for the WHMCS copyright notice), it is highly possible that it is a file that we no longer maintain or distribute. Typically these files will have been 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 some files to remain. In most cases it will no longer be being used, and 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.