PHP-Versionen und SSH

Nachdem eine SSH-Verbindung hergestellt wurde ist die standardmäßig eingestellte PHP-Version PHP 7.1. Die Standard-Version des Accounts wird derzeit nicht berücksichtigt (was theoretisch möglich wäre, in dem wir Deine .bash_profile verändern, aber wir haben dazu bisher zu wenig Anfragen bekommen).

Per SSH kannst Du einfach statt dem normalen php (ein Link zu /opt/lima-php/7.0/bin/php) eine andere Version aufrufen:

[ lordoflima@lima-ssh ] ~
$> which php
/usr/local/bin/php
[ lordoflima@lima-ssh ] ~
$> ls -lh /usr/local/bin/php
lrwxrwxrwx 1 root root 25 Apr 6 15:08 /usr/local/bin/php -> /opt/lima-php/7.0/bin/php
[ lordoflima@lima-ssh ] ~
$> /opt/lima-php/7.2/bin/php -i | grep 7.2
PHP Version => 7.2.3

Default-Version ändern

Die einfachste Möglichkeit, die PHP-Version dauerhaft zu ändern, ist die Anpassung der PATH-Umgebungsvariable.

PATH erweitern

Die einfachste Möglichkeit ist, die PATH-Umgebungsvariable zu erweitern, und zwar mit dem bin-Verzeichnis der gewünschten PHP-Version.

[ lordoflima@lima-ssh ] ~
$> php -i | grep 'PHP Version'
PHP Version => 7.1.15
[ lordoflima@lima-ssh ] ~
$> PATH="/opt/lima-php/7.2/bin:${PATH}"
[ lordoflima@lima-ssh ] ~
$> php -i | grep 'PHP Version'
PHP Version => 7.2.3

Um die Änderung dauerhaft zu machen trage die folgende Zeile (mit der entsprechenden PHP-Version eingesetzt) in der Datei .bash_profile in Deinem Stamm-Verzeichnis ein, z.B. mit vim ~/.bash_profile:

PATH="/opt/lima-php/7.2/bin:${PATH}"

Nach einem Neustart der SSH-Sitzung (die aktuelle .bash_profile kann auch mit . ~/.bash_profile in der laufenden Sitzung angewendet werden) ist die Änderung aktiv.

Eigenes "bin"-Verzeichnis erstellen

Um den "Standard" für Deinen Account zu ändern, kannst Du die .bash_profile wie oben erwähnt anpassen. Dazu gibt es zwei Möglichkeiten, ein Alias oder einen eigenen "bin path" (z.B. ~/mybin), der im PATH eingetragen wird. Die Variante, den PATH zu ändern, dürfte eine bessere Kompatibilität ausweisen. Dazu legen wir ein Verzeichnis "binpath" an, erstellen darin einen Link zu einer spezifischen PHP-Version, den wir "php" nennen und fügen diesen zum PATH hinzu. Um die Änderung dauerhaft zu machen muss die Änderung des PATH als eigene Zeile in die .bash_profile eingetragen werden.

[ lordoflima@lima-ssh ] ~
$> mkdir -p ~/mybin
[ lordoflima@lima-ssh ] ~ 
$> PATH="$(echo ~)/mybin:${PATH}"
[ lordoflima@lima-ssh ] ~
$> ln -sf /opt/lima-php/7.0/bin/php ~/mybin/php
[ lordoflima@lima-ssh ] ~
$> php -i | grep 'PHP version'
PHP Version => 7.2.3

Hinweis: Wir empfehlen, die Variante PATH="$(echo ~)/mybin:${PATH}" zu verwenden (wobei das ~ durch ein echo expandiert wird) anstatt PATH="~/mybin:${PATH}". Das hat den Grund, dass composer als Shebang /usr/bin/env php verwendet und env das PHP-Executable nicht findet, wenn der Pfad nicht absolut angegeben wird. composer verwendet dann die falsche PHP-Version (prüfbar mit composer -V -vvv).