Index php 500 internal server error

My site having 4-5 static pages only. index.html & index.php both are there. index.html is working fine. If I change to index.php, it's giving 500 Internal Server Error. I don't know where is my

My site having 4-5 static pages only. index.html & index.php both are there. index.html is working fine. If I change to index.php, it’s giving 500 Internal Server Error. I don’t know where is my mistake?

Note:
If I use .htaccess file with php_flag display_errors 1,

It’s showing Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

If I use .htaccess file with empty,

It’s showing Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

And if I give ../contact-us.php, it’s showing correctly.

Thanks…

pnuts's user avatar

pnuts

57.8k11 gold badges85 silver badges137 bronze badges

asked Jul 17, 2013 at 7:10

KarSho's user avatar

6

500 Internal Server Error is shown if your php code has fatal errors but error displaying is switched off. You may try this to see the error itself instead of 500 error page:

In your php file:

ini_set('display_errors', 1);

In .htaccess file:

php_flag display_errors 1

Bart Friederichs's user avatar

answered Jul 17, 2013 at 7:14

ozahorulia's user avatar

ozahoruliaozahorulia

9,6567 gold badges46 silver badges72 bronze badges

3

A PHP file must have permissions set to 644. Any folder containing PHP files and PHP access (to upload files, for example) must have permissions set to 755. PHP will run a 500 error when dealing with any file or folder that has permissions set to 777!

answered Dec 16, 2015 at 3:10

David Valenza's user avatar

6

I was having this problem because I was trying to connect to MySQL but I didn’t have the required package. I figured it out because of @Amadan’s comment to check the error log. In my case, I was having the error: Call to undefined function mysql_connect()

If your PHP file has any code to connect with a My-SQL db then you might need to install php5-mysql first. I was getting this error because I hadn’t installed it. All my file permissions were good. In Ubuntu, you can install it by the following command:

sudo apt-get install php5-mysql

answered Nov 17, 2014 at 19:35

TheRookierLearner's user avatar

It was changing the line endings (from Windows CRLF to Unix LF) in the .htaccess file that fixed it for me.

answered Nov 11, 2015 at 20:50

Saran's user avatar

SaranSaran

3,8073 gold badges36 silver badges57 bronze badges

0

I know this question is old, however I ran into this problem on Windows 8.1 while trying to use .htaccess files for rewriting. My solution was simple, I forgot to modify the following line in httpd.conf

#LoadModule rewrite_module modules/mod_rewrite.so

to

LoadModule rewrite_module modules/mod_rewrite.so

Restarted the apache monitor, now all works well. Just posting this as an answer because someone in the future may run across the same issue with a simple fix.

Good luck!

answered Mar 8, 2014 at 18:15

Winter's user avatar

WinterWinter

1,6501 gold badge18 silver badges26 bronze badges

Google guides me here but it didn’t fix mine, this is a very general question and there are various causes, so I post my problem and solution here for reference in case anyone might read this later.

Another possible cause of 500 error is syntax error in header(...) function, like this one:

header($_SERVER['SERVER_PROTOCOL'] . '200 OK');

Be aware there should be space between server protocol and status code, so it should be:

header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');

So I suggest check your http header call if you have it in your code.

answered Jul 31, 2015 at 14:38

Lin's user avatar

LinLin

5105 silver badges11 bronze badges

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

Где и когда можно встретить ошибку 500

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

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

Отображаться ошибка может по-разному. Вот пример:

Ошибка 500

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

Если ошибка появилась на вашем сайте, то нужно скорее ее исправлять. Далее я расскажу, как это можно сделать.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

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

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

Основной причиной ошибки 500 может быть:

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

Год хостинга в подарок при заказе лицензии 1С-Битрикс

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

Заказать

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

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

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

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

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

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

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

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

Причины ошибки 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.

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

Ошибка 500 из-за плагинов ВордпрессТакже в большинстве случаев подобные проблемы помогает решить поддержка CMS.

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

Удачи! 

This article describes ways to minimize the occurrence of «500 Internal Server Error» messages.

Table of Contents

  • Problem
  • Resolution
    • Set correct permissions
    • Check .htaccess directives

Problem

Visitors to your web site receive “500 Internal Server Error” messages when they access a page that uses PHP.

Resolution

Almost all of our servers run PHP as a CGI binary. One of the side effects of running PHP as a CGI binary is that internal server errors can occur if the permissions on files and directories are set incorrectly. Internal server errors can also occur if there are certain PHP directives defined in an .htaccess file.

If your web site is experiencing internal server errors, the first thing you should do is check the server logs. The server logs provide valuable information about which files are causing the errors, and potential causes. If you have a shared hosting account, you can view your web site’s error logs in cPanel. If you have a VPS or dedicated server, you can view your web site’s log files directly at the following paths:

  • /usr/local/apache/logs/error_log
  • /usr/local/apache/logs/suphp_log
Set correct permissions

If permission settings are causing internal server errors, you may see entries in the server logs similar to any of the following lines:

SoftException in Application.cpp:357: UID of script "/home/username/public_html/.htaccess" is smaller than min_uid

SoftException in Application.cpp:146: Mismatch between target UID (511) and UID (510) of file "/home/username/public_html/index.php"

SoftException in Application.cpp:256: File "/home/username/public_html/index.php" is writeable by others

These errors are all caused by permission issues. The first two lines indicate that the file’s owner or group is set incorrectly. For example, if the owner of a PHP file is the nobody or root account instead of your user account, visitors receive an internal server error when they try to view the page. If you have a shared hosting account, our Guru Crew can change the owners and groups for your files. If you need further assistance, please open a support ticket with our Guru Crew on the Customer Portal at https://my.a2hosting.com.

The third line indicates that file permissions for the index.php file are too permissive. For example, if your web site has a directory or file whose permissions are set to 777 (full permissions), anyone can read, write, or execute it. Additionally, visitors receive an internal server error when they try to view the page. To resolve this problem, change the permissions to 755 for directories and 644 for files. For example, to set the correct permissions for all directories and files in the public_html directory, type the following commands:

cd public_html
find . -type d -exec chmod 755 {} ;
find . -type f -exec chmod 644 {} ;

Do not change permissions on the public_html directory itself! Doing so may make your web site inaccessible.

Check .htaccess directives

Servers that run PHP as a CGI binary cannot use the php_flag or php_value directives in an .htaccess file. If directives in an .htaccess file are causing internal server errors, you will see entries in the server logs similar to the following line:

/home/username/public_html/.htaccess: Invalid command 'php_flag', perhaps misspelled or defined by a module not included in the server configuration

To resolve this problem, you must place any PHP directives into a custom php.ini file on your account, and remove or comment out any PHP directives in the .htaccess file. For information about how to set up a custom php.ini file, please see this article.

500 Internal Server Error is one of the common PHP errors that can put a PHP developer in panic mode. This article provides information on the most common causes. Why it become common PHP errors ? because you will found this error in WordPress, Prestashop, Codeigniter, Java, ASP.NET or whatever.

500 Internal Server Error is not a client side problem. It’s up to the sysadmin of the Web server site to locate and analyse the logs which should give further information about the error. Based on Wikipedia, 500 Internal Server Error is A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.

Here are several common ways that you might see the HTTP 500 error:

  • “500 Internal Server Error”
  • “HTTP 500 – Internal Server Error”
  • “Temporary Error (500)”
  • “Internal Server Error”
  • “HTTP 500 Internal Error”
  • “500 Error”
  • “HTTP Error 500”
  • “500. That’s an error”

HOW TO FIX THE 500 INTERNAL SERVER ERROR

CHECK YOUR SERVER ERROR LOGS

With any error message, particularly one as broad as the 500 Internal Server Error, you will first want to check any Apache and PHP error logs for your server. These logs can provide valuable context related to any code failures or other potential causes of a site failure.

ERROR WITH AN .HTACCESS FILE

If you are using a .htaccess on your site, it may be interfering with the web page you are trying to load into your browser. Please double check the .htaccess configuration. Any syntax errors will cause a 500 Internal Server Error message to be displayed instead of your website.

To confirm whether a misconfiguration .htaccess is the cause of the 500 Internal Server error, either remove or rename the .htaccess file temporarily and then try to reload the page.

If your PHP script makes external network connections, the connections may time out. If too many connections are attempted and time out, this will cause a “500 Internal Server Error.” To prevent these time outs and errors, you’ll want to make sure that PHP scripts be coded with some timeout rules. Typically, however, catching a timeout error when connecting to a database or externally to remote resources (example: RSS feeds) are difficult. They, in effect, freeze the script from continuing to run.

Removing any external connections can increase both the performance of your website and decrease the chances of you receiving a “500 Internal Server Error.”

SYNTAX OR CODING ERRORS IN YOUR CGI/PERL SCRIPT

If it is a web page ending in .cgi or .pl that is producing the error, check your script for errors.

CGI Script Guidelines

When editing your CGI script, use a plain text editor – a program that saves the file as a ‘text file’ type. DO NOT use Wordpad that comes with Microsoft Windows because it doesn’t save files in pure ASCII text format. Use Notepad instead to edit files.
Upload your CGI scripts in ASCII mode into the cgi-bin directory.
Set the file permissions on the CGI script file and directories to be chmod 755. If you use an FTP program to transfer files, right-click on the file and select change file attributes.
Double-check that the Perl modules you require for your script is supported.

Troubleshoot as a 504 Gateway Timeout error instead.

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

Delete your browser’s cookies

Some 500 Internal Server Error issues can be corrected by deleting the cookies associated with the site you’re getting the error on. After removing the cookie(s), restart the browser and try again.

How To Fix the 500 Internal Server Error PrestaShop

There are two ways to turn on Error Reporting in PrestaShop depending on what version you have.

For PrestaShop v1.4 through v1.5.2

  1. Open config/config.inc.php
  2. On or around line 29 you will find this line
    @ini_set('display_errors', 'off');
  3. Change that line to read
    @ini_set('display_errors', 'on');

For PrestaShop v1.5.3+

  1. Open config/defines.inc.php
  2. On or around line 28 you will find this line
    define('_PS_MODE_DEV_', false);
  3. Change that line to read
    define('_PS_MODE_DEV_', true);

Once you enable error reporting through your FTP or CPanel, you can navigate back to your PrestaShop’s front or back office and reproduce the error or issue you are having. For example, if you are not able to access your website because of the 500 error, you will need to turn on error reporting and refresh the page(s) that had the error. There will be additional information that you can use to investigate the problem.

How To Fix the 500 Internal Server Error WordPress

Checking for Corrupt .htaccess File

The first thing you should do when troubleshooting the internal server error in WordPress is check for the corrupted .htaccess file. You can do so by renaming your main .htaccess file to something like .htaccess_old. To rename the .htaccess file, you will need to login to your site using the FTP. Once you are in, the .htaccess file will be located in the same directory where you will see folders like wp-content, wp-admin, and wp-includes.

Once you have renamed the .htaccess file, try loading your site to see if this solved the problem. If it did, then give yourself a pat on the back because you fixed the internal server error. Before you move on with other things, make sure that you go to Settings » Permalinks and click the save button. This will generate a new .htaccess file for you with proper rewrite rules to ensure that your post pages do not return a 404.

If checking for the corrupt .htaccess file solution did not work for you, then you need to continue reading this article.

Increasing the PHP Memory Limit

Sometimes this error can happen if you are exhausting your PHP memory limit. Use our tutorial on how to increase PHP memory limit in WordPress to fix that.

If you are seeing the internal server error only when you try to login to your WordPress admin or uploading an image in your wp-admin, then you should increase the memory limit by following these steps:

  1. Create a blank text file called php.ini
  2. Paste this code in there: memory=64MB
  3. Save the file
  4. Upload it into your /wp-admin/ folder using FTP

Several users have said that doing the above fixed the admin side problem for them.

If increasing the memory limit fix the problem for you, then you have fixed the problem temporarily. The reason why we say this is because there has to be something that is exhausting your memory limit. This could be a poorly coded plugin or even a theme function. We strongly recommend that you ask your WordPress web hosting company to look into the server logs to help you find the exact diagnostics.

If increasing the PHP memory limit did not fix the issue for you, then you are in for some hard-core trouble shooting.

How To Fix the 500 Internal Server Error Codeigniter

Check your error logs, sometimes the problem is with file permission, so make sure your file permission is 0755.

Read also:

[SOLUTIONS] 502 Bad Gateway Error on Nginx

[SOLUTIONS] 504 Gateway Timeout Nginx

Sources:

500 Internal Server Error – pcsupport.about.com
WHY AM I GETTING A 500 INTERNAL SERVER ERROR MESSAGE? – mediatemple.net
The 500 Internal Server Error Explained Solved

Страницу с кодом ответа 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, достаточно изучить их текст и принять меры, указанные в статье. Если вам не удается справиться с ней самостоятельно, обратитесь в службу поддержки.

Была ли эта инструкция полезной?

500 internal server error clearly indicates that something went wrong during the display of PHP page.

By default, web servers like IIS return only generic error messages in websites. Often, this causes the masking of real reason for IIS PHP errors such as 500 internal server error.

That’s why, we frequently get request from Windows server owners to find out the reason for PHP website errors and fix them as part of our Server Management Services.

Today, we’ll take a look on how Bobcares’ Engineers track the real reason and fix php 500 internal server error in IIS.

What causes PHP 500 internal server error in IIS

Basically, 500 Internal Server Error is IIS web server’s way of saying, “Something has gone wrong when I tried to display the page. Not sure what.

Now, its time to see the exact reasons for the 500 errors.

1. Permissions Error

From our experience in managing servers, our Windows Experts often see PHP 500 internal server errors due to wrong permissions and ownership on website files. In Windows servers, every file and every folder has its own set of permissions. Again, some permissions are inherited from the parent folders too. And, when the PHP binary do not have enough permissions to execute the scripts, it can result in 500 internal server error.

Similarly, ownership of the files also create problems. In Windows, specific users like IIS User, IIS WP User, etc. should have access on the website folders and files. For example, the IUSR account should have modify permissions on php scripts. And, when there are permission problems, website shows PHP errors.

2. Bad PHP Settings

Yet another reason for PHP internal server error is bad PHP settings. The PHP settings are specified in the configuration file at C:PHPPHP.ini. PHP binary take the values from this file while executing scripts.

A classic example will be PHP timeout settings. When the website PHP scripts has to fetch results from external resources, PHP timeout values often cause trouble.  Most system administrators set timeout values in PHP to avoid abuse of the server resources. And, if the PHP script executes for a time longer than the threshold limits, it eventually results in 500 error.

3. PHP module errors

A very few 500 errors happen when the PHP module on the server as such becomes corrupt too. As a result, it results in processing failure of PHP scripts.

Luckily, when the website reports the 500 error due to module failures, IIS often show a more specific error messages like:

500.0 Module or ISAPI error occurred.
500.21 Module not recognized.

How we fixed PHP 500 internal server error in IIS

Fixing PHP 500 internal server error in IIS need a series of steps. Let’s now see how our Dedicated Engineers fixed it for one of our customers and made PHP scripts running.

The customer reported 500 internal server error on WordPress website running in IIS.

1. Turning On Display errors

While the error correctly suggested that PHP had caused 500 error code, it did not provide application-specific information about what caused the error. Therefore, the the first step of investigation was to turn ON display errors option. For this, our Dedicated Engineers followed the steps below.

  1. Using Windows® Explorer, browse to C:PHP and open the Php.ini file in the PHP installation directory.
  2. Edit and set the display_errors = On directive.
  3. Save the file.
  4. Reset IIS using the command iisreset.exe

After turning on the errors, we reloaded the PHP and it showed a PHP parse error:

Parse error: parse error in C:inetpubusersxxxhttpdocsmysiteerror.php on line 3 >>

Often browser settings only show friendly error messages. In such cases, we recommend customer to turn it Off. For example, in Internet Explorer Go to Tools, Internet Options, Advanced tab, and then clear the Show friendly HTTP error messages check box.

Thus, it was a coding error on the PHP script. We suggested script modifications to customer and that fixed the error.

2. Running PHP script locally

Yet another way to find the exact error is to run the problem php script within the server. For this, our Support Engineers connect to the server via rdesktop and execute php script using the php.exe binary. It would show the  DLL’s that are having conflicts and causing the 500 error. We fix these conflicts and make the script working again.

3. Correcting PHP settings

In some cases, we need to correct the PHP settings to get the problem solved. Recently, when a customer reported problems with his website, we had to set the php directive open_basedir correctly to solve 500 Internal Server Error.

Similarly, when PHP cgi scripts show up some warning, IIS7 still displays an HTTP 500 error message. Although the best method is to fix the PHP scripts, often changing the default error handling for FastCGI in IIS7 to “IgnoreAndReturn200” also work as a temporary fix. The exact settings will look as shown.

4. Fixing PHP binary

In some rare cases, the fix may involve complete rebuilding of PHP binary on the server. This happens mainly when the PHP program on the server becomes corrupt. However, in such cases our Dedicated Engineers always check the dependency of the package and do the reinstall. For control panel specific servers, we set the appropriate binary on the server.

[Broken PHP scripts causing big problems? Our IIS experts have the fix for you.]

Conclusion

In a nutshell, PHP 500 internal server error in IIS happens mainly due to reasons like buggy PHP scripts, wrong server settings and many more. Today, we saw the top reasons for the error and how our Support Engineers fix it for customers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

The dreaded 500 internal server error. It always seems to come at the most inopportune time and you’re suddenly left scrambling to figure out how to get your WordPress site back online. Trust us, we’ve all been there. Other errors that behave similarly that you might have also seen include the frightening error establishing a database connection and the dreaded white screen of death. But from the moment your site goes down, you’re losing visitors and customers. Not to mention it simply looks bad for your brand.

Today we’re going to dive into the 500 internal server error and walk you through some ways to get your site back online quickly. Read more below about what causes this error and what you can do to prevent it in the future.

  • What is a 500 internal server error?
  • How to fix the 500 internal server error

500 Internal Server Error (Most Common Causes):

500 Internal server error in WordPress can be caused by many things. If you’re experiencing one, there’s a high chance one (or more) of the following elements is causing the issue:

  • Browser Cache.
  • Incorrect database login credentials.
  • Corrupted database.
  • Corrupted files in your WordPress installation.
  • Issues with your database server.
  • Corrupted WordPress core files.
  • Corrupted .htaccess file and PHP memory limit.
  • Issues with third-party plugins and themes.
  • PHP timing out or fatal PHP errors with third-party plugins.
  • Wrong file and folder permissions.
  • Exhausted PHP memory limit on your server
  • Corrupted or broken .htaccess file.
  • Errors in CGI and Perl script.

Check Out Our Ultimate Guide to Fixing the 500 Internal Server Error

What is a 500 Internal Server Error?

The Internet Engineering Task Force (IETF) defines the 500 Internal Server Error as:

The 500 (Internal Server Error) status code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

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

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

500 internal server error in WordPress

500 internal server error in WordPress

500 Internal Server Error Variations

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

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

You might also see this message accompanying it:

The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.

Internal Server Error

Internal Server Error

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

500 internal server error in Firefox

500 internal server error in Firefox

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

Airbnb 500 internal server error

Airbnb 500 internal server error

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

readme 500 internal server error

readme 500 internal server error

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

500 internal server error on YouTube

500 internal server error on YouTube

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

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

500 Errors Impact on SEO

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

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

How to Fix the 500 Internal Server Error

Where should you start troubleshooting when you see a 500 internal server error on your WordPress site? Sometimes you might not even know where to begin. Typically 500 errors are on the server itself, but from our experience, these errors originate from two things, the first is user error (client-side issue), and the second is that there is a problem with the server. So we’ll dive into a little of both.

This is never not annoying 😖 pic.twitter.com/pPKxbkvI9K

— Dare Obasanjo 🐀 (@Carnage4Life) September 26, 2019

Check out these common causes and ways to fix the 500 internal server error and get back up and running in no time.

1. Try Reloading the Page

This might seem a little obvious to some, but one of the easiest and first things you should try when encountering a 500 internal server error is to simply wait a minute or so and reload the page (F5 or Ctrl + F5). It could be that the host or server is simply overloaded and the site will come right back. While you’re waiting, you could also quickly try a different browser to rule that out as an issue.

Another thing you can do is to paste the website into downforeveryoneorjustme.com. This website will tell you if the site is down or if it’s a problem on your side. A tool like this checks the HTTP status code that is returned from the server. If it’s anything other than a 200 “Everything is OK” then it will return a down indication.

downforeveryoneorjustme

downforeveryoneorjustme

We’ve also noticed that sometimes this can occur immediately after you update a plugin or theme on your WordPress site. Typically this is on hosts that aren’t set up properly. What happens is they experience a temporary timeout right afterward. However, things usually resolve themselves in a couple of seconds and therefore refreshing is all you need to do.

2. Clear Your Browser Cache

Clearing your browser cache is always another good troubleshooting step before diving into deeper debugging on your site. Below are instructions on how to clear cache in the various browsers:

  • How to Force Refresh a Single Page for All Browsers
  • How to Clear Browser Cache for Google Chrome
  • How to Clear Browser Cache for Mozilla Firefox
  • How to Clear Browser Cache for Safari
  • How to Clear Browser Cache for Internet Explorer
  • How to Clear Browser Cache for Microsoft Edge
  • How to Clear Browser Cache for Opera

3. Check Your Server Logs

You should also take advantage of your error logs. If you’re a Kinsta client, you can easily see errors in the log viewer in the MyKinsta dashboard. This can help you quickly narrow down the issue, especially if it’s resulting from a plugin on your site.

Check error logs for 500 internal server errors

Check error logs for 500 internal server errors

If your host doesn’t have a logging tool, you can also enable WordPress debugging mode by adding the following code to your wp-config.php file to enable logging:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

The logs are typically located in the /wp-content directory. Others, like here at Kinsta might have a dedicated folder called “logs”.

WordPress error logs folder (SFTP)

WordPress error logs folder (SFTP)

You can also check the log files in Apache and Nginx, which are commonly located here:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log

If you’re a Kinsta client you can also take advantage of our analytics tool to get a breakdown of the total number of 500 errors and see how often and when they are occurring. This can help you troubleshoot if this is an ongoing issue, or perhaps something that has resolved itself.

Response analysis 500 error breakdown

Response analysis 500 error breakdown

If the 500 error is displaying because of a fatal PHP error, you can also try enabling PHP error reporting. Simply add the following code to the file throwing the error. Typically you can narrow down the file in the console tab of Google Chrome DevTools.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

And you might need to also modify your php.ini file with the following:

display_errors = on

4. Error Establishing a Database Connection

500 internal server errors can also occur from a database connection error. Depending upon your browser you might see different errors. But both will generate a 500 HTTP status code regardless in your server logs.

Below is an example of what an “error establishing a database connection” message looks like your browser. The entire page is blank because no data can be retrieved to render the page, as the connection is not working properly. Not only does this break the front-end of your site, but it will also prevent you from accessing your WordPress dashboard.

Example of error establishing a database connection

Example of error establishing a database connection

So why exactly does this happen? Well, here are a few common reasons below.

  • The most common issue is that your database login credentials are incorrect. Your WordPress site uses separate login information to connect to its MySQL database.
  • Your WordPress database is corrupted. With so many moving parts with themes, plugins, and users constantly deleting and installing them, sometimes databases get corrupted. This can be due to a missing or individually corrupted table, or perhaps some information was deleted by accident.
  • You may have corrupt files in your WordPress installation. This can even happen sometimes due to hackers.
  • Issues with your database server. A number of things could be wrong on the web hosts end, such as the database being overloaded from a traffic spike or unresponsive from too many concurrent connections. This is actually quite common with shared hosts as they are utilizing the same resources for a lot of users on the same servers.

Check out our in-depth post on how to fix the error establishing a database connection in WordPress.

5. Check Your Plugins and Themes

Third-party plugins and themes can easily cause 500 internal server errors. We’ve seen all types cause them here at Kinsta, from slider plugins to ad rotator plugins. A lot of times you should see the error immediately after installing something new or running an update. This is one reason why we always recommend utilizing a staging environment for updates or at least running updates one by one. Otherwise, if you encounter a 500 internal server error you’re suddenly scrambling to figure out which one caused it.

A few ways you can troubleshoot this is by deactivating all your plugins. Remember, you won’t lose any data if you simply deactivate a plugin. If you can still access your admin, a quick way to do this is to browse to “Plugins” and select “Deactivate” from the bulk actions menu. This will disable all of your plugins.

Deactivate all plugins

Deactivate all plugins

If this fixes the issue you’ll need to find the culprit. Start activating them one by one, reloading the site after each activation. When you see the 500 internal server error return, you’ve found the misbehaving plugin. You can then reach out to the plugin developer for help or post a support ticket in the WordPress repository.

If you can’t login to WordPress admin you can FTP into your server and rename your plugins folder to something like plugins_old. Then check your site again. If it works, then you will need to test each plugin one by one. Rename your plugin folder back to “plugins” and then rename each plugin folder inside of if it, one by one, until you find it. You could also try to replicate this on a staging site first.

Rename plugin folder

Rename plugin folder

Always makes sure your plugins, themes, and WordPress core are up to date. And check to ensure you are running a supported version of PHP. If it turns out to be a conflict with bad code in a plugin, you might need to bring in a WordPress developer to fix the issue.

6. Reinstall WordPress Core

Sometimes WordPress core files can get corrupted, especially on older sites. It’s actually quite easy to re-upload just the core of WordPress without impacting your plugins or themes. We have an in-depth guide with 5 different ways to reinstall WordPress. And of course, make sure to take a backup before proceeding. Skip to one of the sections below:

  • How to reinstall WordPress from the WordPress dashboard while preserving existing content
  • How to manually reinstall WordPress via FTP while preserving existing content
  • How to manually reinstall WordPress via WP-CLI while preserving existing content

7. Permissions Error

A permissions error with a file or folder on your server can also cause a 500 internal server error to occur. Here are some typical recommendations for permissions when it comes to file and folder permissions in WordPress:

  • All files should be 644 (-rw-r–r–) or 640.
  • All directories should be 755 (drwxr-xr-x) or 750.
  • No directories should ever be given 777, even upload directories.
  • Hardening: wp-config.php could also be set to 440 or 400 to prevent other users on the server from reading it.

See the WordPress Codex article on changing file permissions for a more in-depth explanation.

You can easily see your file permissions with an FTP client (as seen below). You could also reach out to your WordPress host support team and ask them to quickly GREP file permissions on your folders and files to ensure they’re setup properly.

File permissions SFTP

File permissions SFTP

8. PHP Memory Limit

A 500 internal server error could also be caused by exhausting the PHP memory limit on your server. You could try increasing the limit. Follow the instructions below on how to change this limit in cPanel, Apache, your php.ini file, and wp-config.php file.

Increase PHP Memory Limit in cPanel

If you’re running on a host that uses cPanel, you can easily change this from the UI. Under Software click on “Select PHP Version.”

Select PHP version

Select PHP version

Click on “Switch to PHP Options.”

Switch to PHP options

Switch to PHP options

You can then click on the memory_limit attribute and change its value. Then click on “Save.”

Increase PHP memory limit in cPanel

Increase PHP memory limit in cPanel

Increase PHP Memory Limit in Apache

The .htaccess file is a special hidden file that contains various settings you can use to modify the server behavior, right down to a directory specific level. First login to your site via FTP or SSH, take a look at your root directory and see if there is a .htaccess file there.

.htaccess file

.htaccess file

If there is you can edit that file to add the necessary code for increasing the PHP memory limit. Most likely it is set at 64M or below, you can try increasing this value.

php_value memory_limit 128M

Increase PHP Memory Limit in php.ini File

If the above doesn’t work for you might try editing your php.ini file. Log in to your site via FTP or SSH, go to your site’s root directory and open or create a php.ini file.

php.ini file

php.ini file

If the file was already there, search for the three settings and modify them if necessary. If you just created the file, or the settings are nowhere to be found you can paste the code below. You can modify of course the values to meet your needs.

memory_limit = 128M

Some shared hosts might also require that you add the suPHP directive in your .htaccess file for the above php.ini file settings to work. To do this, edit your .htaccess file, also located at the root of your site, and add the following code towards the top of the file:

<IfModule mod_suphp.c> 
suPHP_ConfigPath /home/yourusername/public_html
</IfModule>

If the above didn’t work for you, it could be that your host has the global settings locked down and instead have it configured to utilize .user.ini files. To edit your .user.ini file, login to your site via FTP or SSH, go to your site’s root directory and open or create a .user.ini file. You can then paste in the following code:

memory_limit = 128M

Increase PHP Memory Limit in wp-config.php

The last option is not one we are fans of, but if all else fails you can give it a go. First, log in to your site via FTP or SSH, and locate your wp-config.php file, which is typically in the root of your site.

wp-config.php file

wp-config.php file

Add the following code to the top of your wp-config.php file:

define('WP_MEMORY_LIMIT', '128M');

You can also ask your host if you’re running into memory limit issues. We utilize the Kinsta APM tool and other troubleshooting methods here at Kinsta to help clients narrow down what plugin, query, or script might be exhausting the limit. You can also use your own custom New Relic key from your own license.

Debugging with New Relic

Debugging with New Relic

9. Problem With Your .htaccess File

Kinsta only uses Nginx, but if you’re using a WordPress host that is running Apache, it could very well be that your .htaccess file has a problem or has become corrupted. Follow the steps below to recreate a new one from scratch.

First, log in to your site via FTP or SSH, and rename your .htaccess file to .htaccess_old.

Rename .htaccess file

Rename .htaccess file

Normally to recreate this file you can simply re-save your permalinks in WordPress. However, if you’re in the middle of a 500 internal server error you most likely can’t access your WordPress admin, so this isn’t an option. Therefore you can create a new .htaccess file and input the following contents. Then upload it to your server.

# 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

See the WordPress Codex for more examples, such as a default .htaccess file for multisite.

10. Coding or Syntax Errors in Your CGI/Perl Script

500 errors being caused by errors in CGI and Perl is a lot less common than it used to be. Although it’s still worth mentioning, especially for those using cPanel where there are a lot of one-click CGI scripts still being used. As AEM on Stack Overflow says:

CGI has been replaced by a vast variety of web programming technologies, including PHP, various Apache extensions like mod_perl, Java of various flavors and frameworks including Java EE, Struts, Spring, etc, Python-based frameworks like Django, Ruby on Rails and many other Ruby frameworks, and various Microsoft technologies.

Here are a few tips when working with CGI scripts:

  • When editing, always used a plain text editor, such as Atom, Sublime, or Notepad++. This ensures they remain in ASCII format.
  • Ensure correct permissions of chmod 755 are used on CGI scripts and directories.
  • Upload your CGI scripts in ASCII mode (which you can select in your FTP editor) into the cgi-bin directory on your server.
  • Confirm that the Perl modules you require for your script are installed and supported.

11. Server Issue (Check With Your Host)

Finally, because 500 internal server errors can also occur from PHP timing out or fatal PHP errors with third-party plugins, you can always check with your WordPress host. Sometimes these errors can be difficult to troubleshoot without an expert. Here are just a few common examples of some errors that trigger 500 HTTP status codes on the server that might have you scratching your head.

PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysql_error()...
PHP message: PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/folder/web/shared/content/plugins/plugin/functions.php:525

We monitor all client’s sites here at Kinsta and are automatically notified when these types of errors occur. This allows us to be pro-active and start fixing the issue right away. We also utilize LXD managed hosts and orchestrated LXC software containers for each site. This means that every WordPress site is housed in its own isolated container, which has all of the software resources required to run it (Linux, Nginx, PHP, MySQL). The resources are 100% private and are not shared with anyone else or even your own sites.

PHP timeouts could also occur from the lack of PHP workers, although typically these cause 504 errors, not 500 errors. These determine how many simultaneous requests your site can handle at a given time. To put it simply, each uncached request for your website is handled by a PHP Worker.

When PHP workers are already busy on a site, they start to build up a queue. Once you’ve reached your limit of PHP workers, the queue starts to push out older requests which could result in 500 errors or incomplete requests. Read our in-depth article about PHP workers.

Monitor Your Site

If you’re worried about these types of errors happening on your site in the future, you can also utilize a tool like updown.io to monitor and notify you immediately if they occur. It periodically sends an HTTP HEAD request to the URL of your choice. You can simply use your homepage. The tool allows you to set check frequencies of:

  • 15 seconds
  • 30 seconds
  • 1 minute
  • 2 minutes
  • 5 minutes
  • 10 minutes

It will send you an email if and when your site goes down. Here is an example below.

Email notification of 500 error

Email notification of 500 error

This can be especially useful if you’re trying to debug a faulty plugin or are on a shared host, who tend to overcrowd their servers. This can give you proof of how often your site might actually be doing down (even during the middle of the night).

That’s why we always recommend going with an application, database, and managed WordPress host (like Kinsta).

Make sure to check out our post that explores the top 9 reasons to choose managed WordPress hosting.

Summary

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

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


Get all your applications, databases and WordPress sites online and under one roof. Our feature-packed, high-performance cloud platform includes:

  • Easy setup and management in the MyKinsta dashboard
  • 24/7 expert support
  • The best Google Cloud Platform hardware and network, powered by Kubernetes for maximum scalability
  • An enterprise-level Cloudflare integration for speed and security
  • Global audience reach with up to 35 data centers and 275 PoPs worldwide

Test it yourself with $20 off your first month of Application Hosting or Database Hosting. Explore our plans or talk to sales to find your best fit.

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

  • Ошибка 500 Internal Server Error — диагностика
  • Ошибка 500 Internal Server Error — устранение на популярных платформах
  • Ошибка 500 Internal Server Error — устранение на стороне серверных скриптов
  • Попросите помощи у системного администратора
  • Ошибку 500 Internal Server Error довольно легко устранить

Важно помнить, что эта ошибка происходит на стороне сервера. Это значит, что HTML-код, выполняемый на стороне клиента, а также JavaScript или любые другие запущенные в браузере объекты, не могут быть причиной, по которой возникает ошибка 500 Internal Server Error. Само название (Internal Server Error – ‘внутренняя ошибка сервера’) говорит о том, что ошибка происходит на сервере.

Многие пользователи устанавливают на свой сервер популярные CMS-системы, такие как WordPress, Joomla, Drupal и они не должны вызывать ошибку 500, если всё настроено правильно. Однако она всё равно всплывает – из-за несовместимости версий, некачественных установок или сбоя прав доступа на сервере.

Вот некоторые распространённые проблемы, которые могут вызывать подобную ошибку в часто используемых CMS:

  • Если вы только что обновили движок до новой версии, вероятно, обновление прошло с ошибками и необходимо провести его повторно. Скорее всего, на сайте разработчика есть инструкции, как это правильно сделать.
  • Если вы только что активировали новый плагин или новую тему, стоит попробовать отменить эти изменения. Даже профессионально написанные плагины могут конфликтовать с другими и вызывать 500 Internal Server Error nginx
  • Если вы обновляли CMS, старые плагины и темы могут быть с ней несовместимы. Единственное, что можно сделать в таком случае — отключать их по очереди, пока ошибка 500 не исчезнет.
  • Неправильно заданные права доступа на сервере или ошибки в файле .htaccess. Серверу не удаётся получить доступ к скриптам, файлам и другим ресурсам, поэтому он выдаёт ошибку.

Когда причиной, по которой возникает ошибка 500 Internal Server Error являются скрипты и плагины, лучше всего искать ответы на сайтах их разработчиков.

Другой причиной по которой может возникнуть ошибка 500 Internal Server Error может стать разработка и тестирование собственных скриптов.

Чтобы справиться с такой ошибкой, попробуйте следующие решения:

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

В некоторых случаях у разработчиков нет полного контроля над сервером.

Если скрипт запускается на сервере сторонней организации, она может помочь вам в следующем:

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

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

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

В некоторых случаях, при попытке перейти на нужный интернет-ресурс, браузер выдает системное сообщение (статус) с кодом «500», о котором свидетельствует надпись «500 Internal Server Error» («500 внутренняя ошибка сервера»).

ошибка 500

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

В случае подобной ошибки не обязательно сразу писать в техническую поддержку. Можно попробовать решить эту проблему самостоятельно.

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

  • Неверные права на объекты файловой системы
  • Ошибочный код или неподдерживаемые директивы файла .htaccess
  • Долгое выполнение скриптов
  • Ошибка в коде CGI-скрипта
  • Превышение лимита памяти
  • Некорректная работа CMS

Как диагностировать ошибку 500

Для диагностики внутренней ошибки сервера с кодом 500 необходимо проверить содержимое файла «error.log», находящийся в корне сайта или в каком-либо другом месте, которое зависит от настроек сервера.

Способ доступа к файлу зависит от того, находится ли сайт на веб-хостинге или размещён на выделенном/физическом сервере.

Ошибка 500

  1. На веб-хостинге можно найти «error.log» в панели управления веб-хостингом. Например, в ISPmanager файл с ошибками расположен в разделе «WWW» → «Журнал».
  2. На VPS файл «error.log» можно посмотреть через консоль, либо предварительно скачать его на локальный компьютер при помощи клиента FileZilla.

Этот метод позволяет выяснить причину возникновения ошибки и за короткий промежуток времени устранить ее. После проведения диагностики можно воспользоваться одним из нижеописанных способов решения проблемы.

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

Отсутствие необходимых прав доступа к объектам файловой системы (директориям и файлам) довольно часто приводит к ошибке со статусом «500». При переносе сайта на другой хостинг или изменении его структуры (добавлении новых элементов) пользователь забывает изменить права доступа.

Решение № 1 — изменение прав

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

Алгоритм изменения атрибута файла (папки)

  1. Выполнить вход в корневую директорию сервера, введя параметры аутентификации — IP-адрес сервера, логин пользователя, пароль, а также порт (если необходимо).
  2. Нажать на кнопку «Быстрое соединение». Слева отобразится список объектов файловой системы локального компьютера, а справа — файлы и директории сервера.
    подключение к VDS
  3. Следующий шаг, о котором часто забывают при загрузке сайта на хостинг, — активация пункта меню для отображения скрытых файлов («Сервер → Принудительно отображать скрытые файлы»).
    настройка скрытых файлов
  4. Загрузить необходимые файлы и папки на сервер посредством перетаскивания или используя контекстное меню «Загрузить на сервер».
    загрузка на сервер
  5. После загрузки перейти на правую панель, выделить интересующие объекты и через контекстное меню исправить соответствующие права доступа.
    установка прав

Рекомендуемые числовые значения для файлов — «644» и директорий — «755». Необходимо пересматривать и изменять права отдельно для каждого объекта файловой системы. Этот подход позволит избежать ошибок.

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

Решение № 2 — перезагрузка сервера

При размещении ресурса на базе физического или виртуального выделенного сервера (VPS) может иногда возникать ошибка 500. Если страница временно недоступна и браузер выдает ошибку с кодом «500», а изменения прав доступа были испробованы, то нужно просто перезагрузить сервер.

Некорректный .htaccess

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

Решение № 1 — исправление кода

Для определения причины ошибки «500», связанного с некорректным файлом .htaccess, последний необходимо сохранить в другом месте, а исходник удалить. Если сайт заработал, то в сохраненном файле .htaccess следует искать неверный код.

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

Методика выявления неверного кода

  1. Закомментировать все строки при помощи символа решетки «#».
    Методика выявления неверного кода
  2. Убрать «#» с первой строки.
    Методика выявления неверного кода
  3. Сохранить изменения и загрузить нужные файлы на сервер через перетаскивание или с помощью функции «Загрузить на сервер» в контекстном меню. Процедура аналогична тому, как это делается в описанном выше случае с изменением атрибута файла.
  4. Проверить web-приложение (сайт).
  5. При отсутствии сообщения с кодом «500» нужно выполнить пункт «2» для других строк.
  6. Если возникла ошибка, то требуется проверить правильность написания директивы и ее поддержку хостингом.

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

Решение № 2 — замена символов

Замена символов — распространенная ошибка при написании директив самостоятельно или копировании частей .htaccess c недостоверных источников. В коде директив присутствуют русские символы, которые очень сложно отличить от английских. Процедуру следует делать в специальных редакторах или через сервис антиплагиата «text.ru». Последний позволяет выявлять символы замены в массиве текста.

Алгоритм нахождения

  1. Запустить сервис проверки уникальности текста «text.ru».
  2. Скачать .htaccess на локальный компьютер.
  3. Сделать его копию и отредактировать ее, оставив только английские символы.
    Алгоритм нахождения неверных символов
  4. Скопировать содержимое файла и вставить в поле для текста.
  5. Нажать на кнопку «Проверить уникальность» и дождаться результатов проверки.
    Алгоритм нахождения неверных символов
  6. Исправить символ в исходнике.
  7. Сохранить файл и закачать его на сервер.
  8. Выполнить переход на сайт.

Долгое выполнение скриптов

В настройках 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, темы и плагины.

Выполнение диагностики
  1. Скопировать .htaccess на диск, а затем удалить его на сервере.
  2. Обновить страницу.
  3. Если сайт заработал, то нужно искать причину в файле.
  4. Если при обновлении страницы ошибка не исчезнет, то рекомендуется изменить атрибуты файла .htaccess. Для этого нужно запретить запись в файл, задав в правах доступа числовое значение «644».

Последний пункт влияет на активацию плагинов. Его рекомендуется рассматривать как временную меру.

Решение № 2 — смена текущей темы

Для устранения ошибки «500» рекомендуется поменять тему на другую, а затем обновить страницу. Если сайт заработал, то причина в ней. В противном случае нужно перейти к третьему варианту решения проблемы.

Решение № 3 — перебор плагинов

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

Порядок деактивации плагина

Порядок деактивации плагина
  1. Выбрать плагин (стрелка № 1).
  2. В выпадающем списке указать опцию «Деактивировать» (стрелка № 2).
  3. Нажать на кнопку «Применить» (стрелка № 3).
  4. Обновить веб-страницу.
  5. Перебор плагинов продолжать до возобновления работы интернет-ресурса.

Если деактивация плагинов не привела к положительному эффекту, и сайт по-прежнему не работает, то нужно перейти к четвертому методу.

Решение № 4 — модификация конфигурационного файла

Устранить проблему внутренней ошибки сервера поможет увеличение объема памяти.

Алгоритм модификации
  1. В корневой директории хостинга необходимо найти файл «wp.config.php».
  2. Открыть его в редакторе.
  3. Перейти в конец файла.
  4. Добавить код «define(‘WP_MEMORY_LIMIT’, ’64M’)».
  5. Сохранить и перезагрузить страницу.

Решение № 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», сайт на хостинге по-прежнему не работает, необходимо обращаться к техподдержке хостинг-провайдера.

Hero image.

The message 500 Internal Server Error is a popular HTTP status code that is sent by a server in response to a client’s request. If your web browser shows you a webpage containing this error, it means that the server powering the website you are visiting has experienced an unexpected error and cannot deliver the requested content.

The 500 Internal Server Error is a very general error message that does not point to one specific root cause. Instead, it is used as a catch-all error response whenever a more appropriate HTTP status code is not available.

If a server encounters a problem while processing the client’s request, it may return the generic 500 Internal Server Error message.

If a server encounters a problem while processing the client’s request, it may return the generic 500 Internal Server Error message.

Different websites are powered by different webservers and as such, each server application may present and word the 500 error a bit differently. Below, you will see some of the more popular representations:

  • 500 Internal Server Error
  • Internal Server Error
  • HTTP 500 Internal Error
  • 500 Error
  • HTTP Error 500
  • HTTP 500 - Internal Server Error
  • Temporary Error (500)
  • 500. That’s an error.

It should be noted that while the error description may vary, the 500 HTTP status code will always remain the same as long as it is shown on the page. Here at AwardSpace, our free website hosting plan, premium shared hosting packages, and semi-dedicated servers all use the Apache webserver application to power your website. As such, should you experience error 500, you will see the text Internal Server Error in your web browser as was shown in the screenshot earlier in this article. Our Virtual Private Server hosting also comes with Apache preinstalled, however, if you decide to purchase a VPS instance you will be able to install a different web server application if you want.

We should also note that an Internal Server Error needn’t necessarily take down your whole website. Often times, the front-end of your website may experience the 500 error while the back-end may remain accessible. Another possibility is that a specific action or a sequence of events may trigger the error.

Start Your Own Website For Free!

To learn what causes the 500 Internal Server Error or how to fix the problem, continue reading or jump to the section that interests you:

  • What Causes the 500 Internal Server Error?
    • Permissions
    • PHP Memory Limit
    • PHP Timeout
    • Bad Htaccess
  • How Can I Fix the 500 Internal Server Error?
    • Permissions
    • PHP Memory Limit
    • PHP Timeout
    • Bad Htaccess
    • Bad Code Changes
    • Restore From Backup
  • How Can I Fix the 500 Internal Server Error in WordPress?
    • WordPress Memory Limit
    • WordPress Htaccess
    • Disable Plugins
    • Reset the Theme
    • Update Your PHP Version
  • Conclusion

As we have noted earlier in the article, the 500 Internal Server Error is a server-side error message. In other words, the error is almost never caused by the client that is connecting to the server. As such, the 500 error would likely persist even if you try visiting the website on a different device equipped with a different web browser and even a different operating system.

Switching to a different device will not fix a 500 Internal Server Error since this problem is most often caused by the server itself.

Switching to a different device will not fix a 500 Internal Server Error since this problem is most often caused by the server itself.

The error itself can be generated by many different issues ranging from incorrect file permissions, faulty .htaccess configurations, scripts that are not correctly programmed, faulty plugins and themes, and others. We will explore the more popular causes of HTTP error 500 below.

Permissions

Having incorrect file and directory permissions is one of the more common problems that can lead to an internal server error. When the incorrect permission is set, the website might not be able to retrieve or execute all necessary files which, in turn, can cause unexpected website behavior.

PHP Memory Limit

Error 500 is likely to occur if the website you are visiting is hosted on a low-memory hosting solution such as a shared hosting account. If the account runs out of memory for whatever reason, the hosted sites there may start showing strange errors, including the 500 Internal Server Error.

PHP Timeout

Every website has a finite amount of system resources available to it. These resources must never be exceeded, otherwise, all processes on the hosting account may experience a catastrophic failure. To guard against this possibility, PHP has a timeout function that limits the amount of time a PHP script can run. Once the time limit is reached, the script process is killed, freeing up system resources in the process.

Get a Server with a Lot of System Resources!

However, this premature killing of the PHP script can have negative side effects on your site visitors like a 500 error. The good news here is that the error is generally triggered only when the visitor tries to perform a certain action or follow a specific set of steps that would necessitate the execution of the problematic PHP script. As long as the script is not triggered, the rest of the website should function as normal.

Bad Htaccess

Another very common issue that results in an Internal Server Error is a poorly created .htaccess file. The .htaccess file is used to give instructions to the server, so an error can occur even if only one character is misspelled or missing.

Free Hosting with Full .HTACCESS Support!

How Can I Fix the 500 Internal Server Error?

If you are just browsing the web and stumble upon a site that returns a 500 error page, there isn’t much you can do on your end to fix the issue as internal server errors are usually triggered by a problem with the server itself. That said, you can still try some basic troubleshooting steps. They do not have a high probability of fixing the issue, but they are quick and easy to try:

  1. If you have another device at your disposal, try opening the problematic webpage there and check if you still see the 500 Internal Server Error. And if you have an alternative way of accessing the Internet, such as a phone’s cellular connection, you should try using it for the test instead of your regular Wi-Fi connection.
  2. If you do not have access to a secondary device, you can try using a web proxy service. A web proxy allows you to visit a website using a remote computer in another location. If you do not have a favorite web proxy service, you can try using ProxySite as it is free and easy to use. Make sure that you do not disclose any sensitive information while using the proxy website as the proxy provider will have access to everything that you type.
  3. If you would rather not use a proxy service, then you can clear your browser cache and cookies and try loading the problematic page one more time. Most web browsers would allow you to clear your cache and cookies using the keyboard shortcut Control (Command for Mac users) + Shift + Delete. Alternatively, you will find the option to clear your browsing data in the Advanced/Developer/Privacy section in your browser settings.

Most web browsers will take you straight to the option to delete cache and cookies if you use the Control+Shift+Delete keyboard combination.

Most web browsers will take you straight to the option to delete cache and cookies if you use the Control+Shift+Delete keyboard combination.

If the above steps do not resolve the issue, you should consider contacting the website owner on social media and making them aware of the error that you are experiencing.

But what about if your own website is suffering from a 500 Internal Server Error? In that case, you need to perform a whole different set of troubleshooting steps that are much more involved. As we noted earlier, there are many different reasons why your website might be showing error 500. Below, we will provide solutions to some of the more common problems that can cause an internal server error.

Permissions

One of the most common reasons why your website might show error 500 is when you have accidentally set incorrect permissions for the files and directories needed to carry out a certain task. Fortunately, this issue can easily be fixed using our File Manager or an FTP client.

Our File Manager allows you to set the permissions of a file or a directory by simply right-clicking and choosing the Permissions option.

Our File Manager allows you to set the permissions of a file or a directory by simply right-clicking and choosing the Permissions option.

Both our File Manager and an FTP/SFTP/FTPS client would allow you to change the permissions of a file or a directory by right-clicking on it. As a rule of thumb, you should set your directories with permission 755 (-rwxr-xr-x) and your files with permission 644 (-rw-r--r--).

PHP Memory Limit

Every type of web hosting, with the possible exception of cloud hosting, provides the hosted website a finite amount of computing resources. As such, it should come as no surprise that most hosting-related applications allow you to set a memory limit on them. The idea here is to protect the server against running out of memory as this might cause it to freeze up.

One hosting component that is very important for websites like WordPress is PHP. PHP is a programming language that lets you run PHP scripts on the server in order to serve dynamic webpages to your visitors. Some scripts may require a considerable amount of memory and processing power, which is why PHP allows you to set a custom memory limit. If a script hits that memory limit, its process will be killed, thus preserving overall system stability. The downside to this restriction is that the website visitor who has initiated the PHP script will see an error on their end and it will likely be a 500 Internal Server Error.

Limiting the amount of memory that scripts can use is performed via a PHP directive called memory_limit. You can find the memory_limit directive inside of your php.ini file. On our shared hosting platform and semi-dedicated servers, you will find the php.ini file inside of the PHP Settings section of the Control Panel:

The php.ini file is a fancy text file that contains various directives that instruct PHP how to behave.

The php.ini file is a fancy text file that contains various directives that instruct PHP how to behave.

In the example above, the memory_limit is set to 64M. You can try increasing the limit to something like 128M and then see if the 500 Internal Server Error persists.

If your site visitors still encounter a 500 error even after increasing the memory_limit, then you will likely need to contact the developer who has created the script and ask them to optimize it.

And if further optimization is not possible, you should consider getting a hosting plan that offers more computing resources for your website. For example, if you are using our free hosting package, you can upgrade to a paid hosting plan. Conversely, if you are already using our paid hosting services, you should move to a semi-dedicated server or a Virtual Private Server.

PHP Timeout

PHP enables you to limit the amount of time it takes for a script to complete its execution in addition to allowing you to set a maximum memory limit.

Get Your Own Private Server Now!

At first glance, it might seem strange to limit the time a script has to complete its operation. In reality, the limit is necessary in order to kill any scripts that are caught in a loop or scripts that depend on external resources that are no longer available. If such problematic scripts are not killed by PHP, they will permanently take up a portion of the server’s computing resources, thus reducing the overall capacity to serve visitors.

When a PHP script is killed, its resources are freed up and the visitor who initiated the script will see an error that can be a 500 Internal Server Error. You can try avoiding HTTP error 500 by increasing the amount of time scripts have for their execution before they are killed.

You can change the amount of time scripts have to complete their execution in the php.ini file in your hosting account. You can find the php.ini file in the PHP Settings section of the Control Panel:

The php.ini file is a fancy text file that contains various directives that instruct PHP how to behave.

The php.ini file is a fancy text file that contains various directives that instruct PHP how to behave.

The directive that needs to be altered is called max_execution_time. By default, its value is set to 30 seconds on our hosting platform. If you wish to increase it, simply set a higher number. For example, if you wish to give your PHP scripts five minutes to complete their execution before they are killed, you need to update the directive to be max_execution_time = 300. If you do not see the max_execution_time entry in the php.ini file, you may need to add it manually on an empty line.

Generally speaking, there are very few situations in which increasing the maximum execution time for scripts is advisable. Instead of allowing your scripts to run for longer, you should consider optimizing them instead. Not only will this solve the 500 Internal Server Error, but it will also make your scripts more resource-efficient, allowing you to achieve higher performance using your existing hardware.

Another reason why your scripts might be hitting their execution time limits is if they need to communicate with external sources, such as a remote server or a database, but their connection is too slow. You can mitigate this issue by ensuring that your server has access to a high-speed Internet connection.

Lastly, we should also mention that your scripts may be unable to complete their execution because they depend on an external server that is temporarily down. In such cases, you should try contacting the owner of the remote server and making them aware of the issue.

Get the Power Your Website Deserves

Bad Htaccess

Along with permissions and PHP-specific restrictions, another common reason for getting a 500 Internal Server Error is an .htaccess file that contains a syntax error or a typo. Such a mistake can lead to HTTP error 500 since the .htaccess file is used to provide instructions to the web server application. If those instructions contain an error, the server software will not be able to follow them and will display an error message instead.

You can check whether the .htaccess file is causing your internal server error by simply renaming the file to anything else, for example, .htaccess-disabled. Once you have disabled your .htaccess file by renaming it, you should try loading a few of your pages. If they manage to load, even with weird formatting or sections missing, then your .htaccess file is indeed the cause for the 500 Internal Server Error. You should proceed to troubleshoot the file line by line or consult with the developer who created your website.

Lastly, we should note that the problematic .htaccess file may not always be located in the root folder of your website. That’s because most webservers are designed to check for .htaccess files at every level of your directory path. In other words, if your website is located in /websites/my-website.com/, then, in addition to /websites/my-website.com/, you should also check /, and /websites/ for any .htaccess files and disable them as part of the test.

Bad Code Changes

If you were not able to determine the root cause of the HTTP 500 error using the suggestions outlined above, you should think when exactly this error started showing and what actions and edits you have performed around this time. Chances are that you have updated or installed a new plugin/component/theme or you have made manual edits on your website. Reversing those changes has a high probability of fixing the internal server error.

Restore From Backup

Should all else fail, you may opt to restore your website to an earlier, hopefully working, state using a backup. This is why it is important to perform regular backups of your files and any MySQL and PostgreSQL databases that your website might be using. If you are looking for an automated backup solution, then you should look no further than our weekly file, mail, and database backups that are created for all websites hosted on our premium shared hosting and semi-dedicated server plans.

The Backup Manager allows you to retrieve your file, database, and mail backups for the last three weeks.

The Backup Manager allows you to retrieve your file, database, and mail backups for the last three weeks.

How Can I Fix the 500 Internal Server Error in WordPress?

WordPress has become the most popular content management system due to its ease of use and a wide selection of plugins and themes. However, it can also suffer from a 500 Internal Server Error from time to time. The general advice on how to fix HTTP error 500 that we have provided above applies here as well and you should go through our suggestions. That said, in this section, we will provide some WordPress-specific troubleshooting steps which you might want to try.

WordPress Memory Limit

Earlier in this guide, we have shown you how to increase the memory limit of PHP. This is all well and good, however, WordPress also tends to limit itself when it comes to memory use. So, you can end up in a situation where PHP has additional memory to spare, however, WordPress might never request it. To fix this, you need to allow WordPress to use additional memory. You can do so by adding the line define( 'WP_MEMORY_LIMIT', '128M' ); to your wp-config.php file. Make sure to replace 128M with the amount of memory you have allocated for PHP. Once you have added this directive, save your changes, and try loading WordPress one more time.

You can add the directive to increase the WordPress memory limit on an empty line in the wp-config.php file.

You can add the directive to increase the WordPress memory limit on an empty line in the wp-config.php file.

WordPress Htaccess

As we have noted earlier, one of the most common reasons for an internal server error is a problem with your .htaccess file. Our standing recommendation is to try renaming to file to anything else which will effectively disable it. With WordPress, however, we are taking things a step further. In addition to renaming the original .htaccess file to something like .htaccess-disabled, you should also create a brand new .htaccess file and place the following content inside:

# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

The above code is the default .htaccess for WordPress and is necessary for the proper operation of the CMS. Once you have created the .htaccess file and pasted the contents, save it and try loading your website one more time. Chances are that this will clear your 500 Internal Server Error.

As a quick aside, if your CMS has a default .htaccess file that is created during the CMS installation, you should always try to reset the .htaccess file to its default contents rather than disabling (renaming) it outright.

Get Premium Hosting with Full WordPress Support!

Disable Plugins

Apart from memory and .htaccess issues, the next most probable reason for a 500 error in your WordPress site is a faulty plugin. This is especially true if the internal server errors started appearing right after you installed a new plugin or updated an existing one. To test this, you can disable all plugins by renaming the plugins directory that is located in the wp-content folder. So, if you run the website example.com, then the plugins folder would be located in /example.com/wp-content/. You can rename the plugins directory to anything you like, in this example, we will rename it to plugins_DISABLED:

Disabling all of your WordPress plugins is as simple as renaming their parent folder.

Disabling all of your WordPress plugins is as simple as renaming their parent folder.

Once all plugins are disabled, check and see if the 500 Internal Server Error persists. If the error is gone, then one of your plugins is indeed the culprit. You can rename the plugins folder back to its default name and then start renaming the individual folders for each plugin one by one until you find the plugin that is bringing down your website.

Reset the Theme

Along with disabling all plugins, you might also want to reset your WordPress theme to the default one, especially if the 500 Internal Server Errors have begun after you have updated or tweaked it.

If you have access to the WordPress back-end, you can change the active theme by choosing the Themes option from the Appearance menu. And if you get a 500 error on your back-end as well, you should disable the current theme through the File Manager or FTP.

To disable the theme, navigate to the wp-content directory in your WordPress installation and open the themes folder there. In that folder, you should see all themes currently installed. To disable your current theme, simply rename the folder in some way. In our example below, we will add a disabled label to it:

Disabling your active WordPress theme is as simple as renaming it.

Disabling your active WordPress theme is as simple as renaming it.

Once the active theme folder has been renamed, the theme will be deactivated and your WordPress default theme will be loaded automatically. At this point, you should check if the HTTP 500 error persists.

A word of warning: make sure that your WordPress installation has its default theme installed and available, otherwise WordPress will not be able to fall back on it once you disable the current theme.

Update Your PHP Version

Our last piece of advice is to make sure your hosting account is running one of the more recent versions of PHP. Because there are bound to be issues if you run an up-to-date WordPress installation and you couple it with a PHP version that is five years old.

Here at AwardSpace, we always strive to support the latest stable releases of PHP and add them to our hosting platform as soon as they become publicly available. What is more, we believe that being able to change your PHP version is a basic hosting feature and this is why we support this functionality across all of our hosting plans – from our free web hosting package to our paid hosting plans, to all of our semi-dedicated servers, and, of course, our Virtual Private Server instances. To change your PHP version, simply navigate to the PHP Settings section of our Control Panel.

Create Your First Website Now!

Conclusion

The 500 Internal Server Error is a server-side error that is very general in nature. It is returned by the server whenever a more specific error cannot be provided. And because of this lack of specificity, some instances of error 500 can be very hard to troubleshoot and resolve.

If you are a website owner and your website is suffering from a 500 error, our advice is to try the steps we have outlined in this article. If they do not help, it is best to contact the developer who created your website, the support team for your CMS, or your hosting company’s technical support team.


Keep reading

  • .CM
  • What Is HTTP?
  • What Is a Server and How Does It Power My Website?

Понравилась статья? Поделить с друзьями:
  • Index exceeds matrix dimensions матлаб как исправить
  • Index error tuple index out of range
  • Index error string index out of range
  • Index does not exist index valho как исправить ошибку
  • Index 25 size 5 minecraft ошибка