https://blog.superhosting.bg/internal-server-error-500.html

Натиснете ENTER, за да видите резултатите или ESC за изход.

3 съвета за справяне с Internal Server Error 500

2017-08-22
Съвети от support-a
htaccess, internal, internal server error, error 500, cron, права файлове, права директории, CGI, Fast CGI

В пика на лятото всички търсим спасение от горещините чрез басейни, планините или любимото моренце…

В следващите редове обаче, техническият екип на нашата хостинг компания ще ви даде няколко други и малко по-про „спасителни трика“. 🙂

В тази публикация на „Съвети от support-a“ ще намерите 3 причини за грешка 500 и 3 съвета как да се справите, когато вместо страницата, която очаквате да видите, получите съобщение:

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

Първото, което трябва да проверите, при получаване на грешка Internal Server Error, е дали причината не е някоя от следните три:

  1. Некоректни права на файл или директория;
  2. Некоректни директиви в .htaccess файл;
  3. Скрипт се изпълнява повече от 60 секунди при 100% използване на процесор.

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

За да работи коректно едно приложение на сървърите на СуперХостинг.БГ, директориите му трябва да са с права 755, а файловете – с права 644.

При получаване на съобщение „грешка 500“ на вашия сайт, първото нещо, което трябва да направите, е да погледнете логовете на уеб сървъра. Много често в тях се съдържа информация за грешката, а най-честата причина са некоректните права. Логовете, в които се записват грешките, генерирани при отваряне на даден сайт, са достъпни през cPanel -> Error log.

Когато правата на даден файл не са коректни, в логовете ще видите подобни записи:

[2017-07-12 12:21:47]: error: file is writable by others: (/home/cpuser/public_html/dir/myfile.php).

Ако правата на дадена директория не са коректни, то записите ще са подобни:

[2017-07-12 12:20:53]: error: directory is writable by others: (/home/cpuser/public_html/mydir).

✅ Коригиране на правата на файл или директория

» Коригиране на правата през cPanel -> Fix Permissions by SuperHosting

Към всички предлагани хостинг планове и Managed VPS услуги от СуперХостинг.БГ е включен специалният инструмент Fix Permissions by SuperHosting. Чрез него можете да коригирате правата на файловете и директориите в хостинг акаунта. Можете да изберете редакция на правата за целия хостинг акаунт или за определена директория.

» Промяна на правата на един файл или една директория

Редакция на правата може да се извърши и ръчно, когато например е необходима промяна за един файл или една директория. В тези случаи можете да промените правата през файловия мениджър в cPanel или през FTP клиент.

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

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

[Thu July 07 12:48:54 2012] [alert] [client XXX.XXX.XXX.XXX] /home/username/public_html/.htaccess: Invalid command ‘RewriteEngineOn’, perhaps misspelled or defined by a module not included in the server configuration

В посочения примерен запис грешката е, че е написано слято „RewriteEngineOn“, вместо „RewriteEngine On“.

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

» Преглед на съдържанието във файла .htaccess

Препоръчителният начин за проверка дали директивите в този файл са коректни, е като проверите съдържанието му. Ако в .htaccess файла няма никакво съдържание или директиви, тогава потърсете друг .htaccess файл, който може да се намира в горна директория. Ако извършвате проверката през Файловия мениджър в cPanel и не откривате никакви .htaccess файлове в директориите на сайта, уверете се че сте активирали опцията за показване на скритите файлове. Ако откриете .htaccess файл и в него има съдържание, ще е нужно да имате познания за RewriteRules и регулярни изрази, за да можете да установите некоректните директиви.

» Преименуване на .htaccess файла

Този начин за проверка е най-бързият, но е препоръчително да се извършва само ако сайтът не се зарежда изобщо и при достъпването на всяка негова страница се получава съобщение за грешка 500. Преименуването на този файл означава, че ще деактивирате всички правила и директиви в него. Проверката се извършва по следния начин – първо преименувате файла .htaccess, например на –htaccess, и след това опитвате да заредите сайта в браузъра. Ако сайтът се зареди успешно или се зареди някакво съдържание, каквото и да е, стига да не е отново грешка 500, това е сигурен сигнал, че има нещо проблемно във файла .htaccess.

Преименуването на този файл, когато сайтът се зарежда безпроблемно, не се препоръчва. Деактивирането на директивите в този файл може да доведе до проблем със зареждането и дори получаване на грешка 500. Например ако сайтът е онлайн магазин или такъв, на който потребителите извършват действия, които зависят от директивите в .htaccess, възможно е при преименуването да се прекъснат тези действия и да се загуби информация (например плащане на поръчка).

3. Скрипт, който изпълнява тежка операция и не може да завърши до 60 секунди

Проблемен или тежък скрипт е такъв, който се изпълнява повече от 60 секунди, като през цялото това време използва на 100% един процесор.

На сървърите за споделен хостинг има зададена стандартна настройка за максимално време за изпълнение на даден скрипт при 100% използване на един процесор. Това време е 60 секунди и е зададено с цел защита от изпълнение на некоректни скриптове (например безкраен цикъл).

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

Тази настройка е различна от PHP директивата max_execution_time, чрез която се оказва колко време да се изпълнява скрипт от PHP интерпретатора. Скриптът не е задължително да изразходва 100% CPU по време на изпълнението си.

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

В този случай не е налична информация в меню Error log в контролния панел. Можете да разпознаете такъв скрипт, тъй като грешка 500 няма да се получи веднага при достъпване на страницата, а след известно изчакване (в рамките на секунди).

✅ Проверка на скрипта

» Скриптът се използва за импорт/експорт на данни, бекъп или друга тежка операция

Когато скриптът е оптимизиран, не съдържа проблемен код или логика, и има нужда от повече ресурс и време, за да завърши тежката операция, възможно е той да се стартира през Cron системата в cPanel. Подробна информация за настройка и употреба на cron задачите, можете да откриете на нашата помощна страница тук.

» Скриптът има нужда от редакция/оптимизация

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

Съвети от support-а:

  • Следете логовете за грешки, за да можете да ги отстранявате своевременно!
  • Проверявайте скриптовете, които се изпълняват в сайта и оптимизирайте операциите и времето им за изпълнение!
  • И за оптимизирано лятно изживяване – четете блога ни от плажа! 🙂

СуперХостинг.БГ

СуперХостинг.БГ е СуперЕкипът! Ежедневно всеки дава най-доброто от себе си, за да можете вие, клиентите на СуперХостинг.БГ, да сте номер едно. СуперСилата на СуперЕкипа е, че винаги е готов да ви даде точната информация, тази от която се нуждаете и за която питате.

500px270px
SuperHosting.BG

Препоръчани статии

Етикети/Tags

Оставете коментар

7 Коментара към "3 съвета за справяне с Internal Server Error 500"

Уведоми ме при
avatar
Митко
Гост

Има ли значение и процесора като хардуер освен PHP настройката?

smixe
Гост

при мене помогна смяната от FastCGI na CGI …

trackback

[…] 1. Некоректни права на файлове и директории; 2. Некоректни директиви в .htaccess файл; 3. Скрипт се изпълнява повече от 60 секунди при 100% използване на процесор; […]

Кирил Йовев
Гост

Впрочем при CMS-ите много често хората деинсталират част от софтуера, от което се получава грешката. При това положение аз ползвам header location , за да пренасоча невалидните адреси там, където искам.

wpDiscuz