PHP-Version ändern  [GELÖST]

Allgemeine Diskussionen rund um KeyHelp.
Post Reply
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

PHP-Version ändern

Post by 24unix »

Laut den Changelogs:
„Ensured full compatibility with PHP 8.1 and additionally fixed numerous 'deprecated notices' etc. throughout the codebase“

ist KeyHelp nun zu PHP 8.1 kompatibel.

Wäre es dann nicht möglich, den default cli Interpreter auf 8.1 umzustellen?

Mit keyhelp-php81 zu arbeiten ist sehr umständlich und führt zu solchen Konstrukten:

Code: Select all

keyhelp-php81 /usr/local/bin/composer require symfony/apache-pack
statt

Code: Select all

composer require symfony/apache-pack
Ausserdem kann man keine Scripte mit shebang nutzen,
#!/usr/bin/env php
zeigt unter KH ja auf die default Version des aktuellen Systems, im Falle von Bullseye halt 7.4.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: PHP-Version ändern

Post by Alexander »

Es bleibt weiterhin bei folgendem Hinweis:
screen.png
Die KeyHelp Version für PHP 8.1 besteht aus anderen Dateien als die für Systeme mit PHP 7.1 -> 7.4.
Wenn auf einem z.B. Debian 11 (PHP 7.4) System plötzlich PHP 8.1 läuft, wird KeyHelp definitiv nicht funktionieren, wenn nicht vorher KeyHelp komplett ausgetauscht wurde.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
Florian
Keyweb AG
Posts: 1243
Joined: Wed 20. Jan 2016, 02:28

Re: PHP-Version ändern

Post by Florian »

Hallo,

man kann doch hinter /usr/bin/env auch ein anderes Binary angeben, daher sollte doch /usr/bin/env keyhelp-php81 auch funktionieren.
Mit freundlichen Grüßen / Best regards
Florian Cheno

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: PHP-Version ändern

Post by 24unix »

Alexander wrote: Thu 8. Sep 2022, 10:13 Wenn auf einem z.B. Debian 11 (PHP 7.4) System plötzlich PHP 8.1 läuft, wird KeyHelp definitiv nicht funktionieren, wenn nicht vorher KeyHelp komplett ausgetauscht wurde.
OK, schade. Aber danke für die Info.
Florian wrote: Thu 8. Sep 2022, 10:18 Hallo,

man kann doch hinter /usr/bin/env auch ein anderes Binary angeben, daher sollte doch /usr/bin/env keyhelp-php81 auch funktionieren.
Ja, aber ich habe nicht auf jedem System KeyHelp.

Ich habe bis jetzt keine Lösung gefunden, wie ich Scripte, die php81 brauchen auf unterschiedlichen System laufen lassen kann, ohne sie explizit mit dem interpreter aufzurufen.

Zum Beispiel verwende ich mein phpbb_update Script auch auf Kisten, auf denen ich keine Root rechte habe.

Aber ich werde mal probieren, ob ich einen einem Pfad einen Symlink keyhelp-php81 auf die passende CLI Version setzen kann.

Wirklich portabel ist das dann trotzdem nicht.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: PHP-Version ändern

Post by Tobi »

24unix wrote: Thu 8. Sep 2022, 10:28 Ja, aber ich habe nicht auf jedem System KeyHelp.

Code: Select all


if (system == "keyhelp"){
// do some stuff
} else {
// do some other stuff
}

Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: PHP-Version ändern

Post by 24unix »

Tobi wrote: Thu 8. Sep 2022, 11:47
24unix wrote: Thu 8. Sep 2022, 10:28 Ja, aber ich habe nicht auf jedem System KeyHelp.

Code: Select all


if (system == "keyhelp"){
// do some stuff
} else {
// do some other stuff
}

Nice try :-)

Es geht aber nur um die Zeile mit dem Shebang, im Code selber ist das kein Problem.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: PHP-Version ändern

Post by Tobi »

24unix wrote: Thu 8. Sep 2022, 11:51 im Code selber ist das kein Problem.
Na genauso meinte ich das doch?
Nutze deinen Code, baue eine entsprechende Abfrage ein und gut ist.

KeyHelp verhält sich in manchen Grenzbereichen eigenständig.
Bei deiner selbstgeschriebenen Software hast du alle Freiheiten.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: PHP-Version ändern

Post by 24unix »

Tobi wrote: Thu 8. Sep 2022, 13:13
24unix wrote: Thu 8. Sep 2022, 11:51 im Code selber ist das kein Problem.
Na genauso meinte ich das doch?
Nutze deinen Code, baue eine entsprechende Abfrage ein und gut ist.
Ich glaube, wir reden irgendwie aneinander vorbei :-(

Ich würde gerne Scripte systemweit mit #!/usr/bin/env php starten.

Auf einen KH System geht das nicht, weil da php auf 7.4 steht. Bei den anderen Systemen steht mir aber kein keyhelp-php81 zur Verfügung.

Und
#! if "keyhelp" then /usr/bin/env/keyhelp-php81 else /usr/bin/env/php

geht halt nicht.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: PHP-Version ändern  [GELÖST]

Post by 24unix »

So, ich habe eine Lösung gefunden.

Im Home eine .zshenv anlegen:

Code: Select all

path=('/home/users/tracer/bin' $path)
Wichtig: Es muss der vollständige Pfad sein, ~ und $HOME klappen nicht.

So ist es OK:

Code: Select all

execve("/home/users/tracer/bin/php", ["php", "-v"], 0x7fffdb073898 /* 32 vars */) = 0
So nicht:

Code: Select all

execve("~/bin/php", ["php", "-v"], 0x7ffebf91e8b8 /* 32 vars */) = -1 ENOENT (No such file or directory)
execve("/usr/local/bin/php", ["php", "-v"], 0x7ffebf91e8b8 /* 32 vars */) = -1 ENOENT (No such file or directory)
execve("/usr/bin/php", ["php", "-v"], 0x7ffebf91e8b8 /* 32 vars */) = 0
Aber das geht:

Code: Select all

~/bin/php -v
PHP 8.1.7 (cli) (built: Jun 14 2022 10:02:46) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.7, Copyright (c), by Zend Technologies
Für die Leute, die zsh nicht nutzen:
path ist verknüpft mit PATH, path ist ein array, PATH ein String. Änderungen an jeweils einem von beiden wirken sich auf den anderen aus.

Code: Select all

% echo $PATH
/home/users/tracer/bin:/usr/local/bin:/usr/bin:/bin:/usr/games

% echo $path
/home/users/tracer/bin /usr/local/bin /usr/bin /bin /usr/games
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
Post Reply