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.2: /opt/alt/php82/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.