PHP v5.2 je dosegnuo svoj “kraj života” i više nije podržan od strane PHP projekta. To znači da se više ne izdaju sigurnosna ažuriranja i da bi zadržali servere i web stranice sigurne, potrebna je nadogradnja na PHP v5.3. Nadogradnja na svim našim shared serverima planirana je za drugi kvartal 2012, završno sa  30.06.2012. Svim klijentima poslat ćemo obavijest o nadogradnji PHP-a putem e-maila najkasnije nekoliko tjedana prije same nadogradnje. Što za vlasnike web stranica znači nadogradnja PHP-a na verziju 5.3? Dobra vijest je da je mnogo popularnog PHP softvera već kompatibilno sa PHP v5.3., a za stranice koje koriste vlastite PHP skripte (ili nemaju kompatibilnu verziju)  postoje vrlo jednostavna rješenja koja se mogu primijeniti. Kreirali smo listu kompatibilnog softvera, provjerite je.

Što je promijenjeno u PHP v5.3?

Službeno izvješće možete pronaći ovdje: php.net/releases/5_3_0.php i uputa za migraciju sa PHP v5.2 ovdje: php.net/migration53. Najviše problema prouzročiti će “zastarjele” funkcije, tj. funkcije koje su označene za brisanje u kasnijim verzijama PHP-a, što će rezultirati PHP greškama i upozorenjima. Najčešće će probleme stvarati funkcije iz obitelji ereg() funkcija. Molimo provjerite kompletan popis ovdje. Drugi najčešći problem će biti kod softvera koji još uvijek koristi register_globals i register_long_arrays. register_globals je veliki sigurnosni propust i takav softver svakako treba nadograditi. Za više detalja provjerite ovdje.

Što znači “zastarjele” fukcije?

“U svijetu softverskog razvoja, “zastarjelo” se odnosi na funkcije ili elemente koji su u tijeku zamjene sa novijim funkcijama. Zastarjele funkcije mogu raditi u trenutnoj verziji programa ili programskog jezika, no neće više raditi u budućim nadogradnjama. Zbog toga se softver developerima preporuča da zastarjele funkcije zamijene drugim opcijama.”

Obavijesti o zastarjelim funkcijama

Obavijestima o zastarjelim funkcijama upravlja se preko E_DEPRECATED (dio od E_ALL) umjesto preko E_STRICT razine grešaka. To znači da ako koristite E_ALL (standardno na svim serverima), vidjet ćete obavijest o zastarjelim funkcijama u error_log datotekama. Ako koristite softver koji vraća E_ALL greške na ekranu (preporučeno samo za softver u razvoju budući da mogu sadržavati osjetljive informacije), tada možete vidjeti i obavijesti o zastarjelim funkcijama. Preporučamo da nadogradite softver na noviju verziju, a kao najbrže rješenje je da isključite prikaz grešaka naredbom “error_reporting(0);”. Detalje oko postavki error_reporting opcije molimo provjerite na php.net/manual/en/errorfunc.configuration.php#ini.error-reporting.

register_globals

register_globals je isključen od strane PHP projekta i zastario je sa PHP v5.3. Radi se o sigurnosnom propustu i svim vlasnicima web stranica strogo je preporučeno da koriste samo softver koji je kompatibilan sa isključenom opcijom register_globals. Detalje oko problema sigurnosti sa register_globals opcijom provjerite na php.net/manual/en/security.globals.php Nakon što nadogradimo PHP na v5.3 na svim serverima će u php.ini postavkama biti podešeno register_globals (i register_long_arrays) na OFF, no i dalje nas možete kontaktirati i tražiti postavljanje vlastite php.ini datoteke sa uključenom opcijom register_globals. Međutim ovo je samo kratkoročno rješenje i smanjit  će sigurnost vaših web stranica.

Zastarjele INI direktive

U nastavku je popis zastarjelih INI direktiva. Korištenjem bilo koje od ovih INI direktiva prouzročiti će E_DEPRECATED grešku kod izvršavanja php skripte.
  • define_syslog_variables
  • register_globals
  • register_long_arrays
  • safe_mode
  • magic_quotes_gpc
  • magic_quotes_runtime
  • magic_quotes_sybase
  • Komentari koji počinju znakom ljestva “#”

Zastarjele funkcije

Najjednostavniji način provjere da li vaša stranica koristi neku od ovih zastarjelih funkcija je da pokrenete pretraživanje svih datoteka sa nekim text editorom kao što je NotePad++. To će vam omogućiti pretragu svih PHP datoteka za specifičnim riječima. Za provjeru promjena na stranicama prije same nadogradnje servera na PHP v5.3, preporučamo da na lokalnom računalu instalirate XAMPP sa tom verzijom PHP-a i provjerite rad stranice. Za vlasnike stranica sa ograničenim znanjem PHP-a, preporučamo angažiranje nekog PHP developera koji će provjeriti stranicu i ispraviti eventualne nekompatibilnosti sa novom verzijom PHP-a. Velik broj PHP developera spremnih za rad može se pronaći na oDesk.

Nekoliko popularnih softvera kompatibilnih sa PHP v5.3

  • Zen Cart je kompatibilan sa PHP v5.3 od verzije 1.3.9.a. Budući da starije verzije imaju ozbiljne sigurnosne propuste, sve stranice koje koriste stariji Zen Cart trebalo bi nadograditi na verziju 1.3.9 što je prije moguće. Posljednja verzija Zen Cart-a trenutno je 1.5.0 i može se preuzeti na www.zen-cart.com ili automatskom instalacijom preko cPanel Softaculous paketa koji je dostupan na svakom našem serveru.
  • Magento je kompatibilan sa PHP v5.3 od verzije 1.4.0. Starije verzije 1.3.x nisu kompatibilne pa je potrebna nadogradnja na  verziju 1.4. ili novije
  • PrestaShop je potpuno kompatibilan sa PHP v5.3 od verzije 1.3, izdane 25.05.2010. Za posljednju dostupnu verziju PrestaShop-a provjerite na: www.prestashop.com/en/downloads/ ili automatskom instalacijom preko cPanel Softaculous paketa koji je dostupan na svakom našem serveru.
  • WordPress nema točne informacije od koje verzije je kompatibilan sa PHP v5.3, no svakako bi trebali redovno raditi ažuriranje. Verzije od 3.0 na više svakako će raditi sa PHP v5.3. Automatska instalacija i nadogradnja dostupna je preko cPanel Softaculous paketa koji je instaliran na svakom našem serveru.
  • Joomla! je potpuno kompatibilan sa PHP v5.3 od verzije 1.5.15 . Nadogradnja na verziju 2.5 je svakako preporučena budući da se verzija 1.5 više ne nadopunjuje sa sigurnosnim zakrpama i nema službenu podršku Joomla developera. Automatska instalacija i nadogradnja dostupna je preko cPanel Softaculous paketa koji je instaliran na svakom našem serveru.
  • Drupal molimo provjerite zahtjeve na http://drupal.org/requirements. Drupal v5.x NIJE kompatibilan. Za Drupal v6.x kažu da je PHP v5.3 podržan od strane same skripte od verzije 6.14, no neki od dodatnih modula nisu kompatibilni sa PHP v5.3 i neke od konfiguracija i dalje mogu prikazivati PHP upozorenja. Drupal v7.x je potpuno kompatibilan.
  • Ostali web softver – u ovom članku spomenute su samo najčešće korištene web skripte, no to ne znači da druge skripte koje koristite na svojim web stranicama nisu već kompatibilne. Prvi korak bi bio da provjerite dokumentaciju instaliranog softvera, provjerite na službenoj stranici ili ako projekt ima forumu pitajte zajednicu korisnika tog softvera da li je vaša verzija kompatibilna sa PHP v5.3.
  • Ako koristite vlastito napisanu stranicu/skriptu, prvo pokušajte kontaktirati tvrtku koja vam je izradila stranicu. Ako to više nije moguće, tada razmislite o unajmljivanju PHP developera koji će vam provjeriti stranicu i nadograditi je da podržava PHP v5.3.
  • ionCube kodirani softver bi trebao raditi bez ikakvih izmjena, no ako niste sigurni kontaktirajte dobavljača softvera.