Zum Inhalt springen

Spezifische PHP Versionen in der Konsole verwenden

Die PHP Version für die Konsole ist unabhängig von der PHP Version in der Domainverwaltung.

In vielen Fällen ist es jedoch gewünscht, dass die PHP Versionen für die Webseite und auf der Konsole übereinstimmen.

In der Konsole kann die gewünschte PHP Version entweder direkt aufgerufen oder als Standard gesetzt werden.

Bestimmte PHP Versionen für einzelne Skripts

Solltest Du nur für bestimmte Skripte eine andere PHP Version benötigen, so kannst Du auch nur diese Skripte mit einer spezifischen PHP Version aufrufen. Hierzu benötigst Du zunächst den absoluten Pfad zur ausführbaren PHP Datei. Diese werden folgendermaßen zusammengebaut: /opt/alt/php<majorVersion><minorVersion>/usr/bin/php.

Beispiele:

  • PHP 8.3: /opt/alt/php83/usr/bin/php
  • PHP 8.1: /opt/alt/php81/usr/bin/php
  • PHP 8.0: /opt/alt/php80/usr/bin/php
  • PHP 7.4: /opt/alt/php74/usr/bin/php
  • PHP 7.3: /opt/alt/php73/usr/bin/php
  • PHP 7.2: /opt/alt/php72/usr/bin/php
  • PHP 7.1: /opt/alt/php71/usr/bin/php
  • PHP 7.0: /opt/alt/php70/usr/bin/php
  • PHP 5.6: /opt/alt/php56/usr/bin/php
  • PHP 5.5: /opt/alt/php55/usr/bin/php
  • PHP 5.4: /opt/alt/php54/usr/bin/php
  • PHP 5.3: /opt/alt/php53/usr/bin/php
  • PHP 5.2: /opt/alt/php52/usr/bin/php

Alle PHP Versionen finden Sie unter: Verfügbare PHP-CLI Versionen

Füge diesen Dateipfad vor dem Skript ein bzw. trage diesen Dateipfad als PHP Binary ein, falls das Programm so eine Einstellung führt.

Führst Du beispielsweise folgenden Befehl aus

php app/console doctrine:generate:entity 

benötigst hierfür aber PHP 8.2, so kannst Du künftig 

/opt/alt/php82/usr/bin/php app/console doctrine:generate:entity 

ausführen.

Standard PHP Version für das gesamte Paket wählen

Per SSH mit dem Webserver und dann die folgenden Schritte ausführen:

1. Ein Verzeichnis .local/bin im Hostingpaket Stammverzeichnis anlegen:

mkdir -p $HOME/.local/bin

2. In das eben erstellte Verzeichnis navigieren:

cd $HOME/.local/bin

3. Symlink auf die gewünschte PHP Version setzen. Siehe hierzu das Beispiel weiter oben an, um den Pfad zusammenzusetzen. 

# für PHP 8.3
ln -s /opt/alt/php83/usr/bin/php $HOME/.local/bin/php

# für PHP 8.2
ln -s /opt/alt/php82/usr/bin/php $HOME/.local/bin/php

# für PHP 8.1
ln -s /opt/alt/php81/usr/bin/php $HOME/.local/bin/php

# für PHP 8.0
ln -s /opt/alt/php80/usr/bin/php $HOME/.local/bin/php

# für PHP 7.4
ln -s /opt/alt/php74/usr/bin/php $HOME/.local/bin/php

# für PHP 7.3
ln -s /opt/alt/php73/usr/bin/php $HOME/.local/bin/php

# für PHP 7.2
ln -s /opt/alt/php72/usr/bin/php $HOME/.local/bin/php

# für PHP 7.1
ln -s /opt/alt/php71/usr/bin/php $HOME/.local/bin/php

# für PHP 7.0
ln -s /opt/alt/php70/usr/bin/php $HOME/.local/bin/php

# für PHP 5.6
ln -s /opt/alt/php56/usr/bin/php $HOME/.local/bin/php

# für PHP 5.5
ln -s /opt/alt/php55/usr/bin/php $HOME/.local/bin/php

# für PHP 5.4
ln -s /opt/alt/php54/usr/bin/php $HOME/.local/bin/php

# für PHP 5.3
ln -s /opt/alt/php53/usr/bin/php $HOME/.local/bin/php

# für PHP 5.2
ln -s /opt/alt/php52/usr/bin/php $HOME/.local/bin/php

Damit der Befehl "php" im gesamten Hostingpaket die gewünschte Version nutzt, ist es am einfachsten, den aktuellen Ordner zu der PATH-Variable hinzuzufügen. Diese Variable beinhaltet die Orte, an denen sich ausführbare Dateien befinden. Dadurch können später dann nach belieben Skripte mit der PHP Version aufgerufen werden.

4. PATH-Variable erweitern

Eine Datei .bash_profile im Stammverzeichnis des Pakets anlegen, zum Beispiel mit dem Editor nano:

nano $HOME/.bash_profile

In diese Datei die folgende Zeile einfügen. Diese erweitern die PATH-Variable um das zuvor erstellte Verzeichnis. 

export PATH=$HOME/.local/bin:$PATH

Anschließend die Datei speichern und den Editor beenden.

Damit diese Änderungen wirksam werden, muss die Datei .bash_profile mit folgendem Befehl neu eingelesen werden:

source $HOME/.bash_profile

Danach kann die gewünschte PHP Version im gesamten Hostingpaket mit dem Befehl "php" aufgerufen werden.

Aktualisiert: 20.12.2023