PHP-FPM, kur shpejtësia ka rëndësi!
Team Host.it 5 min lexim
Përmbajtja
Oferta e hosting-ut që ne u prezantojmë klientëve dhe partnerëve tanë është krijuar për t'iu përshtatur nevojave reale të projektit që do të zhvillohet, rritet kur është e nevojshme dhe, çdo vit, pasurohet me karakteristika të reja dhe risi teknologjike.
Sot po flasim me ju për një teknologji që është e disponueshme brenda profileve tona të hosting-ut për disa vite: PHP-FPM. Por, le të bëjmë një hap shumë të vogël prapa për të shpjeguar se si kemi menaxhuar më parë të gjitha kërkesat php të bëra nga përdoruesit në faqet tuaja të pritura në Host.
Shumica e administratorëve të faqeve (ata që i zhvillojnë dhe menaxhojnë ato) e dinë se PHP, një nga gjuhët e skriptimit më të përdorur në botë, mund të futet në HTML dhe funksionon me serverët kryesorë të uebit. Sidoqoftë, aspekti më pak i njohur është se si PHP mund të ekzekutohet në serverin e internetit, dhe kjo mund të ndodhë në disa mënyra.
Le të bëjmë një parantezë të vogël për të shpjeguar se si është ndërtuar platforma jonë. Nëse do të përdornim akronimin LAMP, sa njerëz e dinë se për çfarë po flasim? Për ata që nuk e dinë, këtu është një përkufizim shumë i shkurtër:
"LAMP është një akronim që tregon një platformë softuerike për zhvillimin e aplikacioneve në ueb, e cila e merr emrin nga inicialet e komponentëve të softuerit me të cilët është krijuar:
Linux (sistemi operativ) Apache (serveri në internet) MySQL ose MariaDB (sistemi i menaxhimit të bazës së të dhënave) HP (gjuha e programimit)
Platforma LAMP është një nga më të përdorurat në mbarë botën. Secili prej aplikacioneve nga i cili përbëhet është projektuar për funksionim të shkëlqyer në lidhje me të tjerët." [Wikipedia]
Mënyra se si ne ekzekutuam kërkesat dhe proceset php në platformën tonë LAMP ishte PHP FastCGI. Le të hedhim një vështrim të shpejtë se si funksionon së bashku. Ky është një protokoll i përgjithshëm për ndërlidhjen me një server në internet. Në mënyrë të veçantë, është një variant i ndërfaqes së mëparshme Common Gateway (CGI) i cili synon të zvogëlojë koston e sipërme që lidhet me ndërfaqen midis serverëve të uebit dhe programeve CGI, duke lejuar një server të trajtojë kërkesa të shumta në të njëjtën kohë.
Me FastCGI mund të konfiguroni versione të shumta të PHP-së, veçanërisht të dobishme kur keni uebsajte të vjetra të krijuara, për shembull, në PHP 5.1 që nuk janë të përputhshme me versionin më të fundit. Së fundi, me FastCGI është e mundur të mbështeten përdorues të ndryshëm secili me instancat e veta të PHP. Kjo veçori është veçanërisht e rëndësishme për përmirësimin e sigurisë në një mjedis të përbashkët, ku mund të keni përdorues të ndryshëm që secili menaxhon faqet e veta të internetit.
Si funksionon FastCGI? Falë protokollit PHP FastCGI, serveri në internet gjeneron një proces të vetëm në fazën e inicializimit i cili, në fund të fazës së fillimit, pret. Sa herë që vjen një kërkesë e re hyrëse, serveri në internet hap një lidhje me procesin fast-cgi (në pritje) i cili nga ana e tij gjeneron daljen në lidhjen me klientin, të transferuar tek ai nga serveri. Avantazhi kryesor i këtij protokolli është krijimi i proceseve vetëm gjatë fazës së inicializimit, duke optimizuar kështu numrin e proceseve php.
Çfarë ndryshon me prezantimin e PHP-FPM? PHP-FPM është një mënyrë më e fundit e përdorimit të PHP me një server në internet dhe është një alternativë ndaj PHP FastCGI të mëparshme me zbatimin e disa veçorive shtesë që janë shumë të dobishme veçanërisht për faqet që menaxhojnë gjithnjë e më shumë trafik çdo ditë (nga faqet e ekspozitës deri te tregtia elektronike). Për këto lloj uebsajtesh është e nevojshme që të ketë në dispozicion mjete gjithnjë e më të performancës së lartë, ashtu si PHP-FPM.
Operacioni është shumë i ngjashëm me PHP FastCGI dhe bazohet gjithmonë në ekzekutimin e optimizuar të proceseve PHP të cilat krijohen vetëm gjatë fazës së inicializimit dhe mbeten në hosting për një kërkesë të re. Dallimi i madh është se është vetë PHP-FPM (FastCGI Process Manager) ai që ekzekuton procesin dhe jo më serveri në internet.
"Menaxheri i procesit", siç sugjeron emri, është një skript që menaxhon drejtpërdrejt proceset PHP. Ai pret dhe merr udhëzime nga serveri në internet dhe ekzekuton skriptet e kërkuara PHP dhe lejon një faqe interneti të trajtojë ngarkesa të rënda. PHP-FPM mban "pools" për t'iu përgjigjur kërkesave PHP dhe proceset që gjenerohen janë drejtpërdrejt "fëmijë" (CHILD) të Menaxherit të Procesit dhe për këtë arsye mund të menaxhohen veçmas nga serveri në internet.
Ky modalitet garanton qëndrueshmëri më të madhe të shërbimit, pasi operacione të tilla si ndryshimet e konfigurimit ose proceset e rinisjes ndikojnë në grupet individuale të FPM dhe jo më të gjithë serverin e uebit.
Le të shohim tani disa nga veçoritë teknike të PHP-FPM: Demonizimi i proceseve PHP (skedarët PID, skedarët log, setsid(), setuid(), setgid(), chroot();
Mundësia për të rifilluar proceset PHP pa shkaktuar ndonjë ndërprerje të kërkesave gjatë përpunimit, prandaj mund të ndryshoni çdo parametër në skedarin e konfigurimit ose edhe të përditësoni PHP pa as 1 sekondë ndërprerje!;
Mundësia e mospërpunimit të kërkesave që vijnë nga një IP specifike;
Aftësia për të nisur CHILD nën UID/GID/CHROOT të ndryshme dhe me cilësime të ndryshme PHP (php.ini) të gjitha pa pasur nevojë për modalitet të sigurt;
Aftësia për të hyrë përmes stdout dhe stderr;
Në rast të prishjes së RAM-it të përbashkët të përdorur nga një OPCode Cache, PHP-FPM mund të kryejë një rindezje emergjente të të gjithë PHP CHILD-ve;
Detyron ekzekutimin e skriptit të ndalojë nëse set_time_limit() dështon.
Së fundi, për të garantuar sigurinë dhe shpejtësinë e faqeve tuaja të internetit të strehuara në platformën Host dhe për t'ju inkurajuar të përditësoni CMS-në tuaj, PHP-FPM është i disponueshëm vetëm dhe ekskluzivisht duke filluar nga versioni i PHP 7. Pas disa testeve të zbatimit, ne në fakt kemi preferuar ta bëjmë këtë teknologji të disponueshme për ata që kanë përditësuar versionin e tyre të PHP në atë më të fundit, pikërisht për shkak të kombinimit të versionit të shkëlqyeshëm PHP (dhe subpherse) performanca për sa i përket sigurisë dhe shpejtësisë së reagimit.
Në fakt, le të kujtojmë se një nga mënyrat për të garantuar siguri maksimale për faqet e internetit dhe aplikacionet tuaja është t'i mbani ato të përditësuara vazhdimisht.
Në këtë mënyrë ju mund të garantoni një rritje të performancës, sigurisë dhe për rrjedhojë, të keni një faqe të suksesshme për biznesin tuaj online.
PHP-FPM në numra: disa të dhëna për shpejtësinë Siç e kemi shpjeguar gjerësisht, PHP-FPM përshpejton performancën e një mjedisi PHP. Por për çfarë rritjeje po flasim? Le të shohim së bashku rezultatin e disa testeve për të kuptuar më mirë se sa rritet realisht shpejtësia e përgjigjes së faqeve të internetit me zbatimin e PHP-FPM.
Testi u krye duke krahasuar performancën e PHP FastCGI (me versionin PHP 5.6) kundrejt PHP-FPM (me versionin PHP 7.2) për ngarkimin e faqeve kryesore të një siti në WordPress, një në Joomla! dhe një në Prestashop.
E-commerce
Hosting për dyqane online
PrestaShop, WooCommerce dhe Magento: performancë, siguri dhe datacenter në Itali.
Artikuj të lidhur
Nga arkivin