Dvě verze PHP v rámci jednoho serveru

Dvě verze PHP v rámci jednoho serveru
« kdy: 30. 01. 2023, 17:14:58 »
Ahoj všem, snažím se zařídit na Almalinux 8 aby tam kromě full support cycle verze 7.4 byla k dispozici i verze 8.0.

Obě tyto verze jsou dostupné jako modul:

Kód: [Vybrat]
[root@petralma103test web]# yum module list php
Last metadata expiration check: 2:22:03 ago on Mon 30 Jan 2023 02:30:38 PM CET.
AlmaLinux 8 - AppStream
Name                                             Stream                                              Profiles                                                               Summary
php                                              7.2 [d]                                             common [d], devel, minimal                                             PHP scripting language
php                                              7.3                                                 common [d], devel, minimal                                             PHP scripting language
php                                              7.4 [e]                                             common [d], devel, minimal                                             PHP scripting language
php                                              8.0                                                 common [d], devel, minimal                                             PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Pokud se snažím nainstalovat php80, tak mi to píše, že nic takového neexistuje.

Pokud se snažím nějak nainstalovat výše zmíněný modul PHP verze 8.0, tak mi to píše konflikt s tím nyní používaným PHP verze 7.4.

Poradíte mi prosím někdo, jak docílit souběžné kombinace 7.4 a 8.0 oba použité pouze z výchozího repozitáře Almalinux 8, bez použití repozitáře třetího zdroje jako je například remi.repo.

Děkuji všem za pomoc a rady.

BTW: Proč je jako [d] = default verze 7.2, když ta už v Almalinux 8 odešla do důchodu a není dále RHEL 8 podporována?
« Poslední změna: 30. 01. 2023, 18:26:00 od Petr Krčmář »


Re:Dvě verze souběžně v rámci jednoho serveru
« Odpověď #1 kdy: 30. 01. 2023, 17:56:05 »
Potřebuji tedy potvrdit, že v rámci jednoho operačního systému nelze používat dvě verze PHP z officiálního repozitáře/streamu.

A že je tedy nezbytné v případě nutnosti použití více verzí použít repoitáře třetích stran jako je remi.repo.

Přijde mi linux v tom případě strašně hloupý, že když človek chce více verzí PHP na jednom server = musí použít third-party repozitář.

Není případně něco přímo v RHEL 8/Centos 8/Almalinux 8, co by umožnilo použít více verzí PHP souběžně?

Zopper

  • *****
  • 713
    • Zobrazit profil
Re:Dvě verze souběžně v rámci jednoho serveru
« Odpověď #2 kdy: 30. 01. 2023, 18:20:07 »
Tohle je záležitost balíčkovacího systému/distribuce a nastavení. Některé (například Gentoo, nebo do jisté míry Archlinux a Fedora) to umožňují. Jiné (Debian-based distra s APT) jsou optimalizované na happy path s jedinou verzí. Ono totiž nejde jen o verzi jednoho programu, ale o všechny knihovny a další závislosti, které v tu chvíli jako pavouka musíš také držet ve více verzích, a místo relativně jednoduchého stromu závislostí máš najednou těch stromů několik, musíš je nějak držet oddělené, a prostě je to hromada práce, která pro většinu uživatelů nemá smysl.

Koukám, že Almalinux má kořeny v RHEL. Máš tam dostupný balíčkovač dnf místo yum? Pokud ano, mělo by to jít, jen budeš muset dělat nějakou manuální práci: https://unix.stackexchange.com/questions/723298/can-i-install-multiple-versions-of-the-same-package-using-dnf

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #3 kdy: 30. 01. 2023, 18:53:51 »
Co posíláš je jakési stahování a instalace jednotlivých balíčků ručně, což mi přijde jako nesystémové řešení, proto se mi zdá jako nepoužitelné řešení.  Proto dále s nadějí doufám, že někdo přijde s nějakým lepším systémovým řešení bez použití dockeru či third-party repozitářů jako je remi repozitář.

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #4 kdy: 30. 01. 2023, 19:26:22 »
spíše tvůj use case je nesystémový :), chceš mít dvě verze php jako systémový balíček, na což není redhat a jeho klony postavený, je to věc balíčkovacího systému a toho jak je postavený repositář, redhat umí dobře jednu verzi a ne dvě.

Žádná distribuce neumí vše, nic ti ale nebrání si zvolit svoji cestu, není to uzavřené, my hodně používáme containery (podman) na možnost mít více verzí zároveň, tj. pak si to aplikace nese s sebou. Stejně tak, pokud je potřeba třeba více verzí MySQL tak máme prostě více serverů (= single responsibility) a nemícháme to dohromady.


mark42

  • ***
  • 115
    • Zobrazit profil
    • E-mail
Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #5 kdy: 31. 01. 2023, 16:05:06 »
Taka naivna otazka... A kde ti budu tie dve verzie PHP resp. webservera bezat? Lebo distribucie maju v kazdej verzii pripraveny konfigurak, ktory ich pusti obidve na porte 80/443 a teda jedna verzia ti len zaloguje obsadene porty a nenastartuje.
Toto je jeden z dovodov, preco sa tomu distribucie brania a budes si to musiet riesit rucne.

by_cx

  • ****
  • 290
    • Zobrazit profil
    • E-mail
Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #6 kdy: 31. 01. 2023, 17:09:29 »
ktory ich pusti obidve na porte 80/443 a teda jedna verzia ti len zaloguje obsadene porty a nenastartuje

PHP snad nikdy nemělo integrovaný HTTP server pro produkci. Byly tu jen lepší a horší způsoby, jak ho připojit k Nginxu, Apachi nebo k jinému web serveru. Ty webservery samozřejmě více verzí PHP umí a PHP může být nainstalováno ve více verzích na jednom systému. Druhou věcí ale je, že balíčkovací systém to mrskne do /etc/php a podobných cest, ostatní balíčky s tím počítají a tím se nám cesta k více verzím uzavře.

Osobně bych doporučil použít Docker, ale pokud to není možné, tak vždycky jde stáhnout zdroják PHP a sestavit si ho. Třeba i do vlastního RPM balíčku a obalit to nějakou CI pipeline, ať se člověk nepachtí s aktualizacema ručně.

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #7 kdy: 31. 01. 2023, 20:16:03 »
Zdravím,
pokud je potřeba provozovat na jednom http serveru více php verzí nevidím v tom problém běžně se to řeší přes FPM nebo FCGI a http dns vhost.

Neřešil bych vůbec co Vám dává distribuce za php runtime, pro chod webu můžete mít více php instancí a každá sajta je obsluhována jiným runtimem na stejném portu 80 nebo 443 a ani jedna nemusí využívat php z distribučních mirrorů.
Běžně se to tak dělá.
Pokud se Vám s tím nechce patlat na howtoforge máte navody na ispconfig a podle toho to zvládnete.

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #8 kdy: 31. 01. 2023, 23:49:23 »
Zdravím,
pokud je potřeba provozovat na jednom http serveru více php verzí nevidím v tom problém běžně se to řeší přes FPM nebo FCGI a http dns vhost.

Neřešil bych vůbec co Vám dává distribuce za php runtime, pro chod webu můžete mít více php instancí a každá sajta je obsluhována jiným runtimem na stejném portu 80 nebo 443 a ani jedna nemusí využívat php z distribučních mirrorů.
Běžně se to tak dělá.
Pokud se Vám s tím nechce patlat na howtoforge máte navody na ispconfig a podle toho to zvládnete.

a běžně se takové php instance bokem neaktualizují, že jo. Předpokládám, že scientific se na to ptá právě proto, že se nechce starat o aktualizace a řešit nic navíc, jen by rád měl více verzí php najednou out of box.

ispconfig je skvělá věc, pokud člověk chce mít na serveru potenciálně spousty zranitelností.

Spíše než použití fpm/fscgi na jiných portech/socketech jde o konfigurace k php, všechny balíčky počítají s /etc/php a tam se i instalují další pluginy, které zároveň triggerují restarty a reloady. Více verzí znamená kompletně zdvojit strom všeho na čem php zavisí a co závisí na něm, což je třeba příklad toho remi.repo.

Kombinování více verzí php na redhat klonech nelze bez ruční práce nebo neoficiálních repositářů, osobně doporučuji containery (docker, podman, systemd-nspawn atd.) nebo virtuály/více serverů.

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #9 kdy: 01. 02. 2023, 08:29:49 »
Mezitim v debian svete solved behem 5 minut diky Ondrovi a fpm.

Obecne bys mel zvazit containers.
Děkuji za možnost editace příspěvku.

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #10 kdy: 01. 02. 2023, 08:44:57 »
Mezitim v debian svete solved behem 5 minut diky Ondrovi a fpm.

Obecne bys mel zvazit containers.

ale tady je možné úplně stejné řešení, https://remi.mirror.karneval.cz/enterprise/9/, ale je to pořád řešení mimo distribuci a to asi scientificu vadí a tak se ptá, jestli to není možné dělat nativně přímo v distribuci.

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #11 kdy: 15. 03. 2023, 20:29:29 »
Mezitim v debian svete solved behem 5 minut diky Ondrovi a fpm.

Obecne bys mel zvazit containers.

Už som sa bál, že nikto Ondrejove deb repo nespomenie. Fakt jednoduché riešenie a zvážil by som fakt radšej prechod na debian/ubuntu a zjednodušiť si život. Ondrej udržiava pekne všetky verzie up-to-date a fakt, že si viem cez apache/nginx vhosts + multi fpm pooly rozbehať na jednej mašine ľubovoľný nový aj prehistorický projekt (od php 5.6) je fakt na nezaplatenie.

Edit: sorry, až po odoslaní som si všimol, že ide o starší thread. :)

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #12 kdy: 16. 03. 2023, 03:47:41 »
Pouzi dnf, yum je uz zastaraly.

Hlasi ti ze ju nepozna pretoze ju nemas povolenu. Ked tak
Kód: [Vybrat]
dnf module enable php:8.0
dnf module install  php:8.0

Co mas vlastne proti remi?  Je to bezne pouzivane riesenie, pravidelne aktualizovane standartnou cestou.

Re:Dvě verze PHP v rámci jednoho serveru
« Odpověď #13 kdy: 16. 03. 2023, 04:44:49 »
Btw, obavam sa ze cesta po ktorej ides nevedie k cielu ktory chces.

Strreamy ti neumoznia mat viacero verzii php v jednej instalacii.

Alma je free alternativa k RHEL, ide o enterprise prostredie, kde sa predpoklada ze pouzijes kvm, libvirt, podman ak to uz chces setrit a mat na jednom zeleze.  To je oficialna cesta. Ak predsa len chces mat viacero verzii v jednej instalacii systemu, tak cesta je SCL + remi.