php Version wird nicht geändert!

  • Hallo,


    ich versuche, Magento2 mit Hilfe des composers zu installieren. Magento2 benötigt zwingend PHP 7.3, 7.4 funktioniert ausdrücklich nicht.

    Der composer meldet mir zurück, ich würde PHP 7.4.3 nutzen: your PHP version (7.4.3) does not satisfy that requirement.


    Folgendes habe ich bereits versucht:

    alias php='/usr/local/php73/bin/php' steht nun in .bashrc und .profile. Nach einem erneuten Login wird mir dies bestätigt:

    Code
    bash-4.4$ php -v
    PHP 7.3.15 (cli) (built: Mar  9 2020 14:21:47) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.15, Copyright (c) 1998-2018 Zend Technologies
        with the ionCube PHP Loader + ionCube24 v10.3.9, Copyright (c) 2002-2019, by ionCube Ltd.
        with Zend OPcache v7.3.15, Copyright (c) 1999-2018, by Zend Technologies

    -

    /conf/phpversion aktualisiert bzw. die Version gemäß ReadMe auf "73" gesetzt.

    -

    in der Plesk Oberfläche an sich ist auch 7.3 ausgewählt...


    Was kann ich noch tun?

  • Das kannst du per SSH/FTP festlegen in der Datei conf/phpversion. Im gleichen Ordner gibt es auch ein phpversion.readme. Upps, man sollte zuende lesen :rolleyes:.

    Das funktioniert abere eigentlich. Mag allerdings ein paar Minuten dauern bis es greift.

  • Mittlerweile müsste jegliche Verzögerung des Shared Hostings ja durch sein.


    Folgende Beobachtung habe ich gemacht: /bin/php verweist weiterhin auf PHP 7.4. jetzt auf PHP 7.3. Vermutlich habe ich mir das eingebildet oder war zu ungeduldig, die Installation läuft trotzdem nicht.


    Zurück zu Beobachtungen während meiner Installation:

    Im ersten Schritt der Installation komme ich mit php /mybin/composer [Befehl] nun schonmal weiter, auch wenn es unschön ist.

    Danach geht es allerdings mit bin/magento setup:install [Parameter] weiter, sodass ich dort nicht den Workaround von oben anwenden kann. Hier wird mir nun folgendes zurückgemeldet:

    Code
    Deprecated Functionality: Function ReflectionType::__toString() is deprecated in /www/magento1/vendor/laminas/laminas-code/src/Reflection/ParameterReflection.php on line 83

    Ich bin wirklich kein Profi in php, aber interpretiere ich das Folgende richtig? Mit dem Wechsel von PHP 7.3 auf PHP 7.4 wurde etwas an den Klassen, die Magento versucht aufzurufen, verändert, sodass nur PHP 7.3 richtig läuft. Mein Magento versucht allerdings das Ganze mit PHP 7.4 - warum auch immer, das will ich ja wissen - auszuführen und scheitert somit logischerweise.

  • Isaac Danke für die Info, bin aufgrund des roten Hintergrundes von mehr ausgegangen...


    Der o.g. zweite Schritt funktioniert nun. Des Rätsels Lösung war ein weiterer Alias, diesmal für den composer. Nun bin ich bei:

    Code
    alias php='/usr/local/php73/bin/php'
    alias composer='/usr/local/php73/bin/php /mybin/composer'


    die folgenden Befehle waren sehr aufschlussreich für mich:

    Code
    which php
    type -a php
    which composer
    type -a composer #nach dem Anlegen des Alias

    siehe auch hier: https://laracasts.com/discuss/…th-different-php-versions

  • Das ist das selbe. Interessante Sicht der Dinge allerdings:

    Zitat

    After googling I found out that apparently the PHP v7.4 doesn't fully support M2

    Man könnte auch sagen: "M2 doesn't fully support PHP 7.4" :D