Что за ошибка 500 internal server error и как её исправить

Ошибка синтаксиса кода WordPress

Проведенный мною анализ показал, что не редко встречаются ошибки, допущенные людьми, которые используют сниппеты кода на своих WordPress-сайтах. Когда вы сталкиваетесь с этой ошибкой, то видите что-то вроде этого:

Parse error - syntax error, unexpected $end in /public_html/your_site/wp-content/themes/your-theme/functions.php on line 38

Не стоит впадать в уныние из-за этого, так как сразу понятно, где искать проблему.

Причина появления ошибок синтаксиса:

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

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

  • Научиться правильно вклеивать сниппеты кода. Если вы новичок в WordPress, то вас ждет долгий, но веселый путь к освоению этой системы управления контентом. Спешить нет смысла, так что разбирайтесь во всем, не торопясь. Если вы столкнулись с этой ошибкой после вклейки сниппета, то вам нужно научиться вклеивать их в WordPress правильно или сделаете только хуже.
  • Исправить кусок неправильного кода. Если эта WordPress-ошибка возникла после обновления плагина или вклейки кода из сети, вы знаете, где искать поломку. Проблема заключается в том, что если ошибка не дает вам попасть на сайт и воспользоваться «Внешний вид -> Редактор (или Плагины -> Редактор)». Это, конечно же, пугает большинство новичков, но не стоит волноваться, так как всегда можно отредактировать файлы WordPress с помощью FTP или Файлового менеджера из вашей cPanel. Найдите поврежденный файл и исправьте код, удалив его или переписав.
  • Попробовать другую тему или плагин. Если ошибка появилась после активации новой темы или плагина, то вероятнее всего она вызвана темой или плагиной. Так что вы можете найти альтернативу вашему выбору или связаться с разработчиками, чтоб те решили проблему. В некоторых случаях у вас может не быть возможности авторизоваться в WordPress, и в таком случае можно удалить плагин или тему с помощью FTP.

Ошибка «Warning: Cannot Modify Header Information – Headers Already Sent By»

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

Warning: Cannot modify header information — Header already sent by (Output started at /blog/wp-config.php:34)

Последняя часть (Output started at /blog/wp-config.php:34) говорит нам, откуда взялась ошибка

Причина возникновения ошибки:

Присутствие пробелов в затронутом файле (в случае выше это wp-config.php)

Решение проблемы:

  • Вам нужно будет удалить все пробелы. Для устранения ошибки нужно:
  • Скачать затронутый файл (например, wp-config.php) с помощью файлового менеджера или FTP
  • Открыть файл в вашем любимом редакторе кода (например, Notepad++)
  • Удалить все пробелы перед первым <?php (первый <?php должен находиться в первой строке)
  • Удалить все пробелы после закрывающего ?>
  • Сохранить файл.

Устранение ошибки на стороне серверных скриптов

Также, причиной возникновения ошибки 500 Internal Server Error разработка и тестирование своих скриптов.

Справить с возникшей проблемой может помочь следующее решение:

  • Настройка прав доступа на сервере: не верная настройка прав доступа к папкам и файлам приводит к тому, что сервер выдает код ответа 500 Internal Server Error. Из-за отсутствия доступа к файлу или файлам, не удается запустить скрипт, поэтому возникает ошибка 500. Проверьте, корректно ли проставлены права доступа на папки и файлам, и если это не так, то обязательно выставите верные права доступа, и как следствие, ошибка 500 пропадёт, если в правах доступа заключалась проблема.
  • Превышено время ожидания: истекло время ожидания ответа сервера (PHP или другого скрипта). Так может происходить из-за того, что недоступен определенный ресурс или в коде были допущены ошибки, которые запускают бесконечный цикл.
  • Превышено время ожидания соединения с сервером: если сервер был сильно загружен или перезагружался или просто по тем или иным причинам было потеряно соединение, в таком случае сервер выдает ошибку 500 Internal Server Error. Возможно, если немного подождать, то ошибка исчезнет, так как сервер придет в нормальное свое рабочее состояние (как вариант, после перезагрузки).
  • Ошибки в файле .htaccess: ошибка 500 может появляться в случае, если не веные код был прописан в файле .htaccess.
  • Ошибки в скрипте: если ошибка возникает из-за скрипта, можно запросить подробную информацию об ошибке. В PHP можно включить режим вывода ошибок на экран или вывод в лог-файл. Необходимо прописать в запускающий скрипт PHP файл (как правило это index.php) директиву display_errors. По умолчанию вывод ошибок может быть скрыт, и вы можете данную директиву включить на тот период, пока будете разбираться с возникшей ошибкой 500 Internal Server Error.

Как исправить ошибку 500 на сайте?

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

Супер-крутыми знаниями программирования для исправления error 500 на сайте обладать не нужно, достаточно просто прочитать данный раздел статьи предельно внимательно.

Для этого мы рассмотрим 3 следующих способа:

  • Самостоятельно исправить ошибку 500 internal server error на сайте;
  • Найти фрилансера или обратиться в веб-студию для исправления ошибки 500;
  • Обратиться к хостинг-провайдеру за помощью (консультацией).

Один из этих способов вам точно поможет, а если нет — вы знаете, где меня искать:) Просто напишите мне в Twitter и я постараюсь помочь вам разобраться с этой ошибкой.

Самостоятельно исправить ошибку 500 на сайте

Если вы решили самостоятельно исправлять ошибку 500 на веб-сайте, то для этого в первую очередь посмотрите логи веб-сервера. Например, на моем хостинге установлена cPanel, в ней я могу посмотреть последние 300 ошибок сервера Apache в любое время дня и суток.

В связи с этим, если на вашем хостинге тоже установлена cPanel, то тогда перейдите в панель управления, затем найдите в ней раздел «Ошибки» и перейдите туда для просмотра логов веб-сервера Apache. Для ISP manager смотрите видео, опубликованное чуть выше.

Ну, а если error 500 связана с ошибками выполнения PHP-скриптов, то тогда в этом случае вам поможет файл error_log. Обычно данный файл располагается в одной директории с тем PHP-скриптом, при выполнении которого была допущена ошибка.

Сразу хочу отметить то, что у вас не получиться открыть файл error_log на хостинге, если его размер превысит 1 MB. В таком случае просто скачайте данный файл к себе на компьютер и затем откройте его с помощью встроенного блокнота или текстового редактора.

Внутри файла error_log вы обнаружите примерно следующую картину:

ПРИЧИНА ОШИБКИ: PHP Parse error: syntax error, unexprected ‘shoppmilano’ (T_STRING) in /home/shoppmil/public_html/w-content/themes/professional/inc/customizer.php on line 423.

— И как нам это понимать?

  • syntax error — это говорит о том, что ошибка синтаксическая.
  • /home/shoppmil/public_html/w-content/themes/professional/inc/customizer.php — это полный путь к файлу, в котором была вызвана данная ошибка.
  • on line 423 — это строка, в которой содержаться ошибка.

С помощью этих логов вы узнаете, где именно произошла внутренняя ошибка сервера, из-за которой лег весь сайт. К тому же, в данном файле также отображаются ошибки, связанные с файлом .htaccess и это в несколько раз сократит ваше время на их поиски.

Обратиться к хостинг-провайдеру за помощью

В том случае, если вы не найдете файл error_log и у вас не отображаются последние 300 ошибок веб-сервера Apache в панели управления хостингом, то тогда следует как можно скорее обратиться в тех. поддержку вашего хостинг-провайдера.

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

Еще я рекомендую вам попросить тех. поддержку скинуть вам логи, т. к. они вам понадобятся для самостоятельного исправления ошибки 500. Эти же логи вы сможете предоставить веб-разработчику и тогда ему не придется часами ломать голову.

Найти фрилансера для исправления ошибки 500

Допустим, у вас по каким-то причинам нет времени копаться в коде и разбираться с тем, чем именно была вызвана ошибка 500 internal server error. В таком случае можно обратиться к фрилансерам на какой-нибудь бирже, типа FL.ru, Kwork или Weblancer.

За 500 руб. ребята с любой биржи фриланса с огромным удовольствием исправят любые ошибки на вашем сайте — это я вам, как бывший фрилансер утверждаю. Тупо опубликуйте задание или обратитесь к ТОП’овому исполнителю и вам сделают все в лучшем виде.

Причины кода ошибки 500 internal server error

Сообщение об ошибки на сайте с HTTP-статусом 500, как мы уже знаем — связано с тем, что программное обеспечение сервера либо не работает, либо работает, но один или несколько его компонентов дают сбои в серверной части веб-приложения на клиентские запросы.

В связи с этим, в первую очередь нужно провести определенную диагностику как сайта, так и сервера для выявления истинной причины возникновения ошибки 500 internal server error.

Понятно, но я не программист, — как мне решить эту проблему?

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

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

#1. Неправильно настроенный файл .htaccess

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

Чтобы исправить ошибку 500 — откройте файл .htaccess и тупо закомментируйте весь код (Ctrl + A и Ctrl + ). Затем перейдите на сайт и посмотрите — пропала ошибка или нет. Если 500 ошибка сервера никуда не пропала, то тогда переходим к следующему пункту.

#2. Технические работы на веб-сервере

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

Просто напишите в техническую поддержку хостинга для уточнения данного вопроса и если они подтвердят свою причастность к данной ошибки — дождитесь пока они все исправят. В жизни всякое бывает, может они в этот самый момент отражают DDoS-атаку на сервер.

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

#3. Тайм-аут при получении внешнего ресурса

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

По этой причине следуют задать соответствующий в ответ на HTTP-запрос пользователя для вашего веб-сервера. Если для вас это сложно — обратитесь за помощью к фрилансерам или поищите ответы на форумах для веб-разработчиков.

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

#4. Тайм-аут при выполнении PHP-скриптов

Не исключено, что 500 ошибка на сайте связана с ограниченным лимитом выполнения PHP-скриптов и прерыванием их запуска в ответ на HTTP-запрос пользователя. По этой причине обязательно установите для в конфигурационном файле PHP.

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

Если вы используете какую-нибудь CMS-систему, типа WordPress или OpenCart, и данная ошибка связана именно с тайм-аутом при выполнении «тяжелых» PHP-скриптов, то следует либо сменить шаблон, либо самостоятельно оптимизировать проблемные участки кода.

#5. Устаревший кэш на стороне клиента

Очень редко случается, что внутренняя ошибка сервера связана с устаревшим кэшом на стороне клиента. Честно говоря, я сам не понимаю то, как это возможно, но тем не менее — это факт. Для решения данной проблемы знания веб-разработки совсем не требуются.

Просто нажмите Ctrl + Shift + Delete, после чего откроется новая вкладка в браузере, на которой вам нужно отметить определенные флажки для очистки кэша браузера и файлов cookie. Иногда это может сработать, хотя я не особо в это верю.

Если вы все равно не понимаете, как очистить кэш в браузере или вам просто по каким-то причинам лень это понимать — тогда просто зайдите на свой сайт с другого браузера и вполне возможно, что ошибка 500 internal server error исчезнет с вашего веб-приложения.

Ошибки в работе сайта со стороны клиента

400: Bad Request

Когда сервер не может распознать пользовательский запрос, он присваивает ему код 400. Чаще всего это происходит из-за неправильных настроек браузера.

Исправляется ошибка несколькими способами:

  • Если она вызвана повреждением файлов cookie, поможет очищение кэша и cookies.
  • Когда причина – во внутренней ошибке браузера, его достаточно переустановить или просто обновить.
  • При банальной опечатке (например в консольных командах wget или curl) проблема решается верным вводом запроса.

401: Unauthorized

Появляется при попытке войти на сайт или его отдельные страницы без действительного идентификатора и пароля. Речь идет о ресурсах, доступ к которым открывается после авторизации. Пользователь может допустить опечатки в логине или указать неверный пароль. Сервер отвечает отказом, пока учетные данные не будут написаны правильно.

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

403: Forbidden

Пользователю отказано в посещении ресурса, отдельной страницы или файла из-за отсутствия доступа.

Причин может быть несколько:

  • Права на открытие файла не предоставлены. Проверить, что это не ошибка, можно при помощи команды chmod.
  • Ограничение доступа конкретным адресам в файле .htaccess.
  • В запрашиваемой директории отсутствует индексный файл. Для исправления надо включить в конфигурации сервера листинг директорий.

404: Not Found

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

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

Причина ошибки 500 – неверно настроены права доступа

При помощи FTP-клиента (годен для этого FileZilla) нужно проверить права доступа к папкам и файлам на сервере. Сначала необходимо проверить, соответствуют ли настройки корректной работе на сервере. Проверьте настройки для каждого типа отдельно. Они должны соответствовать следующим значениям:

  • Значение для скриптов – 600.
  • Для файлов – 644.
  • Значение для папок – 755.

Настройка прав доступа

Для того, чтобы избежать различных ошибок (500 Internal Server Error) и обеспечить дополнительную безопасность – управлять глобальными настройками должен один человек – администратор. Не давайте кому-либо прав доступа к корневым папкам.

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

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

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

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

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

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

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

  • Нажмите клавишу F12 (способ актуален для большинства браузеров на Windows). Используйте сочетание клавиш Cmd+Opt+J, если используете Google Chrome на macOS. Или примените комбинацию Cmd+Opt+C в случае Safari на macOS (но перед этим включите «Меню разработки» в разделе «Настройки» -> «Продвинутые»). Открыть инструменты разработчика также можно, если кликнуть правой кнопкой мыши в любом месте веб-страницы и выбрать «Просмотреть код» в контекстном меню. 
  • Откройте вкладку «Сеть» (или «Network») и взгляните на число в поле «Статус». Код ответа об ошибке 500 — это соответствующая цифра.

Более детальную диагностику можно провести с помощью логов.

Простыми словами: лог — это журнал, в который записывается информация об ошибках, запросах к серверу, подключениях к серверу, действиях с файлами и т.д.

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

Ошибку 500 Internal Server Error довольно легко устранить

500 Internal Server Error — как исправить ? В большинстве случаев причины возникновения ошибки 500 легко исправляются. Проблема заключается в том, что без конкретной информации определение причины возникновения сбоя усложняется. Легче всего справиться с ошибкой, когда разработчик выяснит, что изменилось перед возникновением ошибки.

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

Данная публикация представляет собой перевод статьи « 500 Internal Server Error: What It Is And How To Fix It » , подготовленной дружной командой проекта Интернет-технологии.ру

В статье я опишу, что это за ошибка 500 Internal Server Error и как её исправить. После того, как я столкнулся с ней я понял, что это внутренняя ошибка сервера, которая может появляться по причине целого ряда неполадок на сайте. Появляющееся окно может быть разным по форме и описанию, это зависит от сервера, однако суть остается одной для всех. Если вы столкнулись с ошибкой 500 попробуйте зайти через некоторое время, возможно проблему уже решают. Если проблема остается длительное время, значит необходимо действовать самому.

Скриншот ошибки 500 Internal Server Error

Пошаговое исправление ошибки “Не могу создать директорию wp-content/uploads.”

Первым делом я проверил какое значение установлено в правах доступа к папке wp-content и вложенным в нее папкам и файлам. Оказалось, что там все хорошо и установлено значение 700 — разрешены запись, чтение и выполнение файлов внутри папки. Впрочем, чаще всего с правами доступа всегда все в порядке, в редких случаях могут быть выставлены какие-то ограничения.

Как изменить права доступа к папке wp-content?

Для не очень опытных пользователей поясню, что проверить права доступа к папке wp-content, и в случае необходимости изменить их, можно через файловый менеджер вашего хостинга. Открыв корневую папку своего WordPress сайта вы увидите среди прочих папку wp-content. Кликните по ней правой кнопкой мыши и посредством выпавшего контекстного меню перейдите в раздел свойств вашей папки.

Здесь стоит заметить, что в зависимости от того хостинга, на котором работает ваш сайт, раздел с правами доступа к папке может называться по разному. Так, на моем хостинге Beget, этот раздел называется Изменить атрибуты, а сами настройки атрибутов выглядят вот так:

Права доступа (атрибуты) для директории wp-content на примере хостинга Beget

Убедившись, что ошибка не связана с правами доступа, приступаем к проверке параметра upload_path глобальных настроек WordPress. Для того, чтобы попасть на страницу глобальных настроек вашего вордпресс сайта нужно авторизоваться под учетной записью администратора сайта, а затем в адресной строке браузера прописать следующий адрес:

https://ваш-сайт.ru/wp-admin/options.php

На открывшейся странице содержится внушительная масса различных параметров и полей, поэтому, чтобы долго не искать нужный нам параметр upload_path, воспользуйтесь поиском встроенным в браузер (сочетание клавиш CTRL + F).

В моем случае в поле этого параметра был прописан абсолютный путь к файлам вордпресс, который принадлежал другому хостингу. Как вы можете помнить, я сделал перенос сайта на другой домен и хостинг.

Далее, для устранения ошибки действуем следующим образом:

Очищаем поле параметра upload_path и сохраняем настройки. После этого необходимо проверить, заработала ли загрузка изображений в библиотеку медиафайлов или нет. Если не заработала, значит переходим к пункту 2

Обратите внимание: если у вас поле upload_path было изначально пустое и загрузка файлов в библиотеку медиафайлов вашего WordPress сайта все равно не работала, значит вам тоже следует проделать действия, описанные в пункте 2.

Если действия из пункта 1 вам не помогли, то прописываем в поле параметра upload_path правильный абсолютный путь к файлам Вордпресс (о том, как узнать абсолютный путь к папке с uploads написано ниже).

Как узнать абсолютный путь к папке с uploads

Уточнить абсолютный путь можно в поддержке вашего хостинга, а можно узнать самостоятельно, создав php файл со специальным кодом:

<?php
echo 'Путь к корневой папке: '.$_SERVER.'';
?>

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

https://ваш-сайт.ru/patch.php

Результатом выполнения скрипта будет веб-страница со следующим содержимым:

Путь к корневой папке: /home/XXXXX/YYYYY

Добавим к получившемуся результату /wp-content/uploads и получим в итоге такой путь:

Путь к корневой папке: /home/XXXXX/YYYYY/wp-content/uploads

Это и есть нужный нам абсолютный путь к папке uploads. Вставляем его в поле параметра upload_path сохраняем настройки и снова пробуем загрузить изображение. Теперь должно все заработать.

Вот таким не хитрым способом можно решить ошибку Не могу создать директорию wp-content/uploads/», которая могла возникнуть на вашем WordPress сайте при работе с Библиотекой медиафайлов.

Заключение

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

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

Наталья Кайдаавтор-переводчик статьи «How To Fix The 500 Internal Server Error On Your WordPress Site?»

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: