Date Published: February 24, 2022
PHP syntax errors or missing extensions when running BLT or Composer
Issue ¶
This manifests as errors that occur only in certain environments, often syntax errors or errors about missing extensions:
PHP Parse error: syntax error, unexpected ':', expecting ';' or '{' in /var/www/<project>/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php on line 50
Parse error: syntax error, unexpected ':', expecting ';' or '{' in /var/www/<project>/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php on line 50
Drush command terminated abnormally due to an unrecoverable error. [error]
Error: syntax error, unexpected ':', expecting ';' or '{' in
/var/www/<project>/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php, line 50
[Acquia\Blt\Robo\Tasks\DrushTask] Exit code 255 Time 10.708s
Resolution¶
Ensure that all environments are running the same version of PHP. This can be accomplished by changing PHP versions on the systems, and by "locking" the PHP version in your composer file and re-running composer update.
Example of how to lock PHP version to PHP 7.2 in composer.json:
"require": {
"php": "7.2"
},
Cause¶
This error occurs when Composer packages were installed on a machine running a newer PHP version than the environment exhibiting the error, leading to syntax errors or errors due to missing extensions. This error can affect VMs, continuous integration environments, and cloud environments.
Did not find what you were looking for?
If this content did not answer your questions, try searching or contacting our support team for further assistance.