I finally managed to figure this out my end. I have a few things for you to try out. Firstly I would recommend enabling error_reporting in your php.ini file. This will output where the fatal error occurred.
When I enabled error reporting this is the error it returned:
Fatal error: Uncaught Error: Class 'Locale' not found in [root]/vendor/magento/framework/Locale/Bundle/DataBundle.php:64
If you get this same error it is likely you don't have the intl php extension installed on your server. I did have this installed on php7.1, but because I was on shared hosting and servers default php version was 7.0, this meant the shell was using php7.0.
So what I did was point my shell to the directory of the php version I wanted to use and then ran the indexer.
/opt/cpanel/ea-php71/root/usr/bin/php bin/magento indexer:reindex
I found the path to my php version by running this command in the shell.
php -i | grep php.ini
This then gave me a general idea of the path to where my PHP version was located:
Configuration File (php.ini) Path => /opt/cpanel/ea-php70/root/etc
Loaded Configuration File => /opt/cpanel/ea-php70/root/etc/php.ini
/opt/cpanel/ea-php70/root/etc part of the response I worked out the path to my php7.1 install was:
Hopefully this resolves your issue, or at least points you in the right direction.