Více verzí PHP na jednom serveru

★ ★ ★ ★ ★ Nehodnoceno

1. Cíl a hranice

Server nabízí PHP 8.1 pro jeden starší web, PHP 8.4 jako základ pro CMS a PHP 8.5 pro testování aktuálních aplikací. Každý web si verzi vybírá v ISPConfig a běží ve vlastním poolu PHP-FPM.

2. Pravidla pro verze

PHPRoleTypické požadavky
8.1Zpětná kompatibilitaPonechte jen pro aplikace, které zatím nelze upravit pro novější verzi PHP.
8.4Stabilní základ pro CMSKompletní sada rozšíření pro CMS včetně Imagicku a Redisu.
8.5Aktuální vývoj a testováníPoužívejte až po testech kompatibility aplikace a závislostí.

Každá aktivní verze potřebuje FPM, CLI pro diagnostiku a rozšíření, která skutečně používají přiřazené aplikace. Neinstalujte rozšíření jen proto, že je používá jiná verze.

3. Instalace PHP-FPM a rozšíření

Balíčky instalujte ze schváleného repozitáře PHP pro danou verzi Debianu. U verzí PHP, které Debian sám nedodává, se zdroj balíčků může lišit.

Příklad pro základ CMS

apt install php8.4-bcmath php8.4-bz2 php8.4-cli php8.4-common php8.4-curl php8.4-fpm php8.4-gd php8.4-igbinary php8.4-imagick php8.4-intl php8.4-mbstring php8.4-mysql php8.4-opcache php8.4-readline php8.4-redis php8.4-xml php8.4-zip

Stejný postup pro další verze

apt install php8.1-bcmath php8.1-cli php8.1-fpm php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-xml php8.1-zip
apt install php8.5-bcmath php8.5-cli php8.5-fpm php8.5-curl php8.5-gd php8.5-intl php8.5-mbstring php8.5-mysql php8.5-xml php8.5-zip
systemctl enable --now php8.1-fpm php8.4-fpm php8.5-fpm

4. Registrace každé verze v ISPConfig

Otevřete System → Additional PHP Versions a vytvořte jeden záznam pro každé běhové prostředí. Jako handler nastavte PHP-FPM a použijte skutečné cesty k binárce a konfiguraci na serveru.

PoložkaPříklad pro PHP 8.4
Init skript PHP-FPMphp8.4-fpm
Adresář poolů PHP-FPM/etc/php/8.4/fpm/pool.d
Socket PHP-FPM/run/php/php8.4-fpm.sock
Cesta k php.ini pro PHP-FPM/etc/php/8.4/fpm/php.ini
Binárka CLI/usr/bin/php8.4

Totéž zopakujte s odpovídajícími cestami pro 8.1 a 8.5. Záznam uložte a nechte ISPConfig změnu zpracovat, než ho přiřadíte produkčnímu webu.

5. Výběr PHP pro jednotlivý web

  1. Otevřete Sites → Website a vyberte web.
  2. Na záložce Options nastavte PHP na PHP-FPM.
  3. V poli PHP Version vyberte správnou položku.
  4. Uložte, počkejte, až ISPConfig zapíše konfiguraci vhostu a poolu, a web otestujte.

Starší web nechte izolovaný na PHP 8.1. Nepovyšujte ho jen proto, že jsou nainstalované novější verze; nejdřív ověřte framework, závislosti z Composeru, vlastní kód i plánované příkazy.

6. Ověření bez vystavení phpinfo()

php8.1 -v
php8.1 -r 'echo bcadd("1.20", "2.30", 2), PHP_EOL;'
php8.4 -r 'echo bcadd("1.20", "2.30", 2), PHP_EOL;'
php8.5 -r 'echo bcadd("1.20", "2.30", 2), PHP_EOL;'
php8.4 -m
php8.5 --ini
systemctl --no-pager status php8.1-fpm php8.4-fpm php8.5-fpm
find /run/php -maxdepth 1 -name 'php*-fpm.sock' -ls

Na úrovni webu použijte zabezpečený diagnostický endpoint nebo stavovou stránku samotné aplikace a potom ho odstraňte. Nenechávejte veřejný soubor s phpinfo() v kořenovém adresáři produkčního webu.

7. Údržba a vyřazení

  • Aktualizujte všechny nainstalované verze PHP, nejen výchozí.
  • U každé hostované aplikace si zaznamenejte, jakou verzi PHP vyžaduje.
  • Po změně rozšíření nebo php.ini restartujte jen příslušnou službu FPM.
  • Weby na PHP 8.1 pravidelně kontrolujte a úpravu aplikace pro novější verzi PHP plánujte dřív, než skončí podpora dané verze v repozitáři.
  • Starou verzi PHP odstraňte, až když na ni neodkazuje žádný web, cron ani nasazovací příkaz v CLI.

Výsledek: weby se mohou vyvíjet nezávisle a zpětná kompatibilita zůstává výslovná a ohraničená.

0.0
★ ★ ★ ★ ★
0 hodnocení
5 ★
0 %
4 ★
0 %
3 ★
0 %
2 ★
0 %
1 ★
0 %

Přidejte komentář

Nic tu není.

Zatím sem nebyl vložen žádný komentář.