PHP Version umgestellt - aber nicht umgestellt

  • Heya,


    fuer meinen Expert S Webspace habe ich via WCP die PHP-Version von 5.3 auf 7.1 hochgeschraubt. Dies habe ich fuer beide gelisteten Domains (hosting*****.*****.netcup.net, sowohl die eigentliche, sprechende Domain) vorgenommen. Mir ist nicht ganz klar, warum hier ueberhaupt zwei Domains angezeigt werden - bzw. warum ich beide mit unterschiedlichen Einstellungen belegen kann, immerhin zeigen Sie auf denselben Webspace / Server?


    So oder so, umgestellt habe ich es auf beiden. Dennoch schlagen PHP-Scripts, welche mindestens PHP 5.4 brauchen, fehl. Der Grund wird klar, wenn ich mit SSH auf den Server gehe und ein "php -v" absetze: Da kommt dann "PHP 5.3.3 (cli) (built: Mar 22 2017 12:27:09)" zurueck. Sprich: WCP sagt, PHP ist auf 7.1, der Server scheint davon aber nichts zu wissen.


    Was habe ich vergessen oder uebersehen? Hat jemand einen Tipp?


    Vielen Dank!

  • Ah, ein guter Hinweis! Ich muss jetzt aus dem Haus, aber das probiere ich gleich morgen. Dann muesste ich vermutlich Scripts, die eine shebang wie #!/usr/bin/env php haben, zu #!/usr/bin/env php71 aendern - oder gibt's eine Moeglichkeit, dem Server beizubringen, immer php71 zu nutzen?


    Update: Habe es gerade noch schnell probiert; auf php70 oder php71 bekomme ich via SSH nur ein command not found zurueck.

  • Was Sudo sagt. Und nicht C(ommand)L(ine)I(nterface) mit C(ommon)G(ateway)I(nterface) verwechseln ;)

    Bei der hosting*****-Domain handelt es sich um eine per Default angelegte Domain, wenn du z.B. das Hosting buchst, aber noch keine Domain drin hast. Die IP des Shared Hostings muss ja irgendwohin auflösen, ansonsten kämst du ja gar nicht per beispielsweise FTP oder SSH an den Webspace.

  • Der Wiki-Eintrag ist natuerlich super. Habe in den Scripts entsprechend die shebang von #!/usr/bin/env php zu #!/usr/local/php71/bin/php geaendert, das hat geklappt. Interessant waere nun, ob man das environment (also den PATH) des Servers so anpassen kann, dass er beim Aufruf von php (also z.B. Script mit der ersteren shebang) immer 7.1 benutzt. Theoretisch sollte das wie folgt funktionieren, glaube ich:


    set PATH="/user/local/php71/bin:$PATH"


    Jedoch scheint dies keinen Effekt zu haben. Vermutlich darf man das nicht. Gibt's noch einen anderen Weg?

  • Gibt es inzwischen eine einfacherer Möglichkeit das zu verändern? Viele php scripte funktionieren inzwischen mit php5.6 nicht mehr und z.b. bei composer.phar kann man auch nicht so ohne weiteres shebang ändern. Danke für die Hilfe!

  • Wieso kannst du bei composer die PHP-Version nicht ändern? Du rufst das doch in folger Art auf, oder?


    Code
    /usr/local/bin/php/5.3/bin/php ~/composer-1.0.3.phar
    
    oder
    
    php-5.2 ~/composer.phar


    Oder wie rufst du das auf?

    "Security is like an onion - the more you dig in the more you want to cry"

  • vmk: das geht bei meinem webhosting (web2000) via SSH definitiv alles nicht.


    Ich rufe es einfach direkt oder mit php davor auf; es nimmt dann aber natürlich immer php5.6


    Ich hab alle möglichen varianten von php72, php-7.2 usw. durchprobiert und auch mit den pfaden die oben weiter verlinkt sind, aber das einzige was geht ist die Veränderung des shebangs. Allerdings nicht bei composer.phar da das seine eigene signatur überprüft bevor es startet.

  • JKMakowka Was genau rufst du auf?

    Ich habe es gerade unter zwei verschiedenen Webhosting Accounts probiert mit

    /usr/local/php72/bin/php composer.phar --version

    (bzw. php56, php70, php71 php72, php73)

    und es funktioniert ohne Probleme.


    Dazu hab ich gesehen gibt es mittlerweile direkt in /bin auch ein php binary (Softlink auf die obige 7.2).

    Das heißt php composer.phar --version oder direkt ./composer.phar --version geht auch. Das muss netcup irgendwann eingebaut haben, das gab es definitiv noch nicht als ich damals dann eine passende .bash_profile angelegt hab.
    (Die letzten beiden Optionen sind dann halt fest mit php 7.2, bzw für anderen Versionen kann man ja immer noch eine .bash_profile anlegen und den Pfad entsprechend setzen)