Оптимизируйте сценарии для снижения потребления памяти. Загружайте или выгружайте большие объемы данных партиями. Если оптимизация невозможна, перейдите на то, что обеспечивает достаточно памяти для комфортной работы сайта.
Что такое ошибка 500, когда возникает и как устранить
Код ошибки 500 генерируется, если неисправность не вызвана другой категорией ошибок (например, 502, 503). В основном это означает, что что-то произошло, но неясно, что именно. Сообщение об ошибке 500, которое также появляется по умолчанию на странице браузера, не содержит никакой информации о причине ошибки.
Без этой информации как можно найти и устранить ошибку? На практике в большинстве случаев причиной является неисправность одного из ключевых элементов сайта.
- Разрешения файлов и каталогов, .
- .htaccess,.
- По сценарию.
- CMS (движок веб-сайта).
Стоит сразу отметить, что ошибка возникает на стороне сервера, а не на стороне клиента. Браузер и операционная система пользователя не имеют к этому никакого отношения. Причину ошибки 500 нужно искать в конфигурации программного обеспечения сайта.
Чтобы определить причину этой ошибки, сделайте следующее
- Просмотрите журналы сервера — они дают хорошее представление о том, на каком этапе произошел сбой, но
- Если журналы не ясны, или если журналы не отображаются, рассмотрите все возможные варианты. Начните с той, которая кажется наиболее вероятной. Например, если файл .htaccess не был тронут до возникновения ошибки, но на сайте было установлено новое дополнение, следует начать с проверки последнего.
Некорректные права доступа
Каждый каталог и файл на сервере имеет определенную трехзначную кодировку для прав доступа. Например, 777 — такой доступ означает, что сторонние пользователи могут изменять этот файл или папку. Для обеспечения безопасности сервер блокирует файлы с такими широкими правами доступа. В результате веб-страница не будет отображаться, и будет выдана ошибка 500, поскольку сервер не предоставляет требуемое содержимое файла.
Рекомендуется устанавливать разрешения ниже 750 для папок и 640 для исполняемых файлов.
Если вы недавно создали новые каталоги на сервере или загрузили новые файлы, они могут иметь чрезмерные разрешения. Проверьте их и исправьте.
Как узнать, вызывает ли это ошибку 500?
Сначала проверьте, как ошибка отображается на экране вашего браузера. Если вы видите текст ‘Internal server error’, это может быть связано с .htaccess. Если скрипт или CMS не сработал, текст ошибки обычно выглядит как ‘HTTPERROR500’.
Затем попробуйте добавить символ в конец имени файла .htaccess. Например, переименуйте его в .htaccess2233. Сервер не будет использовать переименованный файл, и сайт будет работать без него. Перезагрузите страницу, на которой произошла ошибка. Если он исчезает, это значит, что в .htaccess.
Что могло произойти с файлом и как это исправить?
Самый простой способ устранить ошибку 500 в .htaccess — отменить последние изменения или сделать резервную копию файла. Если это невозможно или нежелательно, проверьте следующие варианты
- Наличие невидимых непрерывных разрывов (BOM). Если файл был изменен с помощью неподходящего редактора или кодировщика, такие символы могли быть добавлены в файл. Снова сохраните файл в кодировке UTF-8 и загрузите его на сервер.
- Символ # не находится в начале строки. Эта точка создается перед началом комментария. Некоторые люди пытаются поместить комментарии в конце строк в .htaccess, но последние версии Apache не поддерживают этот синтаксис и выдают сообщение об ошибке 500.
- Неправильная процедура выбора. В зависимости от версии программного обеспечения сервера, либо закомментируйте их полностью, либо попробуйте закомментировать опцию OptionsAll-Indexes в каталоге Options-Indexes и каталоге Options+SymLinksIfOwnerMatch +. Опция FollowSymLinks в каталоге Options+SymLinksIfOwnerMatch.
- Неправильные инструкции +ExecCGI, IfVersion, AddHandler, php_value, php_flag, MultiViews. если файл содержит что-либо из этого, удалите (или закомментируйте) их по одному и посмотрите, исчезнет ли ошибка Обратите внимание, что ошибка 500 — это не _значение_фрагмента, это ошибка 500.
Сбои в скриптах
Ошибка 500 здесь может возникнуть по двум основным причинам
- Устраните ошибки в конфигурации сервера (или обратитесь в службу технической поддержки, которая поможет вам в этом). Затем перезагрузите страницу, и вы увидите надпись с именем файла и конкретной строкой, вызвавшей ошибку.
- Проверьте, правильно ли был загружен файл скрипта через FTP и, более того, правильно ли он был загружен в режиме ASCII. Однако рекомендуется включить двоичный режим в некоторых FTP-программах, таких как FileZilla. Это гарантирует правильную передачу файлов и отсутствие искажений.
- Проверьте разрешения на файл сценария, которые должны быть 750 или 755.
Если это так, проверьте, достаточно ли оперативной памяти в счете, и проверьте журналы, чтобы узнать, как долго выполнялся скрипт. Чтобы исправить ошибку 500, вам может понадобиться оптимизировать скрипт для более экономного использования памяти или перейти на расширенный биллинг.
Затем попробуйте добавить символ в конец имени файла .htaccess. Например, переименуйте его в .htaccess2233. Сервер не будет использовать переименованный файл, и сайт будет работать без него. Перезагрузите страницу, на которой произошла ошибка. Если он исчезает, это значит, что в .htaccess.
Как исправить ошибку 500
Если запрос не удалось обработать из-за ошибки в файле сайта, веб-сервер возвращает страницу с кодом ответа 500.
Внешний вид ошибки 500 зависит от причины. Если возникла проблема со сценарием сайта, будет показана пустая страница, сообщение HTTP ERROR 500 или текст оператора PHP.
Если проблема в файле .htaccess, появится сообщение о внутренней ошибке сервера.
Часто ошибку 500 можно легко устранить без каких-либо знаний в области веб-разработки. Как это сделать, описано ниже.
Ошибки в файле .htaccess
Внутренние ошибки сервера возникают при наличии ошибки в файле .htaccess. Переименуйте файл .htaccess и проверьте правильность работы сайта. Если возможно, удалите недавно добавленные правила или восстановите старые файлы из резервной копии.
Пустая страница не обязательно является признаком ошибки 500. Поэтому сначала узнайте код ответа, который он открывает. Это можно сделать с помощью инструментов разработчика браузера.
Инструменты разработчика — это возможность узнать, как работает сайт. Вы можете проверить время ответа сервера, коды ответов и текст возникающих ошибок.
Нажмите Ctrl + Shift + I или воспользуйтесь меню браузера.
- Mozilla Firefox — «Веб-разработка» -> «Инструменты разработчика», и
- Google Chrome — «Дополнительные инструменты» → «Инструменты разработчика», и
- Opera — [Разработка] → [Инструменты разработчика].
Перейдите на вкладку [Сеть]. Ошибка 500 обозначается соответствующим номером в колонке [Статус].
Статус пустой страницы также может быть 200 (OK). В этом случае проверьте, есть ли содержимое в индексном файле сайта, и очистите кэш CMS. Если сайт функционировал правильно, он восстанавливается из резервной копии.
Вывод ошибок на сайт.
Отладка PHP по умолчанию отключена на хостинге. Чтобы просмотреть их текст, добавьте в файл .htaccess правило: php_value display_errors 1 и обновите страницу сайта.
Если текст не отображается, включите вывод ошибок через файл конфигурации CMS. Он находится в корневом каталоге сайта.
WordPress
Замените строку define(‘WP_DEBUG’, false); в файле wp-config.php на define(‘WP_DEBUG’, true),
Joomla
Измените переменные debug и error_reporting в файле configuration.php на: public $debug = ‘1’ и public $error_reporting = ‘maximum’,
1С-Битрикс
В конфигурационном файле по пути ~/public_html/bitrix/php_interface/dbconn.php замените значение переменных DBDebug и DBDebugToFile на: $DBDebug = true; и $DBDebugToFile = true;
Laravel
В файле .env измените APP_DEBUG=false на APP_DEBUG=true.
Алгоритм исправления этой ошибки можно найти в Интернете, набрав текст в любой поисковой системе. Если вы не можете продолжать работу сайта с помощью найденной информации, восстановите ее из резервной копии. Наши специалисты помогут вам с восстановлением. Для этого отправьте запрос по электронной почте из раздела «Поддержка» панели управления.
Журнал ошибок PHP
Иногда ошибка не появляется на странице или появляется периодически: ее трудно отследить. Чтобы прочитать содержимое этих ошибок, запишите их в файл под названием PHP error log. Интегрируйте его, добавив в .htaccess строку: php_value error_log /home/username/domains/domain.ru/php_errors.log и обновите страницу сайта.
Откройте файл журнала, созданный с помощью диспетчера файлов в панели управления. Включите опцию «Включить автоматическое обновление», чтобы просматривать ошибки в режиме реального времени.
Вы можете быстро вернуть сайт в рабочее состояние, восстановив его из резервной копии даты, когда ошибок не было. Если восстановление нежелательно, свяжитесь с разработчиком.
Очистите кэш браузера。 Если существует проблема с кэшированной версией просматриваемой страницы, могут возникнуть проблемы HTTP 500. Внутренние ошибки сервера редко вызываются проблемами с кэшированием, но я видел, как ошибка исчезала после очистки кэша. Это настолько простое и безобидное занятие, что вы можете попробовать его на первых порах.
Ошибка 500 Internal Server Error — устранение на стороне серверных скриптов
Еще одной причиной возникновения ошибки 500 Internal Server Error может быть разработка и тестирование собственных сценариев.
Чтобы справиться с такой ошибкой, попробуйте следующие решения:
- Установка разрешений на сервере : часто неправильно настроенные разрешения для файла или папки приводят к тому, что сервер выдает ошибку 500 Internal Server Error. Это происходит потому, что сервер не может выполнить сценарий. Выясните, какие разрешения должны быть установлены, и установите их соответствующим образом.
- Таймаут: возможно, у вас недостаточно времени для ожидания ответа от PHP или другого серверного скрипта. Это может быть связано с тем, что определенный ресурс недоступен или в коде была ошибка, вызвавшая бесконечный цикл.
- Превышение таймаута соединения с сервером: если сервер был занят, перезагружен или потерял соединение, сценарий может выдать ошибку 500 Internal Server Error. В следующий раз ошибки может не быть. Однако если ошибка возникла во время тестирования, велика вероятность, что с ней столкнутся и пользователи.
- Ошибки в файле .htaccess.
- Некоторые ошибки могут быть вызваны кодом в сценарии: Если ошибка возникла по вине скрипта, вы можете запросить подробную информацию об ошибке. Например, в PHP вы можете разрешить отображение ошибок на экране или в лог-файле, добавив директиву display_errors. По умолчанию среда выполнения может скрывать ошибки, но это не очень полезно для отладки программы.
Попросите помощи у системного администратора
В некоторых случаях разработчики не имеют полного контроля над сервером.
Если скрипт выполняется на стороннем сервере, полезным будет
- документацию по серверу и возможные причины ошибки 500. В зависимости от операционной системы и конфигурации оборудования эта ошибка может возникать по разным причинам.
- Попросите службу хостинга просмотреть журналы ошибок, чтобы системный администратор мог определить, был ли сервер занят или «не работал» в момент возникновения ошибки.