Same here. Seems the CLI and the webserver like to use different versions of PHP unless you tell them not to. Here are a few points that helped me solve it:
To test your cron.php at the CLI manually:
cd /home/username/public_html/suitecrm; php -c /home/username/public_html/suitecrm/php.ini -f cron.php > /dev/null 2>&1
would send the results of this command into the ether of /dev/null, so we can use:
cd /home/username/public_html/suitecrm; php -c /home/username/public_html/suitecrm/php.ini -f cron.php
I was getting:
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /home/username/public_html/suitecrm/modules/ACL/ACLController.php on line 81
Check your PHP version in suiteCRM directory install:
php --version
PHP 5.4.45 (cli) (built: Apr 17 2017 15:59:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.2.4, Copyright (c) 2002-2018, by ionCube Ltd. with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies
shows me that PHP CLI version is at 5.4.x not the 7.1 that makes SuiteCRM so happy.
the way to change CLI PHP version will vary for your hosting, but these directions helped me:
https://stackoverflow.com/questions/39643805/need-to-run-composer-update-on-ssh-on-hostgator-but-php-v-to-low
after this change to ~/.bashrc, I’m not sure it was needed but I force the cron job to use the php.ini for my SuiteCRM install:
php -c /home/username/public_html/suitecrm/php.ini -f /home/username/public_html/suitecrm/cron.php > /dev/null 2>&1
less errors in error_log and now the cron will do it’s thing.