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
- call_user_method() (zamjena je call_user_func() )
- call_user_method_array() (zamjena je call_user_func_array() )
- define_syslog_variables()
- dl()
- ereg() (zamjena je preg_match() – php.net/manual/en/reference.pcre.pattern.posix.php)
- ereg_replace() (zamjena je preg_replace() – php.net/manual/en/reference.pcre.pattern.posix.php)
- eregi() (zamjena je preg_match() – php.net/manual/en/reference.pcre.pattern.posix.php)
- eregi_replace() (zamjena je preg_replace() – php.net/manual/en/reference.pcre.pattern.posix.php)
- set_magic_quotes_runtime()
- magic_quotes_runtime()
- session_register() (zamjena je $_SESSION superglobal )
- session_unregister() (zamjena je the $_SESSION superglobal )
- session_is_registered() (zamjena je the $_SESSION superglobal )
- set_socket_blocking() (zamjena je stream_set_blocking() )
- split() (zamjena je preg_split() – php.net/manual/en/reference.pcre.pattern.posix.php)
- spliti() (zamjena je preg_split() – php.net/manual/en/reference.pcre.pattern.posix.php)
- sql_regcase()
- mysql_db_query() (zamjena je mysql_select_db() and mysql_query() )
- mysql_escape_string() (zamjena je mysql_real_escape_string() )
- Prosljeđivanje lokalnih naziva kategorija kao string je zastarjelo. Zamjena je korištenje LC_* familije konstanta.
- is_dst parametar za mktime(). Umjesto toga koristite novu timezone funkciju.
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.
- osCommerce je kompatibilan sa PHP v5.3 od verzije MS2.3.0, a sa register_globals OFF je kompatibilan od verzije MS2.2 RC1. Upute za nadogradnju: MS2.2 RC1 http://www.oscommerce.com/about/news,127 MS2.2 RC2a http://www.oscommerce.com/about/news,130 MS2.3.0 http://www.oscommerce.info/confluence/display/OSCOM23/v2.2+to+v2.3.0 MS2.3.1 http://www.oscommerce.info/confluence/display/OSCOM23/v2.3.0+to+v2.3.1
- 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.
- openCart je kompatibilan sa PHP v5.3 od verzije 1.3.1, izdane u 8. mjesecu 2009. Posljednja dostupna verzija može se preuzeti ovdje: www.opencart.com/index.php?route=download/download 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.
- CMS Made Simple je potpuno kompatibilan sa PHP v5.3 od verzije 1.7 – Cape Verde, izdane u 3. mjesecu 2010. Za preuzimanje posljednje verzije provjerite www.cmsmadesimple.org
- 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.