14. nodaļa · 14.6
Kļūdas pēc PHP versijas jauninājuma un kļūdu žurnāla atrašana
Jūs esat paaugstinājuši PHP versiju un tagad Jūsu vietne ir balta, rāda kļūdas paziņojumu vai kāda tās daļa vairs nedarbojas. Tas gandrīz vienmēr ir saistīts ar spraudni, tēmu vai pašu rakstītu kodu, kas nav piemērots jaunajai versijai. Nekrītiet panikā: Jūs varat atjaunot veco versiju mazāk nekā minūtē un pēc tam mierīgi noskaidrot, kas ir nepareizi.
1. solis: atjaunojiet veco versiju
Dodieties uz Select PHP version, atkal izvēlieties versiju, kas bija iestatīta iepriekš, un noklikšķiniet uz Apply (skatiet PHP versijas izvēle (Select PHP version)). Jūsu vietne uzreiz atsāks darboties kā iepriekš. Ja jaunajai versijai bijāt mainījuši paplašinājumus vai opcijas, tās tiks saglabātas nākamajam mēģinājumam.
2. solis: atrodiet kļūdas paziņojumu kļūdu žurnālā
PHP ieraksta kļūdas Jūsu domēna kļūdu žurnālā. Tur ir precīzi norādīts, kurā failā un kurā rindā rodas problēma.
- DirectAdmin sadaļā System Info & Files noklikšķiniet uz Site summary & logs.
- Pie sava domēna noklikšķiniet uz Error log.
- Apskatiet pēdējās rindas apakšā. Meklējiet rindas ar PHP Fatal error, PHP Parse error vai PHP Warning (1).

Vairāk par žurnāliem varat lasīt sadaļā Site summary & logs: kļūdu žurnāls un piekļuves žurnāls.
3. solis: saprotiet paziņojumu
Paziņojumā ir norādīts faila ceļš. Pēc tā parasti var noteikt, kurš spraudnis vai kura tēma ir vainīga. Daži piemēri:
| Jūs redzat paziņojumā | Nozīme |
|---|---|
| .../wp-content/plugins/spraudņa-nosaukums/... | Šis spraudnis nestrādā jaunajā versijā. Atjauniniet to vai meklējiet alternatīvu, ja tas vairs netiek uzturēts. |
| .../wp-content/themes/tēmas-nosaukums/... | Jūsu tēma ir pārāk veca. Atjauniniet to vai lūdziet izstrādātājam veikt atjauninājumu. |
| Call to undefined function mysql_connect() | Ļoti vecs kods, kas joprojām izmanto funkcijas no laika pirms PHP 7. Tas ir jāpārraksta. |
| Call to undefined function ar citu funkcijas nosaukumu | Bieži vien trūkst kāda paplašinājuma. Noskaidrojiet, kurš paplašinājums atbilst šai funkcijai, un ieslēdziet to (skatiet PHP paplašinājumu ieslēgšana un izslēgšana). |
| Allowed memory size of ... bytes exhausted | Skriptam pietrūkst atmiņas. Palieliniet memory_limit (skatiet PHP opcijas: upload_max_filesize, memory_limit un max_execution_time). |
| Maximum execution time of ... seconds exceeded | Skripta izpilde aizņēma pārāk ilgu laiku. Palieliniet max_execution_time vai noskaidrojiet, kāpēc tas ir tik lēns. |
4. solis: atjauniniet un mēģiniet vēlreiz
- Izveidojiet dublējumkopiju (skatiet Back-up en herstel: zelf back-up maken in DirectAdmin).
- Atjauniniet WordPress (vai citu programmatūru), tēmu un visus spraudņus, kamēr vēl ir aktīva vecā PHP versija.
- Noņemiet spraudņus, kurus neizmantojat.
- Atkal ieslēdziet jauno PHP versiju un vēlreiz pārbaudiet savu vietni. Pārbaudiet arī kļūdu žurnālu.
Padoms: vai vēlaties vispirms veikt testēšanu, neradot neērtības apmeklētājiem? Ar Installatron izveidojiet savas vietnes kopiju apakšdomēnā (skatiet Klonēšana un testa vides (staging) izveide) un tikai šai mapei iestatiet jauno versiju, izmantojot .htaccess (skatiet PHP instellingen per map un, izmantojot .htaccess).
Kļūdu īslaicīga parādīšana lapā
Vai redzat tikai baltu ekrānu un kļūdu žurnālā nav nekā noderīga? Tad Jūs varat īslaicīgi parādīt kļūdas pašā lapā. Sadaļā Select PHP version cilnē Options atzīmējiet izvēles rūtiņu pie display_errors. Vēlreiz atveriet lapu: tagad Jūs redzēsiet kļūdas paziņojumu. Pēc tam nekavējoties atkal izslēdziet display_errors, jo šāds paziņojums var atklāt informāciju par Jūsu vietni ikvienam.
Ja izmantojat WordPress, to var izdarīt arī, pievienojot šīs rindas failā wp-config.php virs rindas That's all, stop editing!: define('WP_DEBUG', true); un define('WP_DEBUG_LOG', true);. WordPress tad ierakstīs kļūdas failā wp-content/debug.log. Pēc tam noņemiet tās vai iestatiet uz false.
Vēlaties, lai to atrisina Jūsu vietā?
Vai neizdodas, vai Jūsu vietne jau gadiem nav atjaunināta? Izmantojot PHP jauninājumu, mēs par fiksētu cenu pielāgosim Jūsu vietni aktuālai PHP versijai. Ja tas neizdosies, Jūs saņemsiet savu naudu atpakaļ.
