Страницу с кодом ответа 500 веб-сервер возвращает, когда не может обработать запрос из-за ошибок в файлах сайта.
Внешний вид ошибки 500 зависит от того, чем она вызвана. При неполадках в скриптах сайта отобразится пустая страница, сообщение HTTP ERROR 500 или текст обработчика PHP.
Если проблема в файле .htaccess — сообщение Internal Server Error.
Часто ошибку 500 можно легко устранить даже не имея знаний в области веб-разработки. О том, как это сделать, расскажем далее.
Ошибки в файле .htaccess
Сообщение Internal Server Error выводится, когда в файле .htaccess есть ошибки. Переименуйте файл .htaccess и проверьте корректность работы сайта. Если он доступен, удалите правила, которые были добавлены последними, или восстановите старый файл из резервной копии.
Ошибки в скриптах сайта
Пустая страница — не всегда признак ошибки 500. Поэтому в первую очередь узнайте код ответа, с которым она открывается. Это можно сделать при помощи инструментов разработчика в браузерах.
Инструменты разработчика — функция для исследования работы сайта. Она позволяет узнать время ответа сервера, код ответа, посмотреть текст возникших ошибок и многое другое.
Нажмите сочетание клавиш Ctrl+Shift+I или используйте меню браузера:
- Mozilla Firefox — «Веб-разработка» → «Инструменты разработчика»;
- Google Chrome — «Дополнительные инструменты» → «Инструменты разработчика»;
- Opera — «Разработка» → «Инструменты разработчика».
Перейдите во вкладку «Сеть (Network)». На ошибку 500 указывает соответствующее число в колонке «Статус».
Статус пустой страницы может быть и 200 (Ok). В таком случае проверьте, есть ли содержимое в индексном файле сайта, очистите кеш вашей CMS. Если ранее сайт работал корректно, восстановите его из резервной копии.
Вывод ошибок на сайте
Вывод ошибок PHP на хостинге по умолчанию выключен. Чтобы увидеть их текст, добавьте в файл .htaccess правило: php_value display_errors 1
и обновите страницу сайта.
Если текст не отобразился, включите вывод ошибок через конфигурационный файл CMS. Он расположен в корневой директории сайта.
WordPress
Замените в файле wp-config.php строку define(‘WP_DEBUG’, false);
на 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. Подключите его, добавив в .htaccess строку: php_value error_log /home/username/domains/domain.ru/php_errors.log
и обновите страницу сайта.
Откройте создавшийся файл журнала с помощью Файлового менеджера в Панели управления. Чтобы просматривать возникающие ошибки в реальном времени, отметьте опцию «Включить автообновление».
Быстро возобновить работу сайта можно, восстановив его из резервной копии за дату, когда ошибок не было. Если восстановление нежелательно, обратитесь к разработчику.
Для устранения некоторых ошибок не требуется специальных знаний. Рассмотрим самые распространенные.
Нехватка оперативной памяти
Ошибка с текстом Allowed memory size возникает из-за нехватки оперативной памяти для выполнения скрипта: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 81 bytes) in /home/username/domains/domain.ru/public_html/somescript.php
Чтобы исправить ее, увеличьте лимит оперативной памяти, добавив в файл .htaccess директиву:
php_value memory_limit 512M
Вместо «512» укажите необходимый объем памяти. Максимальное значение ограничивается тарифом.
Текст Out of memory означает, что достигнут лимит оперативной памяти по тарифному плану:
PHP Fatal error: Out of memory (allocated 39059456) (tried to allocate 262144 bytes) in /home/username/domains/domain.ru/public_html/somescript.php
Оптимизируйте работу скриптов, чтобы они потребляли меньше памяти. Объемную загрузку или выгрузку данных производите частями. Если оптимизацию произвести невозможно, измените тариф на тот, по которому предоставляется достаточно памяти для комфортной работы сайта.
Ошибки в CMS
При обновлении CMS случаются синтаксические ошибки:
PHP Parse error: syntax error, unexpected '[', expecting ')' in /home/username/domains/domain.ru/public_html/wp-content/plugins/wordpress-23-related-posts-plugin/config.php on line 130
Это происходит из-за того, что новые функции CMS не поддерживают устаревшие версии PHP. Чтобы исправить ошибку, измените версию PHP для сайта на более современную в разделе «Сайты» → «Веб-серверы».
Если предыдущая рекомендация не помогла, обратите внимание на путь до неработающего скрипта: там может быть указан каталог плагина или темы. Чтобы исправить ошибку, отключите их. Для этого переименуйте папку, в которой они расположены. После устранения ошибки авторизуйтесь в административной части сайта и измените тему или переустановите плагин.
Чтобы исправить большинство ошибок PHP, достаточно изучить их текст и принять меры, указанные в статье. Если вам не удается справиться с ней самостоятельно, обратитесь в службу поддержки.
Была ли эта инструкция полезной?
I receive 500 internal server error on my website. I think this is because of .htaccess file, but I don’t know what’s wrong with it.
Server: DirectAdmin, Linux-based
Contents of the .htaccess file is as the following:
# BEGIN All In One WP Security
#AIOWPS_BLOCK_WP_FILE_ACCESS_START
<files license.txt>
order allow,deny
deny from all
</files>
<files wp-config-sample.php>
order allow,deny
deny from all
</files>
<files readme.html>
order allow,deny
deny from all
</files>
#AIOWPS_BLOCK_WP_FILE_ACCESS_END
#AIOWPS_BASIC_HTACCESS_RULES_START
<files .htaccess>
order allow,deny
deny from all
</files>
ServerSignature Off
LimitRequestBody 10240000
<files wp-config.php>
order allow,deny
deny from all
</files>
#AIOWPS_BASIC_HTACCESS_RULES_END
#AIOWPS_PINGBACK_HTACCESS_RULES_START
<IfModule mod_alias.c>
RedirectMatch 403 /(.*)/xmlrpc.php$
</IfModule>
#AIOWPS_PINGBACK_HTACCESS_RULES_END
#AIOWPS_DISABLE_INDEX_VIEWS_START
Options All -Indexes
#AIOWPS_DISABLE_INDEX_VIEWS_END
#AIOWPS_DISABLE_TRACE_TRACK_START
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
#AIOWPS_DISABLE_TRACE_TRACK_END
#AIOWPS_FIVE_G_BLACKLIST_START
# 5G BLACKLIST/FIREWALL (2013)
# @ http://perishablepress.com/5g-blacklist-2013/
# 5G:[QUERY STRINGS]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ("|%22).*(<|>|%3) [NC,OR]
RewriteCond %{QUERY_STRING} (javascript:).*(;) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3) [NC,OR]
RewriteCond %{QUERY_STRING} (\|../|`|='$|=%27$) [NC,OR]
RewriteCond %{QUERY_STRING} (;|'|"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if) [NC,OR]
RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig) [NC,OR]
RewriteCond %{QUERY_STRING} (boot.ini|echo.*kae|etc/passwd) [NC,OR]
RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|[|%) [NC]
RewriteRule .* - [F]
</IfModule>
# 5G:[USER AGENTS]
<IfModule mod_setenvif.c>
# SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) keep_out
<limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=keep_out
</limit>
</IfModule>
# 5G:[REQUEST STRINGS]
<IfModule mod_alias.c>
RedirectMatch 403 (https?|ftp|php)://
RedirectMatch 403 /(https?|ima|ucp)/
RedirectMatch 403 /(Permanent|Better)$
RedirectMatch 403 (=\'|=\%27|/\'/?|).css()$
RedirectMatch 403 (,|)+|/,/|{0}|(/(|...|+++|||\"\")
RedirectMatch 403 .(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
RedirectMatch 403 /(contac|fpw|install|pingserver|register).php$
RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107_)
RedirectMatch 403 (eval(|_vti_|(null)|echo.*kae|config.xml)
RedirectMatch 403 .well-known/host-meta
RedirectMatch 403 /function.array-rand
RedirectMatch 403 );$(this).html(
RedirectMatch 403 proc/self/environ
RedirectMatch 403 msnbot.htm)._
RedirectMatch 403 /ref.outcontrol
RedirectMatch 403 com_cropimage
RedirectMatch 403 indonesia.htm
RedirectMatch 403 {$itemURL}
RedirectMatch 403 function()
RedirectMatch 403 labels.rdf
RedirectMatch 403 /playing.php
RedirectMatch 403 muieblackcat
</IfModule>
# 5G:[REQUEST METHOD]
<ifModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</IfModule>
# 5G:[BAD IPS]
<limit GET POST PUT>
Order Allow,Deny
Allow from all
# uncomment/edit/repeat next line to block IPs
# Deny from 123.456.789
</limit>
#AIOWPS_FIVE_G_BLACKLIST_END
#AIOWPS_BLOCK_SPAMBOTS_START
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^(.*)?wp-comments-post.php(.*)$
RewriteCond %{HTTP_REFERER} !^http://(.*)?.spna.co.ir [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule .* http://127.0.0.1 [L]
</IfModule>
#AIOWPS_BLOCK_SPAMBOTS_END
# END All In One WP Security
# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json
<IfModule mod_mime.c>
# DEFLATE by extension
AddOutputFilter DEFLATE js css htm html xml
</IfModule>
</IfModule>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:_gzip]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index.html%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
And here’s what the Apache Error Log says:
[Thu Jan 16 00:19:08 2014] [alert] [client 157.55.35.85] /home/sapna/domains/spna.co.ir/public_html/.htaccess: Option All not allowed here
I would be grateful if you help me find out what causes the 500 internal server error.
Thanks.
Протокол HTTP иногда показывает статус — 500. Это означает неисправность в конфигурации сервера. Фактически она говорит об отказе системного компонента, но на деле проблема куда менее глобальна.
Появление ошибки 500 Internal Server Error говорит только о том, что сервер работает в нормальном режиме, однако некоторые запросы не обрабатываются должным образом.
Такая ошибка может появиться на любом интернет ресурсе без исключений. Администраторы заранее для неё прописывают конфигурацию и альтернативные действия в случае ее появления.
Если вы арендуете VPS, а надпись возникает слишком часто, то это явная причина для смены сервера на более мощный. Исправить же положение на текущем, могут программисты. В этом случае нужно изменить и усовершенствовать код внутренних страниц сайта.
Первое: неправильно распределены права доступа
Для каждого домена используются скрипты, работающие в штатном режиме.
Неполадка с номером 500 может случиться, если на script установлены не те права доступа.
Последствия: пока неполадка не устранена, теоретически злоумышленники могу вносить изменения в файл с правами 777.
Как исправить: установить нужные права. Если для папок рекомендуемое значение — 755, то для скриптов 644, а не 777.
Желательно, чтобы все права на файлы в домене были заданы от одного юзера.
Второе: скрипт работает слишком долго
Помимо того, что для работы каждого кода отводится определенное время работы от PHP, такое же ограничение накладывает и сам сервер.
Если с точки зрения php всё соблюдено, то сервер может сообщать об ошибке, — 500 Internal Server Error.
Последствия: если сервер не получает ответа, то он считает работу незаконченной или потенциально не способной завершиться, поэтому работа плагина или script будет прекращена.
Как исправить: чтобы неполадка не появлялась, необходимо найти и отладить код. Чаще всего медленный участок кода заметен сразу при тестировании. Техподдержка хостинга не обязана помогать вам в поиске, однако вы можете обратится за помощью к автору софта или движка сайта.
Третье: htaccess
У скрытого файла с таким названием строгий синтаксис, нарушение которого автоматически ведет к появлению ошибки. Бывает так, что вы вписали директиву, оформили её правильно с точки зрения синтаксиса, но она не поддерживается.
Последствия: страница не будет работать.
Как исправить: находим в корневом участке домена файл htaccess и исправляем внутри синтаксис. Если после этого сайт не будет работать по прежнему, то рекомендуется загрузить новый «чистый» файл и использовать его в качестве замены текущего. Еще можно открыть файл Error.log. В нём легко найти ошибочную директиву и исправить.
Четвертое: отсутствие нужного количества памяти
Если ваш скрипт использует определенное количество информации, то сервер сразу рассчитывает для него некий объем памяти. В случае, если скрипт захочет больше памяти, а ее нет, то появляется 500 error.
Последствия: до увеличения объема потребления памяти, скрипт так и будет выключать страницу.
Как исправить: поскольку Error появляется в качестве защиты, то необходимо проверить код на наличие фрагментов, которые могут быть чрезмерно требовательными или же просто увеличить количество оперативной памяти на сервере.
Инструкция для пользователей и владельцев ресурса.
Что означает код ошибки 500
Ошибка 500 (Internal Server Error) — это внутренняя проблема сервера. Она возникает, когда браузер или другой клиент отправляет серверу запрос, а тот не может его обработать.
Одна из самых частых причин появления ошибки 500 — это неправильный синтаксис файла .htaccess. Кроме того, она порой возникает после загрузки на сервер неверных CGI‑скриптов или установки некорректных прав доступа.
То есть в ошибке 500, как и в других ответах с кодом, который начинается на цифру 5, виноваты разработчики или администраторы сервера. Но никак не пользователи.
Что делать пользователю при ошибке 500
Если вы увидели ошибку 500 на чужом сайте, есть два варианта.
Подождать
Если у вас нет доступа к этому ресурсу, вы не сможете отредактировать файл, изменить настройки или выполнить другие подобные действия. Поэтому стоит подождать, пока администратор исправит ошибку, и зайти на сайт позднее.
Сообщить администратору ресурса
Не все владельцы сайтов круглосуточно мониторят логи и читают сообщения об ошибках. Вполне возможно, что администратор просто не в курсе, что сайт перестал работать.
В таком случае вы можете помочь. Попробуйте найти контактную информацию и связаться с владельцем ресурса, чтобы сообщить о проблеме. Если на самом сайте из‑за ошибки 500 вы никаких полезных данных не видите, найдите сохранённую копию страницы в поисковиках или в архиве интернета.
Что при ошибке 500 пользователю делать бессмысленно
Так как проблема связана с сервером, то нет резона что‑то предпринимать со стороны клиента. Поэтому не пытайтесь:
- перезагружать компьютер;
- менять браузер;
- переустанавливать ПО;
- перезагружать роутер.
Что делать администратору при ошибке 500
Конечно, многое зависит от специфики вашего ресурса: на каком движке он работает, на каком хостинге располагается и что вы меняли на сайте в последнее время. Но всё же универсальные рекомендации в большинстве случаев помогают избавиться от ошибки 500.
Советуем последовательно попробовать каждый из вариантов, если он, конечно, актуален для вашего ресурса.
Проверить синтаксис файла .htaccess
Если вы используете веб‑сервер Apache, то в корне вашего сайта или во вложенных папках, скорее всего, есть файл .htaccess. В нём хранятся серверные настройки.
В большинстве случаев ресурс будет работать и без этого файла. Попробуйте переименовать .htaccess, например, в .htaccess_, а затем снова зайти на главную страницу сайта.
Если ошибка 500 исчезла, значит, дело именно в .htaccess. Проверьте синтаксис этого файла — возможно, при редактировании вы где‑то вставили лишний символ или допустили опечатку. Если есть предыдущая версия настроек, верните её и посмотрите, появляется ли ошибка 500.
Иногда помогает закомментировать строку Options в .htaccess — вставить # в самом её начале. Если это не сработало, закомментируйте и другие строки, а затем последовательно убирайте #, чтобы найти проблемное место в файле.
Если вы отредактировали .htaccess, проверьте, сохранились ли изменения. Бывает, что хостер выставляет на этот файл права, которые запрещают редактирование. В таком случае попробуйте скачать .htaccess к себе на компьютер, изменить файл в любом текстовом редакторе и залить на сайт вместо старой версии.
Посмотреть лог ошибок
Если вы недавно проводили какие‑то работы на сайте, возможно, это привело к ошибке 500. Откройте логи и посмотрите, нет ли там сообщений о проблемах. Если есть, проанализируйте их и попробуйте отменить последние корректировки.
Хостеры обычно указывают, где по умолчанию хранятся логи и как получить к ним доступ из панели управления. Эти сведения можно найти в разделах помощи или FAQ (frequently asked questions — часто задаваемые вопросы) на сайте хостинга.
Выставить права для CGI‑скриптов
Если вы используете CGI‑скрипты, то сами файлы с ними и папки, в которых они лежат, должны иметь право доступа 0755 (drwxr‑xr‑x). Такая комбинация разрешает запись в них только для владельца. Остальные пользователи могут лишь читать эти файлы и запускать их.
Если у вас установлены другие права доступа, это может приводить к ошибке 500.
Проверить содержимое CGI‑скриптов
Корректные CGI‑скрипты должны иметь окончания строк в формате Unix (n), а не в формате Windows (rn). Чтобы сохранить правильный вариант, загружать код на большинство хостингов нужно по FTP в режиме ASCII. Если вы не знаете, какие настройки использовали, перезалейте скрипты и посмотрите, не исчезла ли ошибка 500.
Также CGI‑программы могут формировать неправильные HTTP‑заголовки ответа. В этом случае вы, скорее всего, увидите ошибки в логах.
Удалить или отключить недавно установленные плагины или компоненты
Бывает, что отдельные компоненты сайта или плагины конфликтуют между собой. Это также приводит к ошибке 500 и другим проблемам на стороне сервера.
Если вы недавно устанавливали модули либо обновляли их, попробуйте отключить эти элементы в панели администрирования. Возможно, после этого на сайте возникнут другие ошибки. Но если ответ 500 больше не приходит, дело как раз в конфликте компонентов или плагинов.
Оптимизировать скрипты
Если скрипты выполняются долго или для них не хватает ресурсов, попробуйте пересмотреть их содержимое. Возможно, код нуждается в оптимизации, чтобы он потреблял меньше процессорного времени и оперативной памяти.
Особенно часто скриптам не хватает ресурсов, если вы используете виртуальный хостинг. Там количество памяти жёстко ограничено, чтобы у всех аккаунтов в рамках одного физического сервера были равные возможности.
Попробуйте разбить скрипт на блоки и оценить эффективность работы каждого из них. Если в коде много внешних вызовов или потребление памяти стабильно растёт вплоть до установленного лимита, с этим точно стоит что‑то сделать.
Увеличить объём оперативной памяти сервера
Бывает, что даже после оптимизации скриптов они всё равно потребляют слишком много памяти. В этом случае придётся перейти на более дорогой пакет обслуживания на хостинге или, если предоставляется такая возможность, увеличить непосредственно выделение памяти. И не переплачивать за другие ресурсы, которые вам не нужны.
Попросить помощи
Обратитесь в службу поддержки хостера или на профильный форум. Поищите похожие ошибки на Stack Overflow — если там нет подходящей темы, создайте новую. Опишите ситуацию как можно более детально и будьте готовы пробовать различные варианты, которые вам предложат в комментариях.
Правда, порой ответов приходится ждать долго. Поэтому имеет смысл зайти в похожие темы и попросить помощи там.
Наконец, можно зарегистрироваться на сайтах для фрилансеров в качестве заказчика. Специалисты помогут вам решить проблему, пусть и не бесплатно.
Читайте также 💿⚙️💻
- Что делать, если тормозит браузер
- Как исправить ошибку CPU Fan Error при загрузке компьютера
- Что делать, если DNS-сервер не отвечает
- Что означает 404 Not Found и другие ошибки веб-страниц
- Что делать, если пропал интернет на Windows
В некоторых случаях, при попытке перейти на нужный интернет-ресурс, браузер выдает системное сообщение (статус) с кодом «500», о котором свидетельствует надпись «500 Internal Server Error» («500 внутренняя ошибка сервера»).
Код ошибки означает внутренние проблемы с сервером, которые необходимо диагностировать. Произошел сбой работы или нарушена конфигурация системы.
В случае подобной ошибки не обязательно сразу писать в техническую поддержку. Можно попробовать решить эту проблему самостоятельно.
Внутренняя ошибка сервера не всегда свидетельствует о сбое сервера, поскольку указывает на результат, к которому могут привести разные причины.
- Неверные права на объекты файловой системы
- Ошибочный код или неподдерживаемые директивы файла .htaccess
- Долгое выполнение скриптов
- Ошибка в коде CGI-скрипта
- Превышение лимита памяти
- Некорректная работа CMS
Как диагностировать ошибку 500
Для диагностики внутренней ошибки сервера с кодом 500 необходимо проверить содержимое файла «error.log», находящийся в корне сайта или в каком-либо другом месте, которое зависит от настроек сервера.
Способ доступа к файлу зависит от того, находится ли сайт на веб-хостинге или размещён на выделенном/физическом сервере.
- На веб-хостинге можно найти «error.log» в панели управления веб-хостингом. Например, в ISPmanager файл с ошибками расположен в разделе «WWW» → «Журнал».
- На VPS файл «error.log» можно посмотреть через консоль, либо предварительно скачать его на локальный компьютер при помощи клиента FileZilla.
Этот метод позволяет выяснить причину возникновения ошибки и за короткий промежуток времени устранить ее. После проведения диагностики можно воспользоваться одним из нижеописанных способов решения проблемы.
Права доступа к директориям и файлам
Отсутствие необходимых прав доступа к объектам файловой системы (директориям и файлам) довольно часто приводит к ошибке со статусом «500». При переносе сайта на другой хостинг или изменении его структуры (добавлении новых элементов) пользователь забывает изменить права доступа.
Решение № 1 — изменение прав
Для доступа к файловой системе сервера можно использовать бесплатный клиент FileZilla. Его необходимо установить, а затем запустить.
Алгоритм изменения атрибута файла (папки)
- Выполнить вход в корневую директорию сервера, введя параметры аутентификации — IP-адрес сервера, логин пользователя, пароль, а также порт (если необходимо).
- Нажать на кнопку «Быстрое соединение». Слева отобразится список объектов файловой системы локального компьютера, а справа — файлы и директории сервера.
- Следующий шаг, о котором часто забывают при загрузке сайта на хостинг, — активация пункта меню для отображения скрытых файлов («Сервер → Принудительно отображать скрытые файлы»).
- Загрузить необходимые файлы и папки на сервер посредством перетаскивания или используя контекстное меню «Загрузить на сервер».
- После загрузки перейти на правую панель, выделить интересующие объекты и через контекстное меню исправить соответствующие права доступа.
Рекомендуемые числовые значения для файлов — «644» и директорий — «755». Необходимо пересматривать и изменять права отдельно для каждого объекта файловой системы. Этот подход позволит избежать ошибок.
Если изменение прав доступа не привело к положительному результату, а при открытии сайта снова появляется ошибка 500, то следует попробовать другой способ решения проблемы.
Решение № 2 — перезагрузка сервера
При размещении ресурса на базе физического или виртуального выделенного сервера (VPS) может иногда возникать ошибка 500. Если страница временно недоступна и браузер выдает ошибку с кодом «500», а изменения прав доступа были испробованы, то нужно просто перезагрузить сервер.
Некорректный .htaccess
Для файла .htaccess существует определенный синтаксис, который нельзя нарушать. Если в нем неверно указаны директивы, то при обращении к сайту будет возникать ошибка «500». Кроме того, не все директивы поддерживаются на хостинге.
Решение № 1 — исправление кода
Для определения причины ошибки «500», связанного с некорректным файлом .htaccess, последний необходимо сохранить в другом месте, а исходник удалить. Если сайт заработал, то в сохраненном файле .htaccess следует искать неверный код.
Для поиска существует специальный алгоритм последовательного запуска директив, содержащихся в файле. Его нужно скачать на локальный компьютер, а затем открыть в текстовом редакторе.
Методика выявления неверного кода
- Закомментировать все строки при помощи символа решетки «#».
- Убрать «#» с первой строки.
- Сохранить изменения и загрузить нужные файлы на сервер через перетаскивание или с помощью функции «Загрузить на сервер» в контекстном меню. Процедура аналогична тому, как это делается в описанном выше случае с изменением атрибута файла.
- Проверить web-приложение (сайт).
- При отсутствии сообщения с кодом «500» нужно выполнить пункт «2» для других строк.
- Если возникла ошибка, то требуется проверить правильность написания директивы и ее поддержку хостингом.
Вышеописанного алгоритма достаточно для выявления неверного кода. Однако бывают ситуации, при которых код, на первый взгляд, написан верно, а директивы не поддерживаются хостингом. Тогда нужно попробывать второй вариант решения проблемы.
Решение № 2 — замена символов
Замена символов — распространенная ошибка при написании директив самостоятельно или копировании частей .htaccess c недостоверных источников. В коде директив присутствуют русские символы, которые очень сложно отличить от английских. Процедуру следует делать в специальных редакторах или через сервис антиплагиата «text.ru». Последний позволяет выявлять символы замены в массиве текста.
Алгоритм нахождения
- Запустить сервис проверки уникальности текста «text.ru».
- Скачать .htaccess на локальный компьютер.
- Сделать его копию и отредактировать ее, оставив только английские символы.
- Скопировать содержимое файла и вставить в поле для текста.
- Нажать на кнопку «Проверить уникальность» и дождаться результатов проверки.
- Исправить символ в исходнике.
- Сохранить файл и закачать его на сервер.
- Выполнить переход на сайт.
Долгое выполнение скриптов
В настройках PHP выставляется ограничение времени, которое дается скрипту на его выполнение. Многие об этом забывают, выставляя только параметр в файле «php.ini», находящийся в папке web-сервера Apache.
Решение № 1 — оптимизация PHP-скрипта
Чтобы оптимизировать PHP-скрипт, необходимо его переписать без лишнего кода. В интернете существует несколько сервисов для выявления избыточного кода.
Эта задача под силу опытному программисту. Новичку рекомендуется работать со скриптом, тестируя его на локальном сервере, а затем загрузить на хостинг.
Решение № 2 — увеличение времени обработки
Клиенту, пользующемуся услугой VPS, следует увеличить время ожидания сервера. Для этого нужно в «php.ini» найти параметр «set_time_limit» и установить его значение как «0», т. е. set_time_limit = 0.
Если используется веб-хостинг, то выполнить эту операцию не получится. В этом случае необходимо связаться с технической поддержкой.
Ошибка в коде CGI-скрипта
Скрипт CGI-типа используется для создания интерактивных страниц, контент которых зависит от действий пользователя. Довольно часто при неверной работе со скриптами этого типа на сайте возникает внутренняя ошибка сервера с кодом «500».
Решение № 1 — проверка формата окончания строк
Для проверки символа, содержащегося в конце каждой строки, используется специальный редактор (например, Notepad++ или любой другой с поддержкой отображения символов табуляции).
- Если сервер работает под управлением Unix-систем, то окончание каждой строки должно соответствовать символу «n».
- При использовании Windows-платформы — «rn».
Решение № 2 — установка прав доступа
Одной из причин неправильной работы CGI-скриптов является некорректное разрешение прав доступа. Для директории, в которой хранятся CGI-файлы, должны стоять права с числовым значением «755».
Решение № 3 — неверные HTTP-заголовки
В некоторых случаях ошибка возникает из-за некорректных HTTP-заголовков. Для ее диагностики следует проверить файл «error.log».
Превышение лимита выделенной памяти
Некоторые хостинг-компании, чтобы избежать перегрузки сервера, устанавливают определенный лимит памяти, используемой скриптами. В результате превышения этого ограничения возникает внутренняя ошибка сервера с кодом состояния «500».
Решение № 1 — проверка PHP-скриптов
Чтобы проверить PHP-скрипты, следует скачать на локальный компьютер исходник сайта, а затем протестировать его на работоспособность.
Затем требуется проверить описание функций (структуру и код) и включить опцию показа ошибок в «php.ini».
Опции для тестирования
- error_reporting = E_ALL
- display_errors = On
- display_startup_errors = On
В файле конфигурации нужно указать вышеописанные параметры без точек.
Если проблем в файле нет, а сообщение об ошибке «500» выводится на экране, необходимо перейти ко второму способу решения проблемы.
Решение № 2 — изменение настроек
Настройка лимита памяти выставляется в файле конфигурации «php.ini». За этот параметр отвечает опция «memory_limit».
При использовании VPS она устанавливается экспериментальным путем. После каждого изменения файл загружается на сервер, а затем тестируется работа сайта. Однако нужно помнить об ограничении использования памяти со стороны поставщика услуги.
Решение № 3 — связаться с технической поддержкой
Если ошибка «500» не исчезает при правильной работе скрипта и верных настройках, то нужно связаться с технической поддержкой. Как правило, они помогают исправить проблему.
Некорректная работа CMS
Причиной появления ошибки «500» могут стать неверные настройки CMS. Наиболее часто используются WordPress и Joomla. Следовательно, на их примере и нужно разобрать причины возникновения проблемы, а также решения по ее устранению.
Ошибка «500» в WordPress
При работе сайта на движке WordPress методика диагностики появления ошибки с кодом «500» немного отличается от остальных CMS. Проблема может быть связана с .htaccess, установленной темой, плагином или ядром WordPress.
Решение № 1 — файл .htaccess
Файл используется при изменении структуры ссылок и работе плагинов. Кроме того, в него могут вносить изменения ядро CMS, темы и плагины.
Выполнение диагностики
- Скопировать .htaccess на диск, а затем удалить его на сервере.
- Обновить страницу.
- Если сайт заработал, то нужно искать причину в файле.
- Если при обновлении страницы ошибка не исчезнет, то рекомендуется изменить атрибуты файла .htaccess. Для этого нужно запретить запись в файл, задав в правах доступа числовое значение «644».
Последний пункт влияет на активацию плагинов. Его рекомендуется рассматривать как временную меру.
Решение № 2 — смена текущей темы
Для устранения ошибки «500» рекомендуется поменять тему на другую, а затем обновить страницу. Если сайт заработал, то причина в ней. В противном случае нужно перейти к третьему варианту решения проблемы.
Решение № 3 — перебор плагинов
При расширении функциональности сайта пользователи используют соответствующие плагины, которые могут стать причиной внутренней ошибки сервера. Для диагностики неработающего компонента нужно последовательно деактивировать каждый из плагинов.
Порядок деактивации плагина
- Выбрать плагин (стрелка № 1).
- В выпадающем списке указать опцию «Деактивировать» (стрелка № 2).
- Нажать на кнопку «Применить» (стрелка № 3).
- Обновить веб-страницу.
- Перебор плагинов продолжать до возобновления работы интернет-ресурса.
Если деактивация плагинов не привела к положительному эффекту, и сайт по-прежнему не работает, то нужно перейти к четвертому методу.
Решение № 4 — модификация конфигурационного файла
Устранить проблему внутренней ошибки сервера поможет увеличение объема памяти.
Алгоритм модификации
- В корневой директории хостинга необходимо найти файл «wp.config.php».
- Открыть его в редакторе.
- Перейти в конец файла.
- Добавить код «define(‘WP_MEMORY_LIMIT’, ’64M’)».
- Сохранить и перезагрузить страницу.
Решение № 5 — обновление CMS
Если ни один из методов не помог, то причина заключается в ядре движка CMS. Для устранения ошибки его нужно обновить до последней версии или переустановить.
Ошибка «500» в CMS Joomla
Ошибка с кодом «500» иногда возникает при попытке зайти в административную панель CMS Joomla. При этом сайт и все его функции работают корректно.
Ошибку нужно искать самостоятельно, перебирая каждый из вариантов. В файле «error.php», который расположен в директории «logs», находится описание всех проблем при работе с CMS.
Решение № 1 — установка прав на «logs»
Чтобы устранить проблему, нужно установить права доступа на папки «logs» и «tmp», которые должны соответствовать числовому значению «777».
Решение № 2 — корректность путей к директориям «logs» и «tmp»
Пути к директориям хранятся в файле «configuration.php». Необходимо проверить их правильность, указав при необходимости полные пути.
Решение № 3 — проверка .htaccess
При ошибке «500» в административной панели нужно открыть файл .htaccess» и поочередно комментировать строки. После каждого изменения файл нужно сохранять и проверять работоспособность админ-панели.
Если, после реализации предложенных методов исправления ошибки «500», сайт на хостинге по-прежнему не работает, необходимо обращаться к техподдержке хостинг-провайдера.
Недавно ко мне обратились из компании, занимающейся созданием сайтов, за консультацией. Были жалобы на нестабильную работу сайта. Нестабильность заключалась в том, что при сохранении публикации сайт вешался. Решение проблемы, когда возникает ошибка 500, я напишу далее. Я представлю как универсальные методы решения проблемы, которые помогут владельцам сайтов с любыми системами управления, так и направленные на решение проблемы пользователей WordPress.
Почему возникает ошибка 500(Internal Server Error)?
- Проблема в файле .htaccess;
- Некорректная работа с CGI скриптами;
- Нехватка памяти;
- Нехватка времени выполнения скрипта;
- Некорректная работа плагинов;
- Повреждение файлов.
Решение проблемы с файлом .htaccess:
Самой распространенной проблемой возникновения ошибки 500(Внутренняя ошибка сервера) является наличие в файле .htaccess команд, которые не поддерживаются сервером, либо просто неверный синтаксис команд.
Решение проблемы некорректной работа с CGI скриптами:
- Скрипты формируют неверные заголовки и необходимо смотреть логи, которые доступны из панели управления хостингом в разделе «Статистика»;
- Скрипты необходимо загружать на сервер по FTP в режиме ASCII, чтобы окончания строк в скриптах были в формате UNIX — n, а не в формате Windows — nr;
- Скрипты и папки должны быть доступны для записи только владельцу, то есть необходимо выставить права — 0755 (drwxr-xr-x).
Решение проблемы нехватки памяти:
Иногда проблема может возникать, если вы превышаете лимит выделенной памяти(PHP memory limit).
Если у вас возникает ошибка 500 при переходе в админку, при загрузке изображения или при публикации записи, то скорее всего вам поможет увеличение лимита памяти доступной PHP. Это можно сделать отредактировав существующий файл php.ini(посмотреть где он находится можно с помощью функции phpinfo(), строка — Loaded Configuration File), либо создав свой файл в корне сайта(для пользователей WordPress в wp-admin).
В php.ini необходимо написать / исправить строку: ;
memory = 64MB
Владельцы WordPress могут поступить более удобным для них образом — открыть файл wp-config.php, который лежит в корне сайта, и добавить туда следующую строку:
define('WP_MEMORY_LIMIT', '64M');
В действительности, решение проблемы таким образом скорее всего временное, так как какой-то процесс забивает память и в будущем это может произойти снова. Поэтому я рекомендую провести анализа логов, чтобы понять, из-за чего именно возникает ошибка 500.
Решение проблемы нехватки времени выполнения скрипта:
Так же, как в случае с памятью, у вас может возникнуть ситуация, когда скрипт просто не успел отработать за то время, которое ему для этого отводится. По умолчанию время выполнения скрипта ограничивается 30-ю секундами. Способы увеличения лимита далее.
Аналогично предыдущему методу работаем с php.ini:
max_execution_time = 60
Использование функции PHP — можно написать следующий код вначале какого-либо PHP файла, который запускается при возникновении проблемы(например в index.php):
ini_set( 'max_execution_time', 60 ); // 60 секунд
Работа с .htaccess:
php_value max_execution_time 60
Пользователи WordPress могут использовать плагин — WP Maximum Execution Time Exceeded.
Решение проблемы с помощью отключения плагинов:
Бывает так, что ошибка 500 возникает из-за того, что в самом плагине / модуле существует какая-либо ошибка, чаще логическая, которая приводит к негативным последствиям. Выявить «испорченный» плагин можно таким способом:
- Отключите все плагины;
- Включите первый плагин, который до этого работал вместе со всеми;
- Производите действия, которые ранее приводили к ошибке;
- Если ошибка не возникает, отключайте этот плагин и включайте следующий и т.д. пока не выявите «брак».
Если вы пользователь WordpPress и не можете зайти в админку, так как возникает ошибка 500, зайдите на сервер по FTP и переименуйте папку wp-content/plugins, в этом случае плагины автоматически отключатся, когда вы в следующий раз обратитесь к админке и если проблема была в каком-то из них, то вы войдете в админку. Далее надо будет обратно переименовать папку plugins и работать по вышеуказанной схеме.
Решение проблемы с повреждением файлов:
Если ни один из перечисленных способов до сих пор не помог решить проблему, попробуйте перезалить дистрибутив системы. Если речь идет о WordPress, то скачайте архив, распакуйте его и перебросьте файлы на сервер, либо залейте на сервер архив и распакуйте его там с заменой файлов. Вероятно какой-то из файлов системы мог быть поврежден.
Если после этой процедуры все заработает, то стоит задуматься о том, каким образом файл системы мог быть поврежден.
Что делать, если ничего не помогло?
Если ничего из вышеперечисленного не помогло, это значит, что вам все же придется либо самому, либо с помощью техподдержки хостинга анализировать логи и искать проблему более тщательно. Либо можно обратиться за помощью к профессионалам.
Post Views: 1 286
В статье мы расскажем, как исправить ошибку (код состояния) 500 со стороны пользователя и администратора сайта, а также подробно разберём, что такое ошибка запроса 500.
Что такое внутренняя ошибка сервера 500
Код ошибки 5хх говорит о том, что браузер отправил запрос корректно, но сервер не смог его обработать. Что значит ошибка 500? Это проблема сервера, причину которой он не может распознать.
Сообщение об ошибке сопровождается описанием. Самые популярные варианты:
- Внутренняя ошибка сервера 500,
- Ошибка 500 Internal Server Error,
- Временная ошибка (500),
- Внутренняя ошибка сервера,
- 500 ошибка сервера,
- Внутренняя ошибка HTTP 500,
- Произошла непредвиденная ошибка,
- Ошибка 500,
- HTTP status 500 internal server error (перевод ― HTTP статус 500 внутренняя ошибка сервера).
Дизайн и описание ошибки 500 может быть любым, так как каждый владелец сайта может создать свою версию страницы. Например, так выглядит страница с ошибкой на REG.RU:
Как ошибка 500 влияет на SEO-продвижение
Для продвижения сайта в поисковых системах используются поисковые роботы. Они сканируют страницы сайта, проверяя их доступность. Если страница работает корректно, роботы анализируют её содержимое. После этого формируются поисковые запросы, по которым можно найти ресурс в поиске.
Когда поисковый робот сканирует страницу с ошибкой 500, он не изменяет её статус в течение суток. В течение этого времени администратор может исправить ошибку. Если робот перейдёт на страницу и снова столкнётся с ошибкой, он исключит эту страницу из поисковой выдачи.
Проверить, осталась ли страница на прежних позициях, можно с помощью Google Search Console. Если робот исключил страницу из поисковой выдачи, её можно добавить снова.
Код ошибки 500: причины
Если сервер вернул ошибку 500, это могло случиться из-за настроек на web-хостинге или проблем с кодом сайта. Самые распространённые причины:
- ошибки в файле .htaccess,
- неподходящая версия PHP,
- некорректные права на файлы и каталоги,
- большое количество запущенных процессов,
- большие скрипты,
- несовместимые или устаревшие плагины.
Решить проблему с сервером можно только на стороне владельца веб-ресурса. Однако пользователь тоже может выполнить несколько действий, чтобы продолжить работу на сайте.
Что делать, если вы пользователь
Если на определённом ресурсе часто возникает ошибка 500, вы можете связаться с владельцем сайта по инструкции.
Перезагрузите страницу
Удаленный сервер возвращает ошибку не только из-за серьёзных проблем на сервере. Иногда 500 ошибка сервера может быть вызвана небольшими перегрузками сайта.
Чтобы устранить ошибку, перезагрузите страницу с помощью сочетания клавиш:
- на ПК — F5,
- на ноутбуке — Fn + F5,
- на устройствах от Apple — Cmd + R.
Обратите внимание! Если вы приобретаете товары в интернет-магазине и при оформлении заказа появляется 500 Internal Server Error (перевод — внутренняя ошибка сервера), при перезагрузке страницы может создаться несколько заказов. Поэтому сначала проверьте, оформился ли ваш предыдущий заказ. Если нет, попробуйте оформить заказ заново.
Очистите кэш и cookies браузера
Кэш и cookies сохраняют данные посещаемых сайтов и данные аутентификаций, чтобы в будущем загружать веб-ресурсы быстрее. Если на ресурсе уже был статус ошибки 500, при повторном входе на сайт может загружаться старая версия страницы с ошибкой из кэша, хотя на самом деле страница уже работает. Очистить кэш и куки браузера вам поможет инструкция.
Если ни одно из этих действий не решило проблему, значит, некорректно работает сам сервер сайта. Вернитесь на страницу позже, как только владелец решит проблему.
Что делать, если вы владелец сайта
В большинстве случаев устранить проблему может только владелец сайта. Как правило, ошибка связана с проблемами в коде. Реже проблемы могут быть на физическом сервере хостинг-провайдера.
Ниже рассмотрим самые популярные причины и способы решения.
Ошибки в файле .htaccess
Неверные правила в файле .htaccess — частая причина возникновения ошибки. Чтобы это проверить, найдите .htaccess в файлах сайта и переименуйте его (например, в test). Так директивы, прописанные в файле, не повлияют на работу сервера. Если сайт заработал, переименуйте файл обратно в .htaccess и найдите ошибку в директивах. Если вы самостоятельно вносили изменения в .htaccess, закомментируйте новые строки и проверьте доступность сайта.Также может помочь замена текущего файла .htaccess на стандартный в зависимости от CMS.
Найти директиву с ошибкой можно с помощью онлайн-тестировщика. Введите содержимое .htaccess и ссылку на сайт, начиная с https://. Затем нажмите Test:
Произошла непредвиденная ошибка
На экране появится отчёт. Если в .htaccess есть ошибки, они будут выделены красным цветом:
500 ошибка nginx
Активирована устаревшая версия PHP
Устаревшие версии PHP не получают обновления безопасности, работают медленнее и могут вызывать проблемы с плагинами и скриптами. Возможно, для работы вашего веб-ресурса нужна более новая версия PHP. Попробуйте сменить версию PHP на другую по инструкции.
Установлены некорректные права на файлы и каталоги сайта
В большинстве случаев корректными правами для каталогов являются «755», для файлов — «644». Проверьте, правильно ли они установлены, и при необходимости измените права на файлы и папки.
Запущено максимальное количество процессов
На тарифах виртуального хостинга REG.RU установлены ограничения на количество одновременно запущенных процессов. Например, на тарифах линейки «Эконом» установлено ограничение в 18 одновременно запущенных процессов, на тарифах «+Мощность» ― 48 процессов. Если лимит превышен, новый процесс не запускается и возникает системная ошибка 500.
Такое большое число одновременных процессов может складываться из CRON-заданий, частых подключений с помощью почтовых клиентов по протоколу IMAP, подключения по FTP или других процессов.
Чтобы проверить количество процессов, подключитесь по SSH. Выполните команду:
ps aux | grep [u]1234567 |wc -l
Вместо u1234567 укажите ваш логин хостинга: Как узнать логин хостинга.
Чтобы посмотреть, какие процессы запущены, введите команду:
Вместо u1234567 укажите логин услуги хостинга.
Командная строка отобразит запущенные процессы:
Код ошибки 500
Где:
- u1234567 — логин услуги хостинга,
- 40522 — PID процесса,
- S — приоритет процесса,
- /usr/libexec/sftp-server — название процесса.
Процесс можно завершить командой kill
, например:
Вместо 40522 укажите PID процесса.
Чтобы решить проблему, вы также можете:
- увеличить интервал запуска заданий CRON,
- ограничить количество IMAP-соединений в настройках почтового клиента. Подробнее в статье Ограничение IMAP-соединений,
- проанализировать запущенные процессы самостоятельно или обратившись за помощью к разработчикам сайта.
Если вам не удалось самостоятельно устранить ошибку 500, обратитесь в техподдержку.
Скрипты работают слишком медленно
На каждом виртуальном хостинге есть ограничения на время выполнения скрипта. Если за установленное время скрипт не успевает выполниться, возникает ошибка сервера 500. Для решения проблемы обратитесь к разработчику сайта и оптимизируйте скрипты. Если оптимизировать нельзя, перейдите на более мощный вид сервера.
У пользователей VPS есть возможность увеличить максимальное использование оперативной памяти на процесс, но лучше делать скрипты меньшего размера.
Ошибка 500 на сайте, созданном на WordPress
WordPress предлагает много плагинов для создания хорошего сайта. Они значительно расширяют возможности CMS. Однако они же могут нарушать работу сайта и вызывать ошибку 500. Вызвать ошибку могут как недавно установленные плагины, так и старые.
Для начала проверьте, нужно ли обновить плагины. Часто устаревшие плагины перестают работать и вызывают проблемы работы сайта. Если все плагины обновлены, но 500 Internal Server Error остаётся, отключите все плагины, чтобы убедиться, что именно они мешают работе сайта. Как только станет понятно, что виноват один из плагинов, отключайте их по очереди, пока не найдёте тот, который нарушает работу сервера.
Как отключить плагин в WordPress
- 1.
-
2.
Перейдите во вкладку «Плагины» ― «Установленные».
-
3.
Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:
Если все ваши действия не решили проблему или вы не уверены в своих технических знаниях, обратитесь к службе технической поддержки. Сообщите время обнаружения проблемы и опишите все действия, которые вы предприняли перед обращением. Специалисты сделают детальную проверку настроек вашего сайта и при необходимости обратятся к администраторам сервера на стороне хостинг-провайдера.
The error 500 can prevent you from accessing a page or website. When this error occurs, in fact, the server sends an HTTP error 500 status code to the browser to communicate a generic problem that prevents you from reaching the requested address.
When error 500 prevents you from reaching a site, the solution is to try again later when the problem has been resolved.
But what if error 500 occurs on your site? There are several checks you can do to try and fix it as soon as possible, so you won’t have a negative impact on your site visits and, more importantly, sales.
In this article,500 error: how to solve it, we’ll see what kind of problem is behind a 500 error. We’ll look at the possible causes and see what solutions you can implement to quickly fix the error and get your site back online.
To top it off, we will also see how to get around the error 500 in case you are not the owner of the site, but just want to access a temporarily unreachable resource.
What is Error 500?
The definition of Error 500 given by the IETF (Internet Engineering Task Force) is as follows:
Status code 500 (Internal Server Error) indicates that the server encountered an unexpected condition that prevented it from fulfilling the request. (RFC7231)
So let’s start in order, what is an HTTP status code?
To allow us to reach an address, the browser must send a request to the server on which the site is hosted. The server, in response, returns a code to communicate the outcome of the request.
HTTP status codes are composed of 3 digits, the first of which indicates the category:
1XX: status codes starting with 1 are the informational ones. They indicate that the request has been received and they have yet to process it.
2XX: these codes are the confirmation codes, meaning that the request has been received and processed.
3XX: these are the redirection codes that are used when a resource has been moved temporarily (redirect 302) or permanently (as in the case of redirect 301)
4XX: these codes indicate client errors, such as error 403 and error 404 indicating a resource not found.
5XX: this is the category of server errors. It includes error 502 bad gateway, 504 gateway time-out and error 508, as well as error 500.
So these are the five categories of standard HTTP status codes. Then there are other codes that are always in decimal form and provide further details about the status of the request.
An example is given by Microsoft IIS (Internet Information Services) servers which in the case of error 500 allow getting more specific about the causes of the error.
- 500.0: the error is in a module or in ISAPI
- 500.11: one of the applications on the server is about to be stopped.
- 500.12: an application is about to restart.
- 500.13: server overload
- 500.15: request for global.asax file not allowed
- 500.19: configuration data is not valid
- 500.21: one of the modules was not recognized
- 500.22: the configuration of an HTTP module of an ASP.NET web application is not valid in Managed Pipeline mode
- 500.23: the configuration of an HTTP handlers element of an ASP.NET web application is not valid in Managed Pipeline mode
- 500.24: problems with the configuration of an identity change in Managed Pipeline mode
- 500.50: there was a rewrite error when processing the RQ_BEGIN_REQUEST message
- 500.51: there was a rewrite error while processing GL_PRE_BEGIN_REQUEST message
- 500.52: there was a rewriting error while processing the message RQ_SEND_RESPONSE
- 500.53: there was a rewriting error while processing the message RQ_RELEASE_REQUEST_STATE
- 500.100: the error occurred within the ASP application.
Error 500 can occur in a number of ways, here are some of the most common variations you may come across:
- 500 Internal Server Error
- HTTP 500 Internal Error
- HTTP Error 500
- Internal Server Error
- The website cannot display the page
- HTTP 500 – Internal Server Error
- Internal Server Error 500
- 500 Error
- 500 Server Error
- 500 Internal Server Error. Sorry something went wrong.
- Temporary Error (500)
- Server Error 500 internal
- Error 500 HTTP
- Error 500 Internal Server Error
- HTTP Error 500
- An error occurred during data request (500)
The error message can change from one server to another and on different browsers. In the screenshot below you can see an example of the error on Google Chrome.
Other browsers, such as Firefox, however, may also simply show you a white screen like this.
Causes of error 500
Error 500 can result from several causes ranging from an error in the .htaccess file to server unavailability due to maintenance. In this paragraph, we will examine some of the most common causes that can generate this type of error. In the next one, instead, we’re going to see how to proceed step by step to solve it.
Errors in the file .htaccess
The .htaccess file is used to insert directives for Apache servers. For example, you can use the .htaccess file to implement 301 redirects.
The presence of an error, such as an incorrect command or even a syntax or writing error, within this file, can cause the server to respond with an error 500.
Permissions errors
Permissions can be set for all files and folders on the server. This determines which users are granted permissions to read, write and execute files.
For example regarding permissions for WordPress files and folders you should use the following permissions:
- 644 or 640 for files
- 755 or 750 for folders.
An error in permissions can be the cause of a 500 error.
Problems with a script
An error in the syntax or code of a script, but also in the path setting can cause a 500 error. Also, you may have problems with Perl scripts if they were loaded in binary mode instead of ASCII, or if the necessary modules were not installed.
Problems with the server
Error 500 may be due to problems with the server, for example, if there is an overload on the server or due to maintenance. In these cases, you can wait and try to reload the page after some time or contact your provider.
Compatibility problems with plugins and themes
When using a CMS with extensions, plugins, or themes, a common situation you might find yourself in is a 500 error right after installing one of these components.
To quickly figure out if the cause of the 500 error is a plugin you can disable all of them temporarily. You can do this directly from the dashboard, but if you can’t log in, there are other methods as well, which we’ll see later in the section on Error 500 solutions.
Problems with WordPress core files
Although error 500 is not directly related to the platform you’re using, there are cases where the problem can stem from the CMS files.
For example, in the case of WordPress, it is possible that the core files have been damaged and need to be restored. In this case, you’ll have to proceed to reinstall WordPress without losing the content you’ve created so far.
Keep in mind that it is essential to make a backup before proceeding, to avoid losing your content.
Database problems
A 500 error can result from a problem with the database. Among the most common causes for which you may find yourself having your site down are:
- wrong credentials to access the database
- corrupted database
- database server overload.
PHP memory limit
If a script exceeds the memory threshold, the process is inhibited and you may be faced with a 500 error.
500 error: how to solve it
In addition to looking at the possible causes, we just saw there are other checks we can do to determine the origin of error 500. First, let’s start by analyzing the log files, and then see how to practically fix the common problems we saw earlier.
Check the log files
The cause of error 500 may not fit into the list of common causes we just reviewed. That’s why one of the first things to do is to go and check the server’s error logs or logs.
Access the site’s files, for example through the cPanel file manager, and look for a file like this “error_log”:
With WordPress you can also enable debug mode by adding this code to the wp-config.php file:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
Check file and folder permissions
You should make sure that files and folders on the server have proper permissions. For example in the case of WordPress, files should have permissions 644 or 640, while folders should be 755 or 750.
You can check and possibly change the file permissions in several ways. For example, you can use the cPanel file manager. With all our shared hosting plan, WordPress hosting, VPS cloud hosting and dedicated servers you can conveniently manage your site files from the file manager.
Next to each file, you’ll see a column that says Permissions and indicates the permissions of the file. In this example, all files are set to 644 and folders to 755.
If you want to change the permissions just click on the number corresponding to the file you want to change, type the new code and click on Save as you see in this screenshot:
You can also change file permissions with an FTP client. For example, you can see how to do it with Filezilla, in our guide dedicated to one of the most used FTP clients.
HTTP error 500 and problems with the .htaccess file
As we said before, one of the causes of an internal server error can be an error in the .htaccess file.
To check if the .htaccess file is the cause, all you have to do is rename it temporarily. You can always do this using the file manager or by accessing the server via FTP.
If you use cPanel’s file manager and can’t find the file, you’ll have to check the settings and make sure the Show hidden files (dotfiles) option is enabled.
Once you have located the .htaccess file, simply rename it and see if the error 500 has been resolved.
If the error 500 no longer appears after renaming the .htaccess file, you will need to locate and correct the error in it. After that, you can rename the file back to its original name (.htaccess).
Change PHP memory limit
If one of the active processes on your site is exceeding the PHP memory limit, you may see an error 500.
In this case, you can change the memory limit to see if this is the cause of the error. There are several ways to do this, one of the easiest is to proceed directly from cPanel.
After logging into cPanel click on Select PHP version from the Software section.
This tool allows us to change the PHP version and modify the memory limit.
Click on the Options tab and scroll down to memory_limit, then set the PHP memory limit according to the options the drop-down menu allows you.
Deactivate plugins
Sometimes activating a new plugin or theme can cause a 500 error. To figure out if the cause of the error is a plugin you can temporarily disable all plugins and see if the error gets resolved.
You can deactivate WordPress plugins in several ways: from the dashboard, through the control panel (or via FTP), but also using phpMyAdmin or through WP-CLI.
After deactivating all plugins check if the 500 error has been resolved. In this case, you will have to reactivate the plugins one by one and check if the error reoccurs to find the responsible plugin.
Disable plugins from the dashboard
The easiest way to deactivate all plugins is to do it directly from the dashboard:
- check the box to select all plugins
- from the Group Actions drop-down menu choose Deactivate
- then click on Apply button and all plugins will be deactivated.
If you can’t access the dashboard there are other ways to disable plugins.
Disable plugins from file manager
You can disable all plugins by simply renaming the folder that contains them. You can access your site files from cPanel file manager or by using an FTP client like Filezilla.
Usually the path to the plugins folder is this: /public_html/wp-content/plugins. Rename it, as you see in this example and check if error 500 still occurs.
After that you’ll have to rename the folder again, using the original name and you’ll be able to manually reactivate plugins from the WordPress dashboard.
Disable plugins with phpMyAdmin
We can use phpMyAdmin to deactivate plugins directly from the database. In this case, remember that before making changes to the database it is always wise to create a backup.
To deactivate plugins we just need to open the wp_options table and edit the active_plugins record inserting a:0:{} inside the option_value.
You can follow the procedure step by step in our guide to phpMyAdmin for WordPress.
Disable plugins with WP-CLI
WP-CLI allows us to manage our WordPress installations from the command line. With one command you can deactivate all plugins:
wp plugin deactivate --all
Also in this case you can check if the error depends on one of the plugins and go to reactivate them one by one from the dashboard.
Contact support
If you can’t find the cause of the error 500, you can always contact support, indicate the checks you have already done and find a solution to the problem with support.
Alternatively, if you want to entrust the technical management of the site to a team of professionals, you can consider switching to a managed WordPress solution. In this way, the resolution of errors of this type, as well as the maintenance operations of your site will be entrusted to experienced hands.
How to solve as a user
The solutions we have seen can be applied in case the error 500 occurs on your site.
If, on the other hand, error 500 appears on the site you are trying to visit, there is little you can do.
Since this is a server-side error, it does not depend on your connection or the device you are using. In fact, if you try to it access from another device or browser, you will find yourself facing the same error.
You can try to check the status of the site with a free service like Down for Everyone or Just Me that allows you to understand if the site is online or not.
In such cases, then, you just have to wait and try to connect to the site again later. If you need to access the content of the page, you can always take advantage of the Google cache to access the version of the site stored in the search engine cache.
Conclusion
As we have seen in this article,500 error: how to solve it, the error 500 is a server error that occurs when something goes wrong and makes it impossible to reach the desired site.
Since it is a generic error, the browser doesn’t offer more information about what caused the problem, it just shows the HTTP error 500 status code, or in other cases, it just shows you a blank screen. For this reason, the only way to solve it is to rule out possible causes one by one.
In this article, we’ve seen what the most common causes of error 500 are, and we’ve looked at possible ways to fix it in case the problem occurs on your site. If, on the other hand, you come across the error while you visit a site, there’s a little trick you can use to still access the resources you were looking for.
Have you ever seen an error 500 on your site? How did you solve it? Let me know in the comments below if the solutions in this article helped you solve it or if you had to use some other method, so we can add more solutions to help out our readers.
Пользователи интернета и владельцы сайтов периодически сталкиваются с различными ошибками на веб-страницах. Одной из самых распространенных ошибок является error 500 (ошибка 500). Поговорим в нашей статье о том, что это за ошибка и как ее исправить.
Где и когда можно встретить ошибку 500
Вы можете увидеть ошибку на любом веб-ресурсе, браузере и устройстве. Она не связана с отсутствием интернет-соединения, устаревшей версией операционной системы или браузера. Кроме того, эта ошибка не указывает на то, что сайта не существует или он больше не работает.
Ошибка 500 говорит о том, что сервер не может обработать запрос к сайту, на странице которого вы находитесь. При этом браузер не может точно сообщить, что именно пошло не так.
Отображаться ошибка может по-разному. Вот пример:
Если вы решили купить что-то в любимом интернет-магазине, но увидели на сайте ошибку 500, не стоит сильно огорчаться – она лишь сообщает о том, что вам нужно подождать, пока она будет исправлена.
Если ошибка появилась на вашем сайте, то нужно скорее ее исправлять. Далее я расскажу, как это можно сделать.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Причины возникновения ошибки
Итак, ошибка 500 возникает, когда серверу не удается обработать запрос к сайту. Из-за этого пользователи не могут попасть на сайт, а поисковые системы полноценно с ним работать. Очевидно, что ошибка нуждается в исправлении. В первую очередь необходимо найти проблему.
Основной причиной ошибки 500 может быть:
- Неверный синтаксис файла .htaccess. htaccess – это файл, в котором можно задавать настройки для работы с веб-сервером Apache и вносить изменения в работу сайта (управлять различными перенаправлениями, правами доступа к файлам, опциями PHP, задавать собственные страницы ошибок и т.д.).
Узнать больше о файле .htaccess можно в статье «Создание и настройка .htaccess». - Ошибки в скриптах сайта, то есть сценариях, созданных для автоматического выполнения задач или для расширения функционала сайта.
- Нехватка оперативной памяти при выполнении скрипта.
- Ошибки в коде CMS, системы управления содержимым сайта. В 80% случаев виноваты конфликтующие плагины.
Год хостинга в подарок при заказе лицензии 1С-Битрикс
Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой.
Заказать
Как получить больше данных о причине ошибки
Что означает ошибка 500, мы теперь знаем. Когда она перестала быть таким загадочным персонажем, не страшно копнуть глубже — научиться определять причину ошибки. В некоторых случаях это можно сделать самостоятельно, так что обращаться за помощью к профильному специалисту не понадобится.
Отображение ошибки бывает разным. Ее внешний облик зависит от того, чем она вызвана.
Самые частые причины ошибки 500 можно распознать по тексту ошибки или внешнему виду страницы.
- Сообщение Internal Server Error говорит о том, что есть проблемы с файлом .htaccess (например, виновата некорректная настройка файла). Убедиться, что .htaccess является корнем проблемы, поможет следующий прием: переименуйте файл .htaccess, добавив единицу в конце названия. Это можно сделать с помощью FTP-клиента (например, FileZilla) или файлового менеджера на вашем хостинге (в Timeweb такой есть, с ним довольно удобно работать). После изменения проверьте доступность сайта. Если ошибка больше не наблюдается, вы нашли причину.
- Сообщение HTTP ERROR 500 или пустая страница говорит о проблемах со скриптами сайта. В случае с пустой страницей стоит учесть, что отсутствие содержимого сайта не всегда указывает на внутреннюю ошибку сервера 500.
Давайте узнаем, что скрывается за пустой страницей, обратившись к инструментам разработчика. Эта браузерная панель позволяет получить информацию об ошибках и другие данные (время загрузки страницы, html-элементы и т.д.).
Как открыть панель разработчика
- Нажмите клавишу F12 (способ актуален для большинства браузеров на Windows). Используйте сочетание клавиш Cmd+Opt+J, если используете Google Chrome на macOS. Или примените комбинацию Cmd+Opt+C в случае Safari на macOS (но перед этим включите «Меню разработки» в разделе «Настройки» -> «Продвинутые»). Открыть инструменты разработчика также можно, если кликнуть правой кнопкой мыши в любом месте веб-страницы и выбрать «Просмотреть код» в контекстном меню.
- Откройте вкладку «Сеть» (или «Network») и взгляните на число в поле «Статус». Код ответа об ошибке 500 — это соответствующая цифра.
Более детальную диагностику можно провести с помощью логов.
Простыми словами: лог — это журнал, в который записывается информация об ошибках, запросах к серверу, подключениях к серверу, действиях с файлами и т.д.
Как вы видите, данных в логи записывается немало, поэтому они разделены по типам. За сведениями о нашей ошибке можно обратиться к логам ошибок (error_log). Обычно такие логи предоставляет служба поддержки хостинга, на котором размещен сайт. В Timeweb вы можете включить ведение логов и заказать необходимые данные в панели управления. Разобраться в полученных логах поможет статья «Чтение логов».
Как устранить ошибку
Теперь поговорим о том, как исправить ошибку 500. Вернемся к популярным причинам этой проблемы и рассмотрим наиболее эффективные способы решения.
Ошибки в файле .htaccess
У этого файла довольно строгий синтаксис, поэтому неверно написанные директивы (команды) могут привести к ошибке. Попробуйте поочередно удалить команды, добавленные последними, и проверьте работу сайта.
Также найти проблемную директиву можно с помощью логов ошибок (через те же инструменты разработчика в браузере). На ошибку в директиве обычно указывает фраза «Invalid command». Информацию о верном написании директивы или способе исправления ошибок в .htaccess вы можете найти в интернете. Не нужно искать, почему сервер выдает ошибку 500, просто введите в строку поиска название нужной команды или текст ошибки из логов.
Ошибки в скриптах сайта
Скрипт не запускается
Обычно это происходит, когда существует ошибка в скрипте или функция, которая не выполняется. Для успешного запуска скрипта функция должна быть верно прописана, поддерживаться сервером и выполняться от используемой версии PHP. Бывают ситуации, когда функция несовместима с определенными версиями PHP. Получить более подробную информацию о той или иной функции можно в интернете.
Не хватает оперативной памяти
Если в логах вы видите ошибку «Allowed memory size», для устранения ошибки 500 стоит оптимизировать работу скрипта. Вы можете воспользоваться специальными расширениями для анализа производительности скрипта или обратиться за помощью к специалисту, который поработает над его оптимизацией.
Если ваш сайт размещен на отдельном физическом или виртуальном сервере, можно попробовать увеличить максимальное использование оперативной памяти на процесс (memory_limit). На шаред хостинге этот параметр обычно не изменяется, но есть возможность купить хостинг помощнее.
Ошибки в CMS
Если код CMS содержит неверный синтаксис, это может вывести сайт из строя. В таком случае логи сообщат вам об ошибке 500 текстом «PHP Parse error: syntax error, unexpected». Так происходит, когда некорректно работает плагин (или тема, используемая в CMS, но реже) либо есть ошибки в коде. Ошибка может быть допущена случайно, произойти при обновлении плагина или версии CMS.
При чтении логов обратите внимание на путь, который следует за сообщением об ошибке, ведь он может указать на проблемную часть кода или плагин. Если проблема в плагине, для восстановления работы сайта переименуйте на время папку, в которой он расположен. Попробуйте обновить плагин или откатить его до прежней версии. Если ситуацию не удается исправить, от расширения стоит отказаться либо заменить его аналогом.
Также в большинстве случаев подобные проблемы помогает решить поддержка CMS.
Информацию о других распространенных ошибках вы можете найти в статье «6 наиболее часто возникающих ошибок HTTP и способы их устранения».
Удачи!
For every request from the client (like a browser), a response is sent back by the server which is called http response. A few commonly known http response codes are:
- HTTP 500 – Internal Server Error
- HTTP 501 – Not implemented
- HTTP 502 – Bad Gateway
- HTTP 503 – Service unavailable
- HTTP 504 – Gateway timeout
- 404 – Page not found error
- 200 – The request has succeeded
- 410 – the requested page is gone
What is 500 http internal server error and Why it occurs?
The server errors are in the form of three-digit integer (5xx). The http 500 error is one of the server response codes that occur for different reasons.
If for some unexpected condition, the server is unable to fulfill the request – the server responds with the “catch-all” response code 500 (Internal Server Error) to the client.
As such, the 500 server error is “catch-all”, there can be different reasons if that happens to your website or with the website you are trying to access.
In this tutorial, I will explain why 500 internal server error occurs and suggest the solutions for fixing this server error. You can see solutions for Apache, IIS and fixing the 500 error for WordPress based websites.
The second last section describes the IIS server solution which is relatively easier to identify. The last section suggests a solution if you are a visitor to any website and seeing 500 error in your browser. So, please jump to that section directly if you are a non-owner of that website.
What are the possible reasons of 500 (Internal Server Error)?
As such, the 500 server error occurs for a server’s unexpected condition and the error details are general, so there may be various possibilities for the error. There is almost nothing (except one thing explained below) that you can do at client side to resolve this issue.
Following are the general possible reasons:
- Your server’s .htaccess file is causing problems (for Apache server)
- CGI/PERL syntax or coding errors
- PHP timeout error – This can happen if your PHP script is trying to connect to an external resource e.g. MySQL database on another server and that does not respond. In that case, a 500 error can be returned in response to the browser.
- Check the error logs. This can be gem under the circumstances. The server logs can provide information about website failure, code failure etc.
- If you are using WordPress CMS and facing 500 code error then read its detail to fix the issue in later section of this tutorial.
- This error can also be caused by permission to file system.
- If you are using MS IIS server to host your website then it has more specific details (explained in its section below).
The 500 – internal server error message appears in different ways, as such this message can be customized by the website owner or a general different template is used by a theme or web host. For example, this is how http 500 message can be displayed if you experience this:
500 Error
Temporary Error (500)
500 Internal Server Error
HTTP 500 – Internal Server Error
500 Error – Sorry, we will get back soon!
Now let us go through the details of these reasons and try to fix the http 500 error. You should scroll to the section directly that relates to your scenario closely. For example, if you are on IIS then go to its section rather than reading the other details.
Fixing the 500 http error if caused by .htaccess file
If your website is hosted on Apache web server then it is using .htaccess file. If you have no idea, the .htaccess file is a configuration file used by Apache web server.
The Apache web server offers many features that you may enable or disable by using the .htaccess file. Each website hosted on the same server may have its own .htaccess file, thus using its own configuration settings. A few important settings that can be set by .htaccess file are:
- Redirection – For example, if you want visitors to redirect for the unfound pages with error 404 (page not found) then you may set a target page there.
- Allow/Disallow IPs for accessing a website
- Disallow visitors by certain referrals
- Disabling the directory listings
- If you don’t want to allow access to php.ini file then it can be done there
- And many more. As this is not the topic of this tutorial, so I will keep it limited.
Fixing the .htacess file
Chances may be that your .htaccess file is changed and there is a syntax error. If that is the case, a 500 internal server error is returned and the user’s browser will show it instead of your website.
For confirming that .htaccess file is causing the 500 error, you may do two simple things:
- Backup the .htaccess file and remove it from your website directory. Restart the Apache server and refresh your website. The default settings should be used by Apache and if .htaccess was the reason, it should be evident now.
- You may also rename the .htaccess file and restart the web server and check your website if it loads or not.
In both cases, if website loads properly then you should go through the .htaccess file and check for any syntax errors there.
I have WordPress CMS and experiencing 500 server error
If you are using WordPress CMS and your website was functioning properly and suddenly seeing the 500 error as accessing your website from the browser then there can be different possibilities but two are common:
- .htaccess file got corrupted
- PHP memory limit
Let’s look at these in detail.
.htaccess file is corrupted
As such, WordPress uses PHP/MySQL combination and generally WordPress based sites are hosted on Apache Web Server under Linux OS. In that case, this is most probably that you have .htaccess file in place.
The settings of the .htaccess file depend on the hosting company and it varies from host to host. The reason of corrupted .htaccess file in case of WordPress can be an installation of a plug-in, broken installation of a theme or it is affected by a module.
As we first have to determine that .htaccess file is the cause of 500 status code; let us first confirm this.
- Login to your WordPress website via FTP or cPanel.
- In the root directory, you should see the .htaccess file.
- Download this in your computer and take a backup.
- Now, open the .htaccess file in your text editor.
- Go to this URL on the official WordPress website: https://codex.wordpress.org/htaccess
- There, you can see sample code for various WordPress installations. For example, a basic WordPress website .htaccess file’s code is like this (as per WordPress official website):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ — [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
Similarly, if you have WordPress Multisite for WordPress 3.5 or above then get the code accordingly and place in your .htaccess file.
- Overwrite the existing .htaccess file by your FTP to this updated file.
- Refresh the website.
- If that works, that means .htaccess was corrupted.
Now, look back at your recent installations (plug-ins, themes etc.) and fix any issue there.
Increasing PHP memory limit
The other common reason of http 500 error in WordPress websites can be PHP memory limit.
For basic WordPress websites with just a few plug-ins, low memory in shared hosting works. However, as you start installing more plug-ins, it needs more memory. It may be taken as same as your computer RAM works. With less and light applications, less memory is required. As you install more and heavy applications that need more memory, the performance of the computer starts declining; so is the case with WordPress.
The 500 internal server error can be caused by using too many plug-ins or a plug-in taking many resources.
So, if you have no idea; the first question is how to check PHP memory size for your WordPress website?
This depends on the type of hosting and the company you are using. If you are using shared hosting then you may need to contact your hosting provider and request to increase the memory size.
Generally speaking, the memory size can be changed by using these ways:
- ini file (PHP configuration file)
- .htaccess file
- Wp-config file (WordPress configuration file)
Accessing memory size in php.ini file
If you have access to php.ini file then this is how you may change/increase the memory limit.
- Open the php.ini in your text editor or if it is available under your account’s control panel.
- Search for this “memory_limit” in the file.
You should find lines of code like this:
memory_limit = 28M max_execution_time = 300 upload_max_filesize = 20M post_max_size = 24 |
Change the memory limit value and save the file (or upload it if you have downloaded and connected via FTP).
Knowing php.ini information for non-cPanel access
If you don’t have access to php.ini file via cPanel and not sure what is memory limit size is then you may also find the PHP configuration for your website by following these steps:
- Create a file with the name of “checkphp.php” on your computer.
- Write this line of code after opening this file in an editor:
<?php phpinfo(); ?>
- Save the file and upload it via your FTP software to the root directory.
- Go to the browser’s address bar and type the URL to access this file. For example:
https://www.example.com/checkphp.php
This should open the configuration table for PHP like this:
Now search for “memory_limit” and you should be able to see the current setting.
Changing the memory_limit via wp-config.php file
As mentioned earlier, the wp-config.php file is used by the WordPress for WordPress configuration. You may set many things there e.g. MySQL database name, user and password. Besides, the memory size for WordPress can also be set there.
In order to change the memory limit, follow these steps:
Please take the backup of the existing wp-config.php file, so in the case of failure, you may immediately replace it by the previous file.)
- Connect to your website via FTP or via cPanel.
- If you are connected via FTP then go to the root of your WordPress installation. There, you should be able to find the wp-config.php file.
- Download it your computer and open in the PHP editor.
- Include these lines within the PHP opening tag (adjust the memory values as per availability):
define( ‘WP_MEMORY_LIMIT’, ‘100M’ );
define( ‘WP_MAX_MEMORY_LIMIT’, ‘512M’ );
Save the changes and overwrite existing file.
Using .htaccess file for increasing memory limit
You already know how to access your website’s .htaccess file. Just include these lines after the opening tag of PHP:
php_value post_max_size 64M
php_value upload_max_filesize 64M
(Again, use the memory value as per availability)
If these lines are already there then you simply increase the “M” size and upload the .htaccess file.
What if I am using Microsoft IIS server?
Now let me explain fixing the 500 error if you have hosted your website in IIS (Internet Information Server).
Fortunately, the IIS server gives more specific details if your website starts showing 5xx server error. By having the idea what these codes mean, you may perform a more specific action to fix that issue.
The details below show various http 500 codes (or sub codes) with a little description that applies to IIS:
- 500.0: ISAPI (Internet Server Application Programming Interface) or module error occurred.
- 500.11: That means your application is shutting down on the web server.
- 500.12: Application is busy restarting on the web server.
- 500.13: The IIS server is too busy.
- 500.15: Global.asax direct access is not allowed.
- 500.19: That means the configuration data is not valid.
- 500.21: Module not recognized.
- 500.22: An error related to ASP.NET.
- 500.23: This error is also related to ASP.NET
- 500.24: An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.
- 500.50: During RQ_BEGIN_REQUEST notification handling, a rewrite error occurred.
- 500.51: During GL_PRE_BEGIN_REQUEST notification handling, a rewrite error occurred.
- 500.52: This error occurs during RQ_SEND_RESPONSE notification handling (also rewrite error).
- 500.100: Internal ASP error.
You can see, almost all errors are self-descriptive. So, if you are using IIS server for hosting your website then tackling the 500 error issue should be straight forward.
For more information on the official website regarding IIS 500 code errors, visit the website here.
How to troubleshoot 500 error from client side
As mentioned earlier, the http 500 is a server-side error, so nothing much could be done at client side to fix this. However, a few simple steps can be taken if it is occurring at your side only.
Solution 1 – Remove the cache
This is probable that the 500 error is occurring due to a cached copy of that website in your computer. So, what you can do is to clear the cache of your browser and restart it.
This is how you may clear the cache of commonly used Google Chrome browser:
- Press short key from your keyword (Ctrl + Shift + Delete)
- This should open the Settings page and the active tab should be “Clear browsing data” as shown in the graphic below.
- Keep the appropriate tabs selected and the number of days and press the “Clear Data” button.
Similarly, you may remove the cached data from the Firefox browser as follows:
- Use the short key – Ctrl + Shift + Delete
- Select the appropriate options and press the “Clear Now” button
Note: You may also access clearing cache options by using both browser’s menu.
Solution 2 – Removing the cookies
By following the above section’s steps, you can also see selecting the cookies option to remove from the browser for the specific period of time.
Little chances are that 500 issue is caused by the cookies used by that website. After removing the cookies, restart the browser and reload the website.