PHP ekstenzije za pravilan rad WordPress sajta

Kada pokrećete svoj WordPress sajt, mnogo toga zavisi od PHP-a. Razlog tome je što je ceo WordPress kao CMS (Content Management System) zasnovan na ovom programskom jeziku.
Ipak, PHP sam po sebi nije dovoljan da bi WordPress mogao ispravno da radi. Potrebne su mu ekstenzije, odnosno male dodatne komponente koje proširuju mogućnosti PHP-a.
One su u pozadini svega: omogućavaju povezivanje sa bazom, obradu slika, bezbednu komunikaciju preko HTTPS-a, pa čak i jednostavne radnje poput validacije fajlova prilikom upload-a.
Na svom Plus hosting nalogu, u okviru cPanel-a postoji alat koji se zove PHP Selector. On vam omogućava da birate verziju PHP-a, kao i koje ekstenzije želite da budu uključene. Na prvi pogled deluje jednostavno: čekirate ono što vam treba i sačuvate. Ali važno je da razumete da nisu sve ekstenzije pod vašom kontrolom. Postoje dve osnovne grupe ekstenzija na vašem web hosting serveru:
- Svetlo plave – one su uključene po defaultu i ne možete ih menjati. To su osnovne komponente PHP-a i bez njih sistem ne bi mogao da radi.
- Tamno plave – njih vi sami uključujete ili isključujete, i one vam daju mogućnost da uradite dodatnu optimizaciju svog WordPress-a.
Ukoliko niste sigurni gde da pronađete PHP Selector i kako da radite čekiranje ekstenzija, predlažemo da pročitate naš detaljan vodič Kako da promenite verziju PHP-a, PHP ekstenzije i PHP opcije, preko svog cPanel naloga.
Ekstenzije koje su podrazumevano uključene (svetlo plave)
U okviru PHP Selector-a ćete pronaći tabelu ekstenzija koja će izgledati kao na slici ispod.

Imajte u vidu da je prikazan set ekstenzija za PHP 8.2. Za neke druge verzije ovaj spisak će se neznatno razlikovati. U suštini, ono što ćemo dati od preporuka ovde, važi za gotovo sve verzije PHP-a od verzije 8.0 na ovamo.
Ovo su uglavnom biblioteke koje su deo samog PHP-a, ili su na serveru obavezno uključene. One čine osnovu rada WordPress-a i drugih aplikacija. Tu spadaju osnovni moduli za rad sa datumima, tekstom i regularnim izrazima (RegEx), JSON obrada, hash algoritmi i biblioteke koje obezbeđuju povezivanje PHP-a sa sistemom i izvršava osnovne funkcije.
Dakle, ove ekstenzije su već tu i rade u pozadini, bez potrebe da ih dirate.
Ekstenzije koje sami uključujete (tamno plave)
Za razliku od svetloplavih, koje su već uključene i rade u pozadini bez vaše intervencije, tamnoplave ekstenzije u cPanel PHP Selector-u su one koje možete sami da uključite ili isključite. I upravo ovde dolazimo do podešavanja koja najviše utiču na rad WordPress sajta.
Neke od njih su praktično obavezne, jer bez njih ne biste imali ispravan rad plugina, slika ili sigurnih konekcija, dok su druge tu za specifične slučajeve, i prosečnom sajtu najčešće ne trebaju.
Ekstenzije koje je potrebno da uključite
- DOM – zadužen je za rad sa HTML i XML sadržajem. WordPress i pluginovi se oslanjaju na njega kada obrađuju feedove, proveravaju strukturu koda ili komuniciraju sa drugim servisima. Ako je isključen, deo funkcionalnosti može prestati da radi, pa je najbolje da ga uključite.
- Exif – radi sa metapodacima slika, kao što je orijentacija kamere. Ako uploadujete fotografije sa telefona ili fotoaparata, exif omogućava da se one prikažu u pravom položaju. Bez njega se često dešava da slike budu rotirane ili okrenute kako ne treba.
- Fileinfo – dodatni sloj sigurnosti. On proverava da li je fajl koji uploadujete zaista ono što tvrdi da jeste. Na primer, sprečava da se PHP skripta provuče kao “slika.jpg”. Iz tog razloga je važno da ova opcija bude aktivna.
- GD ili Imagick – WordPress mora da pravi thumbnail verzije slika i da ih optimizuje. To rade GD i Imagick. GD je jednostavnija biblioteka i troši manje resursa, dok Imagick daje bolji kvalitet i više mogućnosti, pa je preporuka da se koristi kada je dostupna. Barem jedna od njih mora biti uključena da bi obrada slika radila kako treba.
- Mbstring – omogućava ispravan rad sa UTF-8 i višebajtnim karakterima. Za naše jezike (č, ć, ž, š, đ) ovo je od presudne važnosti, jer bez mbstring-a lako nastaju problemi sa prikazom teksta ili radom pluginova.
- Mysqli – klasičan način za povezivanje PHP-a i MySQL baze. Na Plus hostingu sajt radi i bez njega, jer je u pozadini već uključen mysqlnd (drugi drajver). Ipak, neki pluginovi očekuju baš mysqli i mogu da prijave grešku ako ga nema, pa je dobra praksa da ga uključite.
- Openssl – ključ za sigurnost. On obezbeđuje HTTPS konekcije, radi sa SSL sertifikatima i omogućava sigurnu komunikaciju sa eksternim API-jevima (na primer, kod online plaćanja). Isključivanje ove ekstenzije bi praktično onesposobilo sajt da radi preko HTTPS-a.
- PDO MySQL (pdo_mysql) – modernija alternativa za rad sa MySQL bazom. WordPress se i dalje oslanja na mysqli/mysqlnd, ali sve više pluginova koristi PDO. Uključivanjem PDO-a dobijate širu kompatibilnost i sigurnost da će pluginovi raditi i u budućnosti.
- Zip – bez zip-a ne biste mogli normalno da instalirate ili ažurirate teme i pluginove, jer WordPress sve preuzima i raspakuje u zip formatu. Ako nije aktivan, sve biste morali ručno da uploadujete preko FTP-a. Dakle, ova ekstenzija je apsolutno obavezna.
Ostale ekstenzije koje možete videti u PHP Selector-u
Pored onih koje su preporučene za svaki WordPress sajt, postoji još niz ekstenzija koje su namenjene specifičnim scenarijima. One nisu deo standardnog seta za WordPress, ali mogu da budu korisne u posebnim slučajevima.
- Intl (Internationalization)
Ova ekstenzija omogućava da PHP precizno rukuje lokalizacijom podataka – formatiranjem datuma, vremena, brojeva i valuta u zavisnosti od jezika i regiona. Na primer, sa intl ekstenzijom vaš sajt može automatski da prikaže cenu u formatu „1.234,56 RSD“ za srpsko tržište, dok bi na engleskom govornom području to izgledalo „1,234.56 RSD“. Iako WordPress ima sopstveni prevod i lokalizaciju, intl može da bude vrlo korisna za složenije višejezične projekte ili e-commerce sajtove koji posluju na više tržišta. Za jednostavne sajtove na jednom jeziku, nije neophodna. - Soap
SOAP je protokol za razmenu podataka između sistema. Ova ekstenzija se koristi za integracije sa servisima koji zahtevaju SOAP komunikaciju, kao što su određeni ERP ili CRM sistemi. U WordPress svetu ovo se retko sreće, jer većina modernih API-ja koristi REST, ali ako radite na projektu koji se povezuje sa starijim poslovnim softverom, moguće je da će Soap biti potreban. - Ldap
LDAP je protokol koji se koristi u velikim organizacijama za centralizovano upravljanje korisnicima (npr. Active Directory). Ako bi WordPress bio deo intraneta i trebalo bi da se korisnici prijavljuju sa svojim poslovnim nalozima, LDAP bi omogućio tu vezu. Za javne sajtove i klasične WordPress instalacije, ova ekstenzija nije potrebna. - Imap
Omogućava PHP-u da direktno čita mejlove iz inbox-a preko IMAP protokola. To može biti korisno ako imate plugin koji automatski preuzima e-mail-ove i pretvara ih u sadržaj na sajtu, ili ako vodite help desk baziran na WordPress-u. U običnim sajtovima i blogovima se ne koristi. - Gmp
GMP je biblioteka za rad sa velikim brojevima i naprednim matematičkim operacijama. Može biti od koristi pluginovima koji rade sa kriptografijom, blockchain tehnologijama ili specijalizovanim proračunima. Za standardne sajtove nije potrebna. - Sockets
Ova ekstenzija omogućava PHP-u direktan mrežni pristup na niskom nivou, preko socket konekcija. To koriste napredne aplikacije i servisi koji moraju direktno da komuniciraju sa drugim serverima ili protokolima. WordPress po pravilu nema potrebu za ovim. - Sysvmsg, sysvsem, sysvshm
Reč je o grupi ekstenzija koje omogućavaju interprocesnu komunikaciju, odnosno deljenje memorije i slanje poruka između različitih PHP procesa. To se koristi u specijalizovanim serverskim aplikacijama i nije relevantno za WordPress. - Bz2
Omogućava rad sa fajlovima kompresovanim u bzip2 formatu. WordPress koristi zip, ali ne i bzip2, tako da vam ova ekstenzija u praksi neće zatrebati osim ako ne radite sa nekim specijalizovanim sistemima arhiviranja. - Redis, Memcached, Mongodb
Ovo su napredne PHP ekstenzije namenjene velikim i zahtevnim sajtovima. Redis i Memcached služe za keširanje podataka u memoriji i značajno ubrzavaju sajtove sa velikim prometom, ali zahtevaju dodatnu konfiguraciju i plugin koji ih koristi. MongoDB je alternativa klasičnoj MySQL bazi i zahteva potpuno drugačiju arhitekturu sajta. U prosečnim WordPress instalacijama se ne koriste, ali kod enterprise projekata ili visokoposjećenih portala mogu doneti ozbiljno poboljšanje performansi.
| Ekstenzija | Svrha | Preporuka za WordPress |
| DOM | Rad sa HTML/XML sadržajem, parsiranje feedova, validacija koda. | Uvek uključiti. |
| Exif | Očitava metapodatke fotografija (orijentacija kamere). | Uključiti za sve sajtove koji koriste slike. |
| Fileinfo | Proverava MIME tip fajlova, sigurnost pri uploadu. | Uvek uključiti. |
| GD / Imagick | Obrada i optimizacija slika. | Uključiti bar jednu; preporuka Imagick. |
| Mbstring | Rad sa UTF-8 i posebnim karakterima (č, ć, ž, š, đ). | Obavezno uključiti. |
| Mysqli | Povezivanje sa MySQL bazom. Na Plus.rs mysqlnd je default aktivan. | Nije obavezan, ali preporučuje se radi kompatibilnosti. |
| Openssl | HTTPS konekcije, SSL sertifikati, API komunikacija. | Uvek uključiti. |
| PDO MySQL | Moderniji interfejs za rad sa bazom, koristi ga deo plugina. | Preporučuje se uključiti. |
| Zip | Instalacija i update tema i pluginova (rad sa .zip fajlovima). | Obavezno uključiti. |
| Intl | Internacionalizacija – formatiranje datuma, brojeva, valuta. | Samo za višejezične ili e-commerce sajtove. |
| Soap | SOAP protokol, integracije sa ERP/CRM sistemima. | Potrebno samo za specijalne integracije. |
| Ldap | Povezivanje sa LDAP serverima (npr. Active Directory). | Samo u korporativnim okruženjima. |
| Imap | Čitanje mejlova direktno sa servera. | Korisno samo ako plugin zahteva pristup inbox-u. |
| Gmp | Rad sa velikim brojevima i kriptografijom. | Samo za specijalizovane proračune i pluginove. |
| Sockets | Direktan mrežni pristup kroz socket konekcije. | WordPress ga ne koristi, ostaviti isključeno. |
| Sysvmsg / sem / shm | Interprocesna komunikacija (IPC). | Nije relevantno za WordPress. |
| Bz2 | Rad sa fajlovima u bzip2 formatu. | WordPress koristi zip, bz2 nije potreban. |
| Redis, Memcached, Mongodb | Napredno keširanje i baze. | Samo za velike sajtove i specijalizovane instalacije. |
Zaključak
Kao što ste videli, na Plus hostingu ne morate da brinete o osnovnim PHP ekstenzijama, jer su one su već uključene i zaključane kao svetlo plave opcije.
Sa druge strane, za WordPress sajtove obavezno treba uključiti sledeće tamno plave ekstenzije: dom, exif, fileinfo, gd ili imagick, mbstring, mysqli (opciono, ali poželjno), openssl, pdo_mysql i zip.
Sve ostale PHP ekstenzije iz liste imaju svoju svrhu, ali su rezervisane za specijalne slučajeve, od internacionalizacije i poslovnih integracija, do naprednog keširanja kod sajtova sa velikim prometom.
Za prosečan WordPress sajt, one nisu potrebne i najbolje ih je ostaviti isključene, osim ako tačno znate zašto su vam potrebne.
Nenad Mihajlović