Безплатни плъгини за Вашия онлайн магазин от Forge.bg

WordPress и 500 Internal Server Error: какво означава грешката и как да открием причината

WordPress и 500 Internal Server Error: какво означава грешката и как да открием причината

500 Internal Server Error е една от най-неприятните грешки за собствениците на WordPress сайтове. Причината е проста: съобщението е общо и не казва директно какво точно се е счупило.

Вместо да виждате началната страница, админ панела или конкретна публикация, браузърът показва съобщение от типа:

500 Internal Server Error

или:

HTTP ERROR 500

Понякога сайтът може да показва само бял екран, без никакво обяснение. Това не означава, че сайтът е изгубен или че хостингът не работи.

Какво означава 500 Internal Server Error?

Когато отворите сайт, браузърът изпраща заявка към сървъра. Сървърът обработва тази заявка и връща отговор.

Ако всичко е наред, получавате страницата. Ако страницата липсва, ще видите 404. Ако нямате достъп, ще видите 403.

При 500 Internal Server Error ситуацията е различна. Сървърът разбира заявката, но не успява да я изпълни правилно. Затова връща обща грешка 500.

По-просто казано:

500 грешката означава, че нещо от страната на сайта или сървъра е попречило на страницата да зареди.

Причината може да бъде plugin, theme, PHP грешка, проблемен .htaccess файл, липса на памет, грешни permissions или друга конфигурация.

Защо грешката не казва точната причина?

500 Internal Server Error е общо съобщение. То е като лампа “check engine” при автомобил — показва, че има проблем, но не казва веднага коя част го причинява.

Причината често се записва в error_log файловете на хостинга при cPanel или System Info & files -> Site summary & logs при DirectAdmin. Затова правилният подход не е да пробвате случайни решения, а да съберете повече информация и след това да атакувате проблема.

Най-чести причини за 500 грешка в WordPress

  1. Проблемен plugin

Това е една от най-честите причини. Plugin може да предизвика 500 грешка, ако:

  • е несъвместим с текущата PHP версия;
  • е несъвместим с друг plugin;
  • е счупен след update;
  • използва твърде много ресурси;
  • съдържа грешка в кода.

 

Често проблемът се появява веднага след инсталиране, активиране или обновяване на plugin.

  1. Проблемна WordPress тема

Темата също може да причини 500 грешка. Това се случва при:

  • грешка във functions.php;
  • несъвместимост с PHP версията;
  • неправилно обновяване;
  • липсващи файлове;
  • конфликт с plugin.

 

Ако грешката се появи веднага след смяна или обновяване на тема, тя е основен заподозрян, но не и на 100%, това може да означава, че обновената версия не е съвместима с версия на plugin, и той трябва да бъде обновен също.

  1. Повреден или грешен .htaccess файл

Файлът .htaccess управлява важни правила за сайта – например красивите WordPress линкове, redirects и някои security настройки.

Грешка в този файл може да предизвика 500 Internal Server Error.

Това често се случва след:

  • промяна на permalink настройките;
  • инсталиране на cache или security plugin;
  • ръчно добавяне на redirect правила;
  • миграция на сайта (останали настройки характерни за предишния доставчик).

 

  1. Недостатъчен PHP memory limit

WordPress, темите и plugin-ите използват PHP памет. Ако даден процес изисква повече памет от позволеното, сайтът може да върне 500 грешка.

Това е по-вероятно при:

  • тежки page builder-и като Elementor;
  • WooCommerce сайтове;
  • много активни plugin-и;
  • import/export операции;
  • сложни заявки към базата данни.

 

  1. Несъвместима PHP версия

Някои стари теми и plugin-и не работят добре с по-нови PHP версии. Също и обратното – нов plugin може да изисква по-нова PHP версия от текущата. Новите версии на WordPress изискват PHP версия 8.2+ (препоръчително е 8.3).

След смяна на PHP версията сайтът може да започне да показва 500 грешка, ако част от кода не е съвместима.

  1. Грешни file permissions

Стандартно папките трябва да имат permissions 755, а файловете 644. Тези permissions са от изключителна важност за правилната работа на WordPress.

  1. Грешка в PHP кода

Ако сте редактирали файл от темата, plugin или wp-config.php, дори малка синтактична грешка може да счупи сайта.

  1. Проблем след update

Понякога 500 грешката се появява след update на:

  • WordPress core;
  • plugin;
  • тема;
  • PHP версия;
  • WooCommerce;
  • page builder.

 

Това не е показател, че update-ът е “лош”. По-често означава, че някой компонент вече не е съвместим с друг, а при несъвместимост единият компонент не работи правилно.

Как да диагностицираме правилно?

Много е важно да не правите много промени наведнъж. Ако едновременно спрете всички плъгини, смените темата, промените .htaccess и т.н. и въпреки това сайтът ви заработи, това не ви помага да разберете кое точно е предизвикало грешката.

Първото, което ви съветвам да направите е да проверите error_log файловете. Потърсете последните записани грешки, те ще ви подскажат възможната причина.

В wp-config.php файла добавете следния код:

define( ‘WP_DEBUG’, true );

define( ‘WP_DEBUG_LOG’, true );

define( ‘WP_DEBUG_DISPLAY’, true );

След това отворете отново сайта. Вече трябва да виждате повече подробности, които да подскажат къде може да се крие проблемът.

Ако дори тези насоки не дават яснота, преминете към метода на изключването.

Много е вероятно да нямате достъп до админ панела и спирането на плъгини директно от системата е невъзможно. Отворете файловия мениджър и навигирайте до папката на инсталацията на WordPress -> wp-content -> plugins и започнете да преименувате папките на плъгините.

Пример:

Папка Elementor -> Elementor-old

По този начин WordPress няма да отчита плъгина. След всеки спрян плъгин правете опит за зареждане на сайта отново. Ако причината е в плъгин, това е начина да върнете сайта си онлайн и да достъпите админ менюто, за да можете да направите ъпдейт на плъгина при нужда или да го замените с друг.

Много често след ъпдейт на WordPress ядрото, сегашната ви тема може да не е съвместима. Това също може да счупи вашия уебсайт и се налага темата да бъде ъпдейтната с по-нова версия. Най-удачният вариант е да смените сегашната тема с “TwentyTwentyFive”, стандартна тема от WordPress.

Тук трябва да сте много внимателни, защото този метод включва промяна в базата данни на вашата инсталация и дори малка грешка може да ви коства цялата информация.

Името на базата данни, която използва вашият сайт, можете да вземете от wp-config.php файла. След това, от DirectAdmin, използвайте PHPmyAdmin, намирате базата данни и от таблицата “_options” променяте стойностите на “template” и “stylesheet” на “twentytwentyfive”. Запаметете направените промени и опитайте да заредите сайта си отново. Направете опит да влезете в админ панела и да направите ъпдейт на вашата тема преди да я активирате отново.

Ако скоро сте инсталирали нови плъгини, то често се случва те самите да добавят код в .htaccess файла. Можете да преименувате сегашния .htaccess файл и да създадете стандартен такъв предоставен директно от WordPress:

BEGIN WordPress

RewriteEngine On

RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteBase /

RewriteRule ^index.php$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

END WordPress

В .htaccess файла също можете да промените лимитите на PHP. Това са препоръчителните максимални настройки:

php_value memory_limit 1024M

php_value max_execution_time 300

php_value max_input_time 300

php_value upload_max_filesize 256M

php_value post_max_size 256M

php_value max_input_vars 10000

След промяната, запаметете и презаредете сайта си отново.

В много краен вариант, можете да се свържете с отдел поддръжка и да заявите да бъде зареден по-стар бекъп файл от дата, на която вашият уебсайт е работил без проблеми.

Сподели статията