Сайтът ви показва празна страница или изречението „Има фатална грешка на този уебсайт.“. И в двата случая PHP е записал някъде точно съобщение, което назовава файла, причинил грешката. Това ръководство показва къде да го прочетете, как да го разтълкувате и кое действие отговаря на всяко съобщение.
wp-config.php и презаредете страницата с грешката.PHP Fatal error в wp-content/debug.log: пътят до файла назовава разширението или темата, причинили грешката.debug.log.Белият екран най-често е фатална грешка на PHP: файл от сайта е поискал нещо невъзможно и изпълнението е спряло, преди да покаже каквото и да било. От WordPress 5.2 насам WordPress прихваща тези грешки: вместо празна страница показва „Има фатална грешка на този уебсайт.“ и изпраща имейл до административния имейл адрес на сайта.
Страницата остава напълно бяла в няколко случая: по-стара версия на WordPress, грешка, настъпила преди зареждането на този механизъм, константата WP_DISABLE_FATAL_ERROR_HANDLER, зададена на true, или разширение за кеш, което сервира празна страница, запазена по време на повредата. Методът по-долу важи за всички тези случаи.
Три действия могат да почакат, докато прочетете грешката: преинсталиране на WordPress, изтриване на разширения, възстановяване на старо резервно копие. Всяко от тях може да изтрие настройки или скорошни данни, а съобщението за грешка обикновено казва кой компонент да изключите, без да губите нищо.
Когато WordPress прихване грешката, той изпраща до административния имейл адрес на сайта съобщение със заглавие „[Име на сайта] Сайтът ви има технически проблем“. То назовава разширението или темата, причинили грешката, и съдържа връзка, която отваря администрацията в режим за възстановяване.
Свържете се със сайта по SFTP или през файловия мениджър на хостинг доставчика, отворете wp-config.php в корена и заменете реда define( 'WP_DEBUG', false ); с тези четири реда:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Те се поставят над коментара, който затваря редактируемата част на файла (/* That's all, stop editing! Happy publishing. */, който и в WordPress на български остава на английски). Презаредете страницата с грешката, след това отворете wp-content/debug.log. WP_DEBUG_DISPLAY със стойност false държи съобщенията във файла, извън страницата, която виждат посетителите ви.
Ако debug.log остане празен или не се появи, грешката е записана директно от PHP: потърсете файл error_log в корена на сайта или в wp-admin, или раздела с журнали за грешки в панела на хостинг доставчика.
Фаталната грешка се побира в един ред: видът на грешката, описанието ѝ, след това in, последвано от пълния път до файла и номера на реда. Пътят е най-полезната информация: wp-content/plugins/ime/ означава разширение, wp-content/themes/ime/ означава тема.
| Съобщението съдържа | Какво означава | Действието |
|---|---|---|
Call to undefined function или Class "…" not found, в wp-content/plugins/ime-na-razshirenie/ | Разширението извиква код, който липсва: непълно обновяване, деактивирано разширение, от което то зависи, или версия на PHP, която то не поддържа. | Деактивирайте това разширение, след това го преинсталирайте или обновете. |
Allowed memory size of 268435456 bytes exhausted | Скриптът е надхвърлил паметта, отделена за PHP, тук 268 435 456 байта, тоест 256 MB. | Увеличете WP_MEMORY_LIMIT в wp-config.php, в рамките на лимита на хостинг доставчика, след това потърсете какво консумира толкова памет. |
PHP Parse error: syntax error, unexpected, в functions.php on line 42 | Синтактична грешка във файл, много често след ръчна промяна в редактора на темата. | Поправете посочения ред или върнете предишната версия на файла. |
Uncaught TypeError или Uncaught ArgumentCountError, след смяна на версията на PHP | Компонент, написан за по-стара версия на PHP, който текущата версия отказва да изпълни. | Обновете компонента. Като временно решение върнете предишната версия на PHP в панела на хостинг доставчика, докато го замените. |
Maximum execution time of 30 seconds exceeded | Обработка е надхвърлила времето, разрешено от PHP (max_execution_time). | Установете коя е обработката (импорт, резервно копие, генериране на изображения) и увеличете лимита при хостинг доставчика, ако тази обработка е легитимна. |
define( 'WP_MEMORY_LIMIT', '256M' );
Преименувайте папката на разширението, посочено в съобщението, например wp-content/plugins/ime-na-razshirenie на ime-na-razshirenie.off. WordPress вече не намира разширението и спира да го зарежда; настройките му остават записани в базата данни, а WordPress го деактивира при следващото отваряне на екрана с разширенията.
При тема преименуването на папката ѝ в wp-content/themes отново дава достъп до администрацията, но посетителите виждат празна страница, докато няма активна тема. Веднага отворете Изглед > Теми: WordPress установява, че активната тема е повредена, и се връща към инсталирана тема по подразбиране.
wp plugin list --status=active
wp plugin deactivate ime-na-razshirenie
wp theme list
wp theme activate twentytwentyfive
Първата команда показва списъка на активните разширения, полезен преди всяко групово деактивиране. Ако самият WP-CLI спре на грешката, добавете към командата --skip-plugins --skip-themes: тогава той се стартира, без да зарежда разширенията и темата. Разширенията в папката wp-content/mu-plugins се зареждат въпреки това; ако грешката идва от някое от тях, преименувайте файла му.
Когато съобщението не посочва компонент, wp plugin deactivate --all деактивира всички разширения. Ако сайтът се върне, активирайте ги отново едно по едно, като презареждате сайта след всяко: последното активирано преди връщането на грешката е виновното.
define( 'WP_DEBUG', false ); и премахнете WP_DEBUG_LOG от wp-config.php.wp-content/debug.log: поставен в папка, достъпна от уеб, той може да бъде прочетен от всеки и съдържа пътища на сървъра.Със Serenity by Simafri изработваме вашия професионален уебсайт, хостваме го, защитаваме го и го поддържаме актуален. Вие ни пишете, ние се грижим за всичко. Домейн име и служебна поща включени.
Защото е настъпила фатална грешка на PHP, най-често в разширение или тема. WordPress я прихваща, показва това съобщение и изпраща имейл до административния имейл адрес на сайта, с връзка към режима за възстановяване. Журналът за отстраняване на грешки дава подробностите за грешката и файла, който я причинява.
Проверете папката за спам и имейл адреса, въведен в Настройки > Общи. Без имейл включете журнала за отстраняване на грешки в wp-config.php, прочетете грешката в wp-content/debug.log, след това изключете проблемния компонент, като преименувате папката му по SFTP.
Настройките се запазват: те са записани в базата данни, а не в папката на разширението. Преименуваното разширение се показва като деактивирано; върнете оригиналното му име и го активирайте отново от екрана с разширенията, за да си го върнете заедно с настройките.
Проблемният компонент се зарежда само в администрацията или необходимата памет там е по-голяма. WordPress прилага WP_MAX_MEMORY_LIMIT към административните екрани и WP_MEMORY_LIMIT към публичния сайт. Журналът за отстраняване на грешки дава същата информация и в двата случая: заредете административната страница с грешката, след това прочетете debug.log.
Simafri
Да поговорим за Вашия проект
Кажете ни с няколко думи от какво имате нужда: отговаряме Ви бързо.
Благодарим! Вашето запитване е изпратено. Ще се свържем с вас скоро.
Предпочитате имейл? Пишете ни на support@simafri.com.