PHP version via SSH abweichend zu Webhostingeinstellung

  • Hallo,

    ich habe im ControlPanel Webhosting die PHP Version für das Webhosting und auch für die DOmains alle auf PHP 8.2 eingestellt. Wenn ich via Putty mich nun einlogge erhalte ich jedoch bei Aufruf von php -v, folgende Info:


    "PHP 7.2.34 (cli) (built: Nov 30 2023 18:22:04) ( NTS )"

    Wieso ist hier nicht die Version 8.20 nun verfügbar - muss ich irgendwo noch etwas zusätzlich einstellen?

  • Hi,


    wahrscheinlich hast du im PATH nicht die PHP Version angepasst. Sollte einfach mit dem Command klappen:

    Code
    sudo update-alternatives --config php
  • Hi,


    wahrscheinlich hast du im PATH nicht die PHP Version angepasst. Sollte einfach mit dem Command klappen:

    Code
    sudo update-alternatives --config php

    Bei der Eingabe des Commands in Putty erhalte ich dies:

    "bash-5.1$ sudo update-alternatives --config php

    bash: sudo: command not found

    "



    Wo wäre den der Punkt im Control Panel (damit ich es im Zweifel demnächst direkt richtig machen kann)?

    Ich habe ein Webhosting Paket 8000SE (falls das relevat sein sollte)

  • Du könntest dir auch Aliasse anlegen oder direkt die vollen Pfade aufrufen:


    Woher soll die Shell wissen, welche PHP-Version sie jetzt verwenden soll? Ein Verzeichnis kann ja mehrfach mit unterschiedlichen PHP-Versionen ausgeliefert werden. Du musst also manuell die richtige Version auswählen.

    RS Brezn | VPS 500 G8 Plus | 2× VPS Karneval 2020 | VPS Pocket Admin | RS Cyber Quack | VPS 500 ARM


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • Sorry ich bin an der Stelle gerade am Beginn zum Thema Hosting etc.

    D.h. ich muss zu beginn z.B. in Putty "alias php82='/usr/local/php82/bin/php" angeben oder muss ich eine htaccess datei in das jeweilige VErzeichnis packen?

  • Nein, statt php -v rufst du einfach /usr/local/php82/bin/php -v auf.


    Du könntest dir alternativ z.B. eine .bashrc im Root anlegen und darin die Aliasse definieren. Dann brauchst du nicht /usr/local/php82/bin/php eingeben, sondern kannst einfach nur php82 verwenden.

    RS Brezn | VPS 500 G8 Plus | 2× VPS Karneval 2020 | VPS Pocket Admin | RS Cyber Quack | VPS 500 ARM


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • Langsam ernährt sich das Eichhörnchen.

    Also ich gebe nun zuerst ein
    "/usr/local/php82/bin/php -v"
    dann sehe ich das Version 8.2 dort steht, dann gehe ich in meinen Unterordner wo ich den folgenden Befehl ausführe
    "php spark shield:setup"

    Darauf erhalte ich wieder die Fehlermeldung"
    Fatal error: Uncaught Error: Call to undefined function str_starts_with() in /FOLDER/FOLDER/spark:28"
    Dies weißt wohl darauf hin, dass die Funktion in der aktuell laufenden PHP Umgebung nicht zur Verfügung steht.
    Ich gebe wieder "php -v" und lese nun wieder das doch wieder PHP 7.2.34 läuft

    Irgendwas mache ich also offensichtlich noch falsch...was ist es?

  • Lars hat es oben beschrieben: dauerhaft ändern kannst du es, indem du wie hier beschrieben die Version festlegst: /conf-options/phpversion.readme


    Ansonsten musst du eben JEDES mal die gewünschte Version gezielt angeben, in deinem Fall also statt php spark shield:setup das hier: /usr/local/php82/bin/php spark shield:setup

  • ok, langsam verstehe ich das Prinzip wie sich also die Logig der Kommandos aufbaut, blöderweise bekomme ich nun auf den
    "/usr/local/php82/bin/php spark shield:setup"
    folgendes

    "No such file or directory" hätte ich noch irgendwo den Pfad zur "spark" datei einbauen müssen?

  • Liegt die Datei spark denn in dem Verzeichnis, in dem du den Befehl ausführst?

    RS Brezn | VPS 500 G8 Plus | 2× VPS Karneval 2020 | VPS Pocket Admin | RS Cyber Quack | VPS 500 ARM


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • This is expected, because you're not calling the webserver PHP, you're calling the PHP cli, from the command line. These are two very different commands with two very different configuration files.


    From SSH

    Code
    locate phpize

    This will generate locations of the php versions on your server. PHPIZE is simply a command tool used for php. This will usually be something like


    1. /usr/local/lib/php
    2. /usr/local/lib/php81
    3. /usr/local/lib/php74
    4. /usr/local/lib/php82
    5. /usr/local/lib/php83

    Each of those directories will have a bin/php file, which is what you want to call, not php directly