Poglavlje 14 · 14.6
Greške nakon nadogradnje PHP-a i pronalaženje Error loga
Povećali ste verziju PHP-a i sada je Vaša web stranica bijela, prikazuje poruku o grešci ili dio nje više ne radi. To gotovo uvijek uzrokuje dodatak (plugin), tema ili vlastiti kôd koji nije prilagođen novoj verziji. Bez panike: staru verziju vraćate za minutu, a zatim u miru istražujete što nije u redu.
Korak 1: vratite staru verziju
Idite na Select PHP version, ponovno odaberite verziju koju ste prije imali i kliknite na Apply (pogledajte Odabir PHP verzije (Select PHP version)). Vaša web stranica tada odmah ponovno radi kao prije. Ako ste kod nove verzije prilagodili ekstenzije ili opcije, one ostaju sačuvane za sljedeći pokušaj.
Korak 2: pronađite poruku o grešci u Error logu
PHP zapisuje greške u Error log Vaše domene. Tamo točno piše koja datoteka i koji redak uzrokuju problem.
- U DirectAdminu pod System Info & Files kliknite na Site summary & logs.
- Kod Vaše domene kliknite na Error log.
- Pogledajte zadnje retke, pri dnu. Potražite retke s PHP Fatal error, PHP Parse error ili PHP Warning (1).

Više o logovima pročitajte u Site summary & logs: log pogrešaka i log pristupa.
Korak 3: razumijevanje poruke
U poruci se nalazi putanja do datoteke. Po tome obično možete vidjeti koji je dodatak ili tema uzročnik. Nekoliko primjera:
| Vidite u poruci | Značenje |
|---|---|
| .../wp-content/plugins/naziv-dodatka/... | Taj dodatak ne radi na novoj verziji. Ažurirajte ga ili potražite zamjenu ako se više ne održava. |
| .../wp-content/themes/naziv-teme/... | Vaša tema je prestara. Ažurirajte je ili zatražite ažuriranje od izrađivača. |
| Call to undefined function mysql_connect() | Vrlo star kôd koji još uvijek koristi funkcije iz razdoblja prije PHP-a 7. Taj kôd treba prepisati. |
| Call to undefined function s drugim nazivom funkcije | Često nedostaje ekstenzija. Provjerite koja ekstenzija pripada toj funkciji i uključite je (pogledajte PHP-ekstenzije: uključivanje i isključivanje). |
| Allowed memory size of ... bytes exhausted | Skripta ima premalo memorije. Povećajte memory_limit (pogledajte PHP opcije: upload_max_filesize, memory_limit i max_execution_time). |
| Maximum execution time of ... seconds exceeded | Skripti je trebalo previše vremena. Povećajte max_execution_time ili istražite zašto je tako spora. |
Korak 4: ažuriranje i ponovni pokušaj
- Napravite sigurnosnu kopiju (pogledajte Backup and Restore: samostalno izrađivanje sigurnosne kopije u DirectAdminu).
- Ažurirajte WordPress (ili drugi softver), Vašu temu i sve Vaše dodatke, dok je stara verzija PHP-a još uvijek aktivna.
- Uklonite dodatke koje ne koristite.
- Ponovno uključite novu verziju PHP-a i ponovno testirajte Vašu web stranicu. Provjerite ponovno i Error log.
Savjet: Želite li prvo testirati bez da to utječe na posjetitelje? Pomoću Installatrona napravite kopiju Vaše stranice na poddomeni (pogledajte Kloniranje i izrada testnog okruženja (staging)) i samo tu mapu postavite na novu verziju putem .htaccess (pogledajte PHP-postavke po mapi i putem .htaccess).
Privremeni prikaz grešaka na stranici
Vidite samo bijeli ekran, a u Error logu nema ničeg korisnog? Tada možete privremeno prikazati greške na samoj stranici. U Select PHP version na kartici Options uključite kvačicu kod display_errors. Ponovno otvorite stranicu: sada vidite poruku o grešci. Odmah zatim ponovno isključite display_errors, jer takva poruka može svima otkriti informacije o Vašoj web stranici.
Koristite li WordPress, to možete postići i ovim redcima u wp-config.php, iznad retka That's all, stop editing!: define('WP_DEBUG', true); i define('WP_DEBUG_LOG', true);. WordPress tada zapisuje greške u wp-content/debug.log. Nakon toga ih ponovno uklonite ili postavite na false.
Radije prepustite nama rješavanje?
Ne uspijeva Vam ili Vaša web stranica godinama nije ažurirana? Uz PHP nadogradnju mi prilagođavamo Vašu web stranicu aktualnoj verziji PHP-a, po fiksnoj cijeni. Ako ne uspijemo, dobivate novac natrag.
