Jak provozovat staré PHP aplikace

23. února 2022

Lang: cs en de es

Vývoj jde rychle kupředu. Z PHP se nakonec stal programovací jazyk, který použitá mnoho i vážných projektů. A i vzhledem k rychlému rozvoji jazyka PHP se projekty, které jsou bez údržby staly tzv. "legacy projekty". Legacy projekt je technologicky zastaralý projekt, u kterého je problém další údržba a hlavně rozvoj. A časem je i problém provoz takových starých aplikací. V tomto článku popíši, jaké jsou možnosti zajištění prostředí pro běh legacy projektů v programovacím jazyce PHP.

Technologický posun

Přišlo PHP7 a PHP8 a podpora starých verzí PHP skončila a již dávno není k dispozici v linuxových distribucích. S novou verzí jazyka PHP přišlo mnoho změn, ale jsou i projekty, které tento posun nereflektovaly. Majitelé těchto projektů řeší, kde a jak staré projekty provozovat?

Video provoz starých PHP aplikací

Shrnutí obsahu článku si můžete poslechnout i ve videu:

Má smysl programovat v PHP?

V úvodu asi některé lidi napadne jestli má vůbec smysl programovat v jazyce PHP. Kdo se nad tím chce zamyslet, tak jsem na to natočil samostatné video, které se jmenuje: Má smysl programovat v PHP?:

Provoz starého PHP

Předně je potřeba říci, že provozovat staré aplikace se starým PHP je nouzová volba, protože z pohledu bezpečnosti, ceny za údržby to je neefektivní. A pokud by se měla daná aplikace dále rozvíjet, je to často neudržitelné, jak z pohledu někoho sehnat, tak tu náročnou údržbu zaplatit. Navíc s provozem a úpravou staré aplikace bude i víc problémů.

Záleží, jak hodně starou verzi PHP potřebujete. Připravit a provozovat PHP starší než verze 5.6 bude na aktuálních serverech hodně velký problém.

Provoz PHP5.6

Pokud máte shodného linux admina, bude vám schopen připravit server s aktuálním OS a verzemi PHP 5.6, 7.0 až 7.4 i 8.0 nebo 8.1 (leden 2022). Jak to zprovoznit je mnoho způsobů, jen prosím vynechte vlastní kompilaci! Osobně preferuji použít na serveru distribuci Debian doinstalovat PHP z repositářů sury a PHP provozovat PHP FPM. A to hlavně proto, že tak můžete zároveň na serveru provozovat webserver s více verzemi PHP zároveň a jednoduše PHP aktualizovat.

Postup jak zprovoznit staré verze PHP můžete vidět v tomto video návodu, kde popisuji jak provozovat různé verze PHP ať už novější nebo straší než vaše linuxová distribuce poskytuje.

ISP Config a staré verze PHP

Pokud používáte nástroj ISP Config na zprávu vašeho webhostingu, tak doplnění dalších verzí PHP je obdobné. A pomocí samotného ISP Configu můžete přepínat verze PHP a nastavovat průzné verze PHP pro jednotlivé projekty.
ISP Config doporučuji pro uživatele, kteří chtějí mít uživatelsky pohodlný nástroj pro zakládaní vlastních hostingů.

Video návod nastavení dalších verzí PHP v ISP Configu

Prehistorické PHP

VPS

Instalace i kompilace PHP starších než 5.6 bude na aktuálních verzí linuxových distribucích problém. Nejjednodušším řešením tak je vyhradit na tyto staré projekty samostatnou VPS a tam mít starou verzi nějaké linuxové distribuce, kde je PHP v požadované verzi.

Docker

Zajímavou možností může být Docker, pomocí něho můžete zprovoznit lehký linuxový kontejner s danou verzí OS a knihoven. Nabízí se tak možnost připravit kontejner s konkrétní starou verzí PHP a v tomto kontejneru provozovat prehistorickou aplikaci. Kontejner je izolovaný od OS, takže se snižuje bezpečnostní riziko a není nutný ani zásah do OS. OS může být tedy v aktuální verzi a stejně tak ostatní komponenty aplikace jako je například databáze a další.

Stárnutí aplikace

I když máte novou aplikaci počítejte s tím, že jednou zastará. Staré technologie nebudou podporovány přitom a uživatelé budou mít nové požadavky na její provoz a funkce. Dřív nebo později vám nezbude, než aplikaci aktualizovat a upgradovat nebo pokud zaspíte tak ji celou rovnou přepsat - a to je dost náročný a rizikový postup.
Druhá možnost je jedině ta, že její provoz a údržba bude čím dál dražší a tak ji jednou nespíš prostě vypnete.
Na zastaralou aplikaci, také budete těžko shánět programátora natož kvalitního.

Bohužel jsem viděl nemálo projektů, kde se nechávala aplikace zastarávat a pak to vždy končilo tím, že už nebyla motivace investovat do modernizace.

Posun kupředu

Je prostě potřeba si dát pozor, a to platí ji pro projekty v jiných programovacích jazycích, aby se práce na projektu nestala jízdou na mrtvém koni.

Pokud máte fungující bussines na nějaké aplikaci doporučuji co nejdříve kontaktovat vývojáře. Nechat si udělat aspoň malou analýzu v jakém stavu aplikace je a jak vidí možnosti její modernizace a přepisu.

Články na podobné téma

Programovací jazyk Go
Analýza zadání a nacenění vývoje softwarového projektu
Python program na ovládání Dockeru pomocí API
Jak použít aplikaci MailCatcher pro testování emailů
Návod: Python OpenAI API
Vytvoření WebSocket webové aplikace a nastavení proxy
Řízení projektů: Agilní vývoj softwaru
Co by měl umět dobrý programátor
Programovací jazyk Rust
NodeJS: vývoj, konfigurace serveru
Nette security bug CVE-2020-15227
Jak porovnat dvě stejné databáze?
REST API: API platform
Vlastní web a mail hosting se softwarem ISP Config
Programovní v SQL: PostgreSQL, MySQL/MariaDB
HTTPS: zabezpečený web
NoSQL databáze Mongo DB
Připojení k Microsoft SQL Serveru z Linuxu
Co je pracovní náplň programátora
Lokalizace aplikací v jazyce Python
Jaký mail a web hosting vybrat
How to make wireless low power Arduino
Digispark - Programujte mikrokontrolér Atmel ATtiny pomocí Arduino IDE
Program Roulette
Vývoj pro procesory ARM s Arduino IDE
Wireless low power Arduino
Pyradio - Python program for receive Internet radio with text user inteface
UPS monitor pro Android
Bezdrátový bateriově napájený WiFi teploměr
Jak programovat WiFi procesor ESP8266
Comparison IQRF vs Wireless Arduino
Jakou platformu zvolit pro eshop? Například Prestashop
Development kits and gateways for wireless platform IQRF

OpenStreetMap a GPS trasy v mapě na webu
Quickplay
Java program pro přehledné monitorování záložních zdrojů
Čipové kontaktní a bezkontaktní karty Java Card OpenPlatform
Otevřený chytrý telefon s Linuxem - Openmoko Neo FreeRunner
Vývoj pro bezdrátové moduly s procesorem PIC pod GNU/Linux - IQRF
Grafický program pro embeded/mobilní zařízení na vyhledávání dopravního spoje.
O programování a ruzné programy v jazyce Java, Python a dalších
Java program a applet Kalkulačka
Java program na výpočet kvadratické rovnice

Odběr novinek

Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k odběru novinek.


+