Parse-Error PHP in Linux-Konsole

Parse-Error PHP in Linux-Konsole

von Ekkehard Skirl -
Anzahl Antworten: 2

Beim Aufruf der folgenden Scripte gibt es einen Parse-Fehler:

/MOODLE-ROOT/admin/cli/maintenance.php ...

oder

/MOODLE-ROOT/admin/cli/cron.php

unter PHP Version 7.2.4-1+0~20180405085552.20+jessie~1.gbpbff9f0


Moodle 3.4.3 (Build: 20180517)

PHP Parse error:  syntax error, unexpected ':', expecting ';' or '{' in
/MOODLE-ROOT/lib/classes/component.php on line 1264

Moodle 3.5 (Build: 20180517)

PHP Parse error:  syntax error, unexpected ':', expecting ';' or '{' in
/MOODLE-ROOT/lib/classes/component.php on line 1265

Damit scheint auch das Cron-Script nicht zu laufen.  Der entsprechende Scriptausschnitt lautet:

    public static function get_component_list() : array { 
$components = [];
 // Get all plugins.
 foreach (self::get_plugin_types() as $plugintype => $typedir) {
 $components[$plugintype] = [];
 foreach (self::get_plugin_list($plugintype) as $pluginname => $plugindir) { $components[$plugintype][$plugintype . '_' . $pluginname] = $plugindir;
 }
 }
// Get all subsystems.
 foreach (self::get_core_subsystems() as $subsystemname => $subsystempath) {
$components['core']['core_' . $subsystemname] = $subsystempath;
 }
 return $components;
  }

Kann ich das temporär selbst korrigieren und wie?

Danke für die Hilfe.

Grüße aus Velten

Ekkehard



Mittelwert:  -
Als Antwort auf Ekkehard Skirl

Re: Parse-Error PHP in Linux-Konsole

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler

Hallo Ekkehard,

vermutlich wird bei deinem Aufruf von PHP über die Konsole (CLI-Aufruf) die falsche PHP-Version (vermutlich PHP 5.6.x) verwendet. Das kannst du leicht testen, indem du auf der Konsole die Version abfragst:

php --version

Da dein Webserver mit PHP 7.2 läuft, wird es dafür auch eine Version für die Konsole bei dir geben. Hier musst du entweder ausprobieren, wie der Aufruf dazu ist oder deinen Provider fragen.

Viele Grüße
Andreas

Als Antwort auf Andreas Grabs

Re: Parse-Error PHP in Linux-Konsole

von Ekkehard Skirl -

Upsalla. Bin ich da wieder in die gleiche Falle getappst? Muss ich mir mal anschauen. Es ist schon etwas verwirrend mit den PHP-Versionen.

Scheinbar vergesse ich immer wieder, dass der Apache2 seine eigene PHP-Version nutzen kann.

Nach der Umstellung auf PHP 7.2 mit update-alternatives lief alles perfekt.

Danke für die wieder schnelle Hilfe.

Herzliche Grüße aus Velten
Ekkehard