Jak provozovat staré PHP aplikace
23. února 2022Vý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.
+