TYPO3 Composer-Installation schlägt auf Plesk fehl

caticonslite_bm_alt

In der Datei „composer.json“ von TYPO3 is für „post-autoload-dump“ ein Script definiert:

"scripts":{
   "typo3-cms-scripts": [
      "typo3cms install:fixfolderstructure",
      "typo3cms install:generatepackagestates"
   ],
   "post-autoload-dump": [
      "@typo3-cms-scripts"
   ]
}

Dieses Script wird nach jeder Generierung der Autoload-Information ausgeführt, z.B. beim „composer install“ oder „composer dump-autoload“. Erfüllt der Standard-PHP-Interpreter auf dem Command Line Interface (CLI) nicht die Versionsvoraussetzungen von TYPO3, so schlägt die Ausführung von z.B. „/opt/plesk/php/7.2/bin/php composer.phar install“ mit folgender bzw. einer ähnlichen Fehlermeldung fehl:

PHP Warning:  Unsupported declare 'strict_types' in /var/www/vhosts/webentwickler.at/httpdocs/vendor/helhum/typo3-console/Scripts/typo3-console.php on line 2
PHP Parse error:  syntax error, unexpected '(' in /var/www/vhosts/webentwickler.at/httpdocs/vendor/helhum/typo3-console/Scripts/typo3-console.php on line 32
Script typo3cms install:fixfolderstructure handling the typo3-cms-scripts event returned with error code 255
Script @typo3-cms-scripts was called via post-autoload-dump

Der Fehler kann behoben werden, indem bei den Scripts der zu verwendende PHP-Interpreter und der Pfad zum Binary-Verzeichnis von Composer ergänzt werden:

"scripts":{
   "typo3-cms-scripts": [
      "/opt/plesk/php/7.2/bin/php /var/www/vhosts/webentwickler.at/httpdocs/vendor/bin/typo3cms install:fixfolderstructure",
      "/opt/plesk/php/7.2/bin/php /var/www/vhosts/webentwickler.at/httpdocs/vendor/bin/typo3cms install:generatepackagestates"
   ],
   "post-autoload-dump": [
      "@typo3-cms-scripts"
   ]
}

Anschließend können „composer install“ oder „composer dump-autoload“ ausgeführt werden.