Internal Server Error, Error 500

Съобщението Error 500 (Internal Server Error) е HTTP статус код, който може да се види при опит за зареждане на даден уеб сайт. Този код се връща от уеб сървъра към уеб браузъра, когато дадена заявка не може да бъде обработена.

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@mysupersite.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

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

Ако получите съобщение „грешка 500“ на Вашия сайт, може първо да прегледате лога за грешки на уеб сървъра (cPanel » Errors) и логовете на PHP (error_log).

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

  • PHP скрипт, който не завършва изпълнението си (в рамките на няколко минути).
  • Некоректни права на файлове и директории.
  • Некоректни директиви в .htaccess файл.

Вижте най-честите причини за получаване на грешка 500 в статията: 6 причини за съобщение Internal Server Error 500 | Blog

Какви процеси са стартирани и се изпълняват в момента в акаунта?

Изпълняващите се процеси в хостинг акаунта може да се видят през Process Manager в cPanel.

Имената на стартираните процеси и показателите за използваните от тях ресурси (CPU и памет), може да Ви насочат към причината за получаването на грешка 500. Процесите, които се използват за обработката на PHP ще са с име “/opt/cpanel/ea-phpXX/root/usr/bin/php-cgi ”. Ако има много изпълняващи се такива процеси, имайте предвид, че за всеки един е заделена оперативна памет в размер на стойността, посочена в директивата memory_limit. Огромният брой изпълняващи се PHP процеси може да изчерпи паметта за хостинг акаунта и при зареждане на сайта да се получи съобщение за грешка 500.

Ако видите един процес, който използва 100% от процесорния ресурс, тогава можете да се насочите към проверка на приложението или услугата, която използва този процес. Например ако процесът е на PHP, то в момента даден скрипт от сайта извършва интензивна обработка на данни. Ако направите проверка след минута в Process Manager и този процес все още е активен, със същото потребление на ресурси, то най-вероятно е проблемен скрипт, който не може да завърши изпълнението си. В този случай трябва да проверите кое приложение използва този скрипт и за какво. В случай че в хостинг акаунта има само един сайт и той не се зарежда, заради грешка 500, може да рестартирате PHP процесите с опцията “Спиране на всички PHP процеси” в Process Manager.

PHP скрипт, който не завършва изпълнението си (в рамките на няколко минути).

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

Времето, за което PHP интерпретаторът ще изпълнява скрипта се задава в директивата max_execution_time. Можете да опитате да увеличите стойността на тази директива и да проверите дали съобщението за грешка се получава отново.

Ако скриптът не завърши изпълнението си за 240 секунди, той ще бъде автоматично прекъснат, поради достигане на контролните настройки на FastCGI.

На сървърите за споделен хостинг и Managed VPS има зададена контролна настройка от 240 секунди (4 минути) за изчакване на даден скрипт да върне отговор. Това време е зададено с цел защита от изпълнение на некоректни скриптове (например безкраен цикъл).

Имайки предвид, че оптималното време за изпълнение на скрипт е милисекунди, то 240 секунди са напълно достатъчни за коректната работа на 99,99% от приложенията. Ако се изпълнява по-тежка операция и/или някой скрипт изисква повече време за изпълнение, е възможно да се получи грешка Error 500.

Бележка: При онлайн магазините има специфични операции с продуктите, като импорт, експорт, синхронизация, при които на скриптовете може да им е нужно повече време за завършване. Особено когато броят на продуктите е голям или въпросният скрипт не е най-оптимално работещ. В случай че сайтът е онлайн магазин и се опитвате да извършите някое от описаните действия, свържете с нас, за да съдействаме.

Некоректни права на файлове и директории

Правата на файла, който се опитвате да изпълните, са такива, че и други освен собственика могат да пишат в него. В този случай в Error Log-а ще видите съобщение подобно на това:

[2016-04-20 20:21:47]: error: file is writable by others: (/home/cpaneluser/public_html/pyt/do/fail/fail.php)

За да изчезне грешката, препоръчваме да сложите права на файла: 644. Това може да направите през контролния панел или с FTP клиента, който използвате.

Правата на директорията, в която се намира файлът, са такива, че и други освен собственика могат да пишат в нея. В този случай в Error Log-а ще видите съобщение, подобно на това:

[2016-04-20 20:20:53]: error: directory is writable by others: (/home/cpaneluser/public_html/pyt/do/direktoria)

За да изчезне грешката, препоръчваме да сложите права на директорията: 755. Това може да направите през контролния панел или с FTP клиента, който използвате.

Можете бързо и лесно да коригирате правата на файловете и директориите в хостинг акаунта през контролния панел cPanel от меню „Fix Permissions by SuperHosting„.

Некоректни директиви в .htaccess файл

Ако във файла .htaccess има синтактична или правописна грешка, съответното правило няма да бъде обработено и ще се получи грешка Error 500. Информация отново можете да намерите в меню „Errors“ в cPanel.

При получаване на грешката съобщението е подобно:

[alert] [client XXX.XXX.XXX.XXX] /home/cpuser/public_html/.htaccess: Invalid command ‘RewriteEngineOn’, perhaps misspelled or defined by a module not included in the server configuration

В примера по-горе грешката е, че е написано слято „RewriteEngineOn„, което не е коректно. Коректното изписване е:

RewriteEngine On

Вижте още:

🔗 6 причини за съобщение Internal Server Error 500 | Blog

Обновена: 11.10.2022

Беше ли Ви полезна тази статия?

Вижте още