Почему возникает ошибка 500 internal server error

Почему возникает ошибка 500 internal server error

Как получить больше данных о причине ошибки

Что означает ошибка 500, мы теперь знаем. Когда она перестала быть таким загадочным персонажем, не страшно копнуть глубже — научиться определять причину ошибки. В некоторых случаях это можно сделать самостоятельно, и обращаться за помощью к профильному специалисту не понадобится.

Отображение ошибки бывает разным. Ее внешний облик зависит от того, чем она вызвана.

Есть 2 самые частые причины 500 ошибки:

  1. некорректная настройка файла .htaccess
  2. неполадки в скриптах сайта

Распознать эти 2 причины можно по тексту ошибки или внешнему виду страницы. 

  • Сообщение Internal Server Error. Есть проблемы с файлом .htaccess. Убедиться, что .htaccess является корнем проблемы, поможет следующий прием: переименуйте файл .htaccess, например, добавив единицу в конце названия. Это можно сделать с помощью FTP-клиента (мне нравится FileZilla, он удобен в использовании) или файлового менеджера на вашем хостинге. В Timeweb такой есть, с ним довольно просто работать. После проверьте доступность сайта. Если ошибка больше не наблюдается, вы нашли причину.
  • Сообщение HTTP ERROR 500 или пустая страница. Проблема связана со скриптами сайта. Во втором случае стоит учесть, что отсутствие содержимого сайта не всегда указывает на внутреннюю ошибку сервера 500.

Узнаем, что скрывается за пустой страницей, обратившись к инструментам разработчика. Эта панель доступна в браузере, она позволяет получить информацию об ошибках и другие данные (время загрузки страницы, html-элементы и т.д.). 

Как открыть панель разработчика:

  1. — нажмите клавишу F12 — способ актуален для большинства браузеров на Windows
  2. — используйте сочетание клавиш Cmd+Opt+J — в Google Chrome на Mac OS
  3. — примените комбинацию Cmd+Opt+C — в Safari на Mac OS (перед этим включите «Меню разработки» в разделе «Настройки» -> «Продвинутые»).

Откройте вкладку «Сеть» (или «Network») и взгляните на число в поле «Статус». Код ответа об ошибке 500 — это соответствующая цифра:

Почему возникает ошибка 500 internal server errorБолее детальную диагностику можно провести с помощью логов. Простыми словами: лог — это журнал, в который записывается информация об ошибках, запросах к серверу, подключениях к серверу, действиях с файлами и т.д. Как вы видите, данных в логи записывается немало, поэтому они разделены по типам. За сведениями о нашей ошибке или других можно обратиться к логам ошибок (error_log). Обычно такие логи предоставляет служба поддержки хостинга, на котором размещен сайт. В Timeweb вы можете включить ведение логов и заказать необходимые в панели управления. Разобраться в полученных логах поможет статья «Чтение логов».

Как исправить 500 internal server error Nginx

Почему возникает ошибка 500 internal server error

Дословно Internal server error означает внутренняя ошибка сервера. И вызвать её могут несколько проблем. Вот основные из них:

  • Ошибки в скрипте на PHP — одна из самых частых причин;
  • Превышено время выполнения PHP скрипта или лимит памяти;
  • Неправильные права на файлы сайта;
  • Неверная конфигурация Nginx.

А теперь рассмотрим каждую из причин более подробно и разберем варианты решения.

1. Ошибка в скрипте PHP

Мы привыкли к тому, что если в PHP скрипте есть ошибки, то сразу же видим их в браузере. Однако на производственных серверах отображение сообщений об ошибках в PHP отключено, чтобы предотвратить распространение информации о конфигурации сервера для посторонних. Nginx не может отобразить реальную причину ошибки, потому что не знает что за ошибка произошла, а поэтому выдает универсальное сообщение 500 internal server error.

Чтобы исправить эту ошибку, нужно сначала понять где именно проблема. Вы можете включить отображение ошибок в конфигурационном файле php изменив значение строки display_errors с off на on. Рассмотрим на примере Ubuntu и PHP 7.2:

Почему возникает ошибка 500 internal server error

Перезапустите php-fpm:

Затем обновите страницу и вы увидите сообщение об ошибке, из-за которого возникла проблема. Далее его можно исправить и отключить отображение ошибок, тогда все будет работать. Ещё можно посмотреть сообщения об ошибках PHP в логе ошибок Nginx. Обычно он находится по пути /var/log/nginx/error.log, но для виртуальных доменов может настраиваться отдельно. Например, смотрим последние 100 строк в логе:

Почему возникает ошибка 500 internal server error

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

2. Превышено время выполнения или лимит памяти

Это продолжение предыдущего пункта, так тоже относится к ошибкам PHP, но так, как проблема встречается довольно часто я решил вынести её в отдельный пункт. В файле php.ini установлены ограничения на время выполнения скрипта и количество оперативной памяти, которую он может потребить. Если скрипт потребляет больше, интерпретатор PHP его убивает и возвращает сообщение об ошибке.

Также подобная ошибка может возникать, если на сервере закончилась свободная оперативная память.

Если же отображение ошибок отключено, мы получаем error 500

Обратите внимание, что если время ожидания было ограничено в конфигурационном файле Nginx, то вы получите ошибку 504, а не HTTP ERROR 500, так что проблема именно в php.ini

Чтобы решить проблему увеличьте значения параметров max_execution_time и memory_limit в php.ini:

Почему возникает ошибка 500 internal server error

Также проблема может быть вызвана превышением других лимитов установленных для скрипта php. Смотрите ошибки php, как описано в первом пункте. После внесения изменений в файл перезапустите php-fpm:

3. Неверные права на файлы

Такая ошибка может возникать, если права на файлы, к которым обращается Nginx установлены на правильно. Сервисы Nginx и php-fpm должны быть запущены от имени одного и того же пользователя, а все файлы сайтов должны принадлежать этому же пользователю. Посмотреть от имени какого пользователя запущен Nginx можно командой:

Почему возникает ошибка 500 internal server error

Чтобы узнать от какого пользователя запущен php-fpm посмотрите содержимое конфигурационного файла используемого пула, например www.conf:

Почему возникает ошибка 500 internal server error

В моем случае это пользователь nginx. Теперь надо убедится, что файлы сайта, к которым вы пытаетесь обратиться принадлежат именно этому пользователю. Для этого используйте команду namei:

Файлы сайта должны принадлежать пользователю, от имени которого запущены сервисы, а по пути к каталогу с файлами должен быть доступ на чтение для всех пользователей. Если файлы принадлежат не тому пользователю, то вы можете все очень просто исправить:

Этой командой мы меняем владельца и группу всех файлов в папке на nginx:nginx. Добавить права на чтение для всех пользователей для каталога можно командой chmod. Например:

Далее все должно работать. Также, проблемы с правами может вызывать SELinux. Настройте его правильно или отключите:

Почему возникает ошибка 500 internal server error

Как устранить ошибку

Теперь поговорим о том, как исправить ошибку 500. Вернемся к популярным причинам этой проблемы и рассмотрим некоторые способы решения.

Ошибки в файле .htaccess

У этого файла довольно строгий синтаксис, поэтому неверно написанные директивы (команды) могут привести к ошибке. Попробуйте поочередно удалить команды, добавленные последними, и проверьте работу сайта. 
Также найти проблемную директиву можно с помощью логов ошибок. На ошибку в директиве обычно указывает фраза «Invalid command». Информацию о верном написании директивы или способе исправления ошибок в .htaccess вы можете найти в интернете. Не нужно искать, почему выдает ошибку 500, просто введите в строку поиска название нужной команды или текст ошибки, полученной из логов.

Ошибки в скриптах сайта

1) Скрипт не запускается.
Обычно это происходит, когда существует ошибка в скрипте, или при наличии функции, которая не выполняется. Для успешного запуска скрипта функция должна быть верно прописана, поддерживаться сервером и выполняться от используемой версии PHP. Бывают ситуации, когда функция несовместима с определенными версиями PHP. Получить более подробную информацию о той или иной функции можно в интернете. 

2) Не хватает оперативной памяти.
Если в логах вы видите ошибку «Allowed memory size», для устранения ошибки 500 стоит оптимизировать работу скрипта. Вы можете воспользоваться специальными расширениями для анализа производительности скрипта или обратиться за помощью к специалисту, который поработает над его оптимизацией.

Ошибки в CMS

Если код CMS содержит неверный синтаксис, это может вывести сайт из строя. В таком случае логи сообщат вам об ошибке 500 текстом «PHP Parse error: syntax error, unexpected». Так происходит, когда некорректно работает плагин (или тема, используемая в CMS, но реже) либо при наличии ошибки в коде. Ошибка может быть допущена случайно, произойти при обновлении плагина или версии CMS.

При чтении логов обратите внимание на путь, который следует за сообщением об ошибке. Он может указать на проблемную часть кода или плагин

Если проблема в плагине, для восстановления работы сайта переименуйте на время папку, в которой он расположен. Попробуйте обновить плагин или откатить его до прежней версии. Если ситуацию не удается исправить, от плагина стоит отказаться либо заменить его аналогом. Также в большинстве случаев подобные проблемы помогает решить поддержка CMS.

Информацию о других распространенных ошибках вы можете найти в статье «6 наиболее часто возникающих ошибок HTTP и способы их устранения».

Summary

500 internal server errors are always frustrating, but hopefully, now you know a few additional ways to troubleshoot them to quickly get your site back up and running. Remember, typically these types of errors are caused by third-party plugins, fatal PHP errors, database connection issues, problems with your .htaccess file or PHP memory limits, and sometimes PHP timeouts.

Was there anything we missed? Perhaps you have another tip on troubleshooting 500 internal server errors. If so, let us know below in the comments.

If you enjoyed this article, then you’ll love Kinsta’s WordPress hosting platform. Turbocharge your website and get 24/7 support from our veteran WordPress team. Our Google Cloud powered infrastructure focuses on auto-scaling, performance, and security. Let us show you the Kinsta difference! Check out our plans

IIS Specific HTTP Error 500 codes

Microsoft’s Internet Information Services (IIS) web server has more detailed error 500 messages:

500 Internal server error.
500.0 Module or ISAPI error occurred.
500.11 Application is shutting down on the web server.
500.12 Application is busy restarting on the web server.
500.13 Web server is too busy.
500.15 Direct requests for Global.asax are not allowed.
500.19 Configuration data is invalid.
500.21 Module not recognized.
500.22 An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.
500.23 An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.
500.24 An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.
500.50 A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.
500.51 A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.
500.52 A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.
500.53 A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.
500.100 Internal ASP error.

For more on IIS specific status codes see The HTTP status code in IIS 7.0, IIS 7.5, and IIS 8.0

HTTP Error 500 in the HTTP cycle

Any client (e.g. your Web browser or our CheckUpDown robot) goes through the following cycle when it communicates with the Web server:

  1. Obtain an IP address from the IP name of the site (the site URL without the leading ‘http://’). This lookup (conversion of IP name to IP address) is provided by domain name servers (DNSs).
  2. Open an IP socket connection to that IP address.
  3. Write an HTTP data stream through that socket.
  4. Receive an HTTP data stream back from the Web server in response. This data stream contains status codes whose values are determined by the HTTP protocol. Parse this data stream for status codes and other useful information.

An error 500 occurs in the final step above when the client receives an HTTP status code that it recognises as «500».

How to Fix the 500 Internal Server Error

Like we alluded to above, the 500 Internal Server Error is a server-side error, meaning the problem probably isn’t with your computer or internet connection but instead with the website’s server.

While not probable, it is possible that there’s something wrong on your end, in which case we’ll look at some things you can try:

  1. Reload the web page. You can do that by selecting the refresh/reload button, pressing F5 or Ctrl+R, or trying the URL again from the address bar.

    Even if the 500 Internal Server Error is a problem on the web server, the issue might just be temporary. Trying the page again will often be successful.

    If the 500 Internal Server Error message appears during the checkout process at an online merchant, be aware that duplicate attempts to checkout may end up creating multiple orders— and multiple charges! Most merchants have automatic protections from these kinds of actions, but it’s still something to keep in mind.

  2. Clear your browser’s cache. If there’s a problem with the cached version of the page you’re viewing, it could be causing HTTP 500 issues.

    Internal Server Errors are not often caused by caching issues, but I have, on occasion, seen the error go away after clearing the cache. It’s such an easy and harmless thing to try, so don’t skip it.

  3. Delete your browser’s cookies. Some 500 Internal Server Error issues can be corrected by deleting the cookies associated with the site you’re getting the error on.

    After removing the cookie(s), restart the browser and try again.

  4. Troubleshoot as a 504 Gateway Timeout error instead. It’s not very common, but some servers produce a 500 Internal Server Error when in reality 504 Gateway Timeout is a more appropriate message based on the cause of the problem.

  5. Contacting the website directly is another option. There’s a good chance that the site’s administrators already know about the 500 error, but if you suspect they don’t, letting them know helps both you and them (and everyone else).

    If it looks like the site is down completely and you can’t find a way to report the 500 Internal Server Error message to the website, it might help your sanity to keep up with the outage on Twitter. You can usually do this by searching for #websitedown on Twitter, as in #gmaildown or .

  6. Come back later. Unfortunately, at this point, the 500 Internal Server Error is no doubt a problem outside of your control that will eventually get fixed by someone else.

If the 500 Internal Server Error message is appearing at checkout during an online purchase, it might help to realize that sales are probably being disrupted—usually a great incentive to the online store to fix the issue very quickly!

Even if you’re getting the 500 error on a site that doesn’t sell anything, like YouTube or Twitter, as long as you’ve let them know about the problem, or at least tried, there’s little more you can do than wait it out.

Fixing your site

Check .htaccess file

As the website owner, have you changed the .htaccess configuration recently? .htaccess files containing incorrect syntax are a common cause of this problem. If you believe this may be the cause then rename the file and try loading the page again. If this resolves the issue then this confirms an issue with the .htaccess file. This should be checked, corrected and then put back into place.

Coding/scripting mistakes

If you maintain the site and use a scripting or coding language (such as PHP) to dynamcally output content then mistakes in the syntax of the language can be a cause of the error 500. Check to see if the page in question has been modified recently and verify that the syntax is correct.

Investigate Logs

If you’re the owner of the website, the first thing you should dois to check the web server logs.
For example in the Apache2 web server a typical log location would be in .
Typically the file will be called but it might be different if the web server has been configured with a different log file format.
For Internet Information Services (IIS) the default location for the log files are in

Contact ISP or Hosting Provider

If you are the owner but do not have access to the web server’s logs and/or filesystem then you should contact your ISP/hosting provider for details of the logs so that you can investigate. Some ISPs/Hosting Providers such as IONOS provide access to tools via their «Control Panels» that allow the logs to be interrogated. It may be that your ISP/Hosting Provider might be the cause of the issue (e.g. upgrading server software etc) and may be aware of the problem causing the error 500 issue with your site and therefore resolve it for you or can help you with it. It is also worth checking out any ISP help pages and articles on the subject written by the ISP/Hosting provider as they may contain specific advice to the problem.

Contact CMS provider

If you are experiencing a this problem on your WordPress or other content management system then you can contact them for assistance. They should also have some help pages on their website which might be of help — e.g. WordPress have support forums where you might find an answer to a similar error 500 problem.

What is a 500 Internal Server Error?

When you visit a website your browser sends a request over to the server where the site is hosted. The server takes this request, processes it, and sends back the requested resources (PHP, HTML, CSS, etc.) along with an HTTP header. The HTTP also includes what they call an HTTP status code. A status code is a way to notify you about the status of the request. It could be a 200 status code which means “Everything is OK” or a 500 status code which means something has gone wrong.

There are a lot of different types of 500 status error codes (500, , , , , etc.) and they all mean something different. In this case, a 500 internal server error indicates that the server encountered an unexpected condition that prevented it from fulfilling the request (, section 6.6.1).

Почему возникает ошибка 500 internal server error

500 internal server error in WordPress

500 Internal Server Error Variations

Due to the various web servers, operating systems, and browsers, a 500 internal server error can present itself in a number of different ways. But they are all communicating the same thing. Below are just a couple of the many different variations you might see on the web:

    • “500 Internal Server Error”
    • “HTTP 500”
    • “Internal Server Error”
    • “HTTP 500 – Internal Server Error”
    • “500 Error”
    • “HTTP Error 500”
    • “500 – Internal Server Error”
    • “500 Internal Server Error. Sorry something went wrong.”
    • “500. That’s an error. There was an error. Please try again later. That’s all we know.”
    • “The website cannot display the page – HTTP 500.”
    • “Is currently unable to handle this request. HTTP ERROR 500.”

You might also see this message accompanying it:

Почему возникает ошибка 500 internal server error

Internal Server Error

Other times, you might simply see a blank white screen. When dealing with 500 internal server errors, this is actually quite common in browsers like Firefox and Safari.

500 internal server error in Firefox

Bigger brands might even have their own custom 500 internal server error messages, such as this one from Airbnb.

Почему возникает ошибка 500 internal server error

Airbnb 500 internal server error

Here is another creative 500 server error example from the folks over at readme.

Почему возникает ошибка 500 internal server error

readme 500 internal server error

Even the mighty YouTube isn’t safe from 500 internal server errors.

Почему возникает ошибка 500 internal server error

500 internal server error on YouTube

If it’s an IIS 7.0 (Windows) or higher server, they have additional HTTP status codes to more closely indicate the cause of the 500 error:

  • 500.0 – Module or ISAPI error occurred.
  • 500.11 – Application is shutting down on the web server.
  • 500.12 – Application is busy restarting on the web server.
  • 500.13 – Web server is too busy.
  • 500.15 – Direct requests for global.asax are not allowed.
  • 500.19 – Configuration data is invalid.
  • 500.21 – Module not recognized.
  • 500.22 – An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.
  • 500.23 – An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.
  • 500.24 – An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.
  • 500.50 – A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.
  • 500.51 – A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.
  • 500.52 – A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.
  • 500.53 – A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.
    500.100 – Internal ASP error.

500 Errors Impact on SEO

Unlike 503 errors, which are used for WordPress maintenance mode and tell Google to check back at a later time, a 500 error can have a negative impact on SEO if not fixed right away. If your site is only down for say 10 minutes and it’s being crawled consistently a lot of times the crawler will simply get the page delivered from cache. Or Google might not even have a chance to re-crawl it before it’s back up. In this scenario, you’re completely fine.

However, if the site is down for an extended period of time, say 6+ hours, then Google might see the 500 error as a site level issue that needs to be addressed. This could impact your rankings. If you’re worried about repeat 500 errors you should figure out why they are happening to begin with. Some of the solutions below can help.

Почему возникает ошибка

Итак, ошибка 500 возникает, когда серверу не удается обработать запрос к сайту. Из-за этого пользователи не могут попасть на сайт, а поисковые системы полноценно с ним работать. Очевидно, что ошибка нуждается в исправлении. Перво-наперво необходимо определить, почему вообще появилась ошибка.

Вот основные причины ошибки 500:

  1. неверный синтаксис файла .htaccess — это файл, в котором можно задавать настройки для работы с веб-сервером Apache и вносить изменения в работу сайта (управлять различными перенаправлениями, правами доступа к файлам, опциями PHP, задавать собственные страницы ошибок и т.д.). 
    Узнать больше о файле .htaccess можно в статье «Создание и настройка .htaccess».
  2. ошибки в скриптах сайта, то есть сценариях, созданных для автоматического выполнения задач или для расширения функционала сайта
  3. нехватка оперативной памяти при выполнении скрипта
  4. ошибки в коде CMS — программы, которая помогает создать сайт и управлять его содержимым

Почему возникает дисфункция 500

Обычно ошибка 500 Сбербанка возникает при попытке выполнить оплату с карты, когда терминал вместо корректного зачисления средств выдаёт сообщение об ошибке 500. В некоторых случаях деньги могут быть сняты с карты, при этом покупка через терминал не проходит, и магазин не получает причитающихся ему средств.

Согласно пояснительным инструкция службы технической поддержки ПАО «Сбербанк», ошибка 500 вызвана неверной конфигурацией сервера или самого терминала «Сбербанка». Из-за массовой нагрузки пользователей на сервера «Сбербанка» сервера испытывают перегрузки, сбоят и работают нестабильно. Вследствие этого множество массовых операций, проходящих онлайн через серверы Сбербанка, получают ошибку 500.

Также причиной ошибки 500 могут быть хакерские атаки на сайт, профилактические или технические работы на серверах «Сбербанка», вызывающие временные сбои в функционале последних.

Ещё одним фактором ошибки 500 может послужить ошибка UEPS, которую можно встретить в файле настроек к пинпаду.

Как же исправить ошибку 500 терминала Сбербанка? Давайте разбираться.

Причина возникновения 500 Internal Server Error

Почему возникает ошибка 500 internal server error

Факторов должным образом вызывающих эту непредвиденную ситуацию, может быть огромное количество. Стоит отметить, что в большинстве случаев 70% из 100%, виновником становиться сам администратор или вебмастер. Внося изменения в конфигурацию или директории и т.д. Буквально пропустив точку с запятой, особенно при редактировании правил для серверной части. Вам сразу свалится на голову эта проблемка. Давайте рассмотрим еще факторы:

  • Неудачное обновление движка WordPress.
  • Конфликт между плагинами и новым установленным плагином.
  • Плохой шаблон темы или неудачное обновление установленной темы.
  • Неправильное правило указанное в .htaccess или пропуск точки с запятой.
  • Неграмотное внесение корректировок в  WP или в самом шаблоне темы. Пропустили точку с запятой, внесли критические изменения или удалили важную строку кода.
  • Нехватка серверных ресурсов необходимых для стабильной работы.
  • Недопустимая версия php указанная на сервере или хостинге.
Поделитесь с друзьями

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *