Internal Server Error або помилка 500
Щоб встановити причину, по якій виникає помилка 500, перегляньте логи. Можливо, у файлі error.log є запис, що вказує на причину проблеми. Розглянемо найпоширеніші варіанти.
Недолік ресурсів
Якщо причина в цьому, проблема вирішується дуже просто - зверніться до хостинг-
провайдера з проханням про збільшення ресурсів.
Наявність непрацездатних скриптів або лімітоване час на їх виконання.
Якщо протягом певного проміжку часу, який часто становить хвилину, сервер не скрипти, то з`являється помилка 500 Internal Server Error.
Також вебмастера можуть зіткнутися з подібною помилкою, якщо будуть запускати CGI-скрипт з-під Apache, у випадку, якщо часу, зазначеного в налаштуваннях сервера, недостатньо на виконання скрипта.
Якщо скрипти раніше працювали, і проблеми з`явилися, наприклад, при переїзді на інший хостинг, проблема може бути викликана іншими причинами. Наприклад, тим, що сервер блокує запити.
Помилки у виставленні прав доступу
Значення прав на файли повинні бути рівні 444 або 644. CHMOD для папок не повинен відрізнятися від 755, тобто переглядати їх може тільки власник ресурсу. Права доступу до скриптів повинні бути позначені як 600. В іншому випадку сервер, в цілях безпеки, блокує доступ до скрипта, навіть якщо той працездатний.
Якщо причина, по якій з`явилася помилка 500, в цьому, використовуйте FTP-менеджер для зміни прав доступу. З цими функціями чудово справляється Filezilla.
У файлі .htaccess містяться непідтримувані директиви
Перевірте, чи присутній у корені сайту, або в іншому місці, файл .htaccess. Якщо такий є, відкрийте його за допомогою будь-якого текстового редактора. Можете використовувати Блокнот.
Помилка 500 може з`явитися, якщо ви використовуєте сервер, що працює на suPHP, тобто підтримуючий php.ini. Якщо у файлі .htaccess присутні директиви, які змінюють параметри PHP-оточення, можуть з`явитися проблеми. Найпоширеніші директиви - php_admin_flag, php_flag і php_value.
Часто в якості інструкцій включаються глобальні змінні - Register Globals.
Дана проблема вирішується дуже просто - небажані параметри можна просто видалити. Інший варіант - закомментировать їх за допомогою додавання знака # в початок рядка. Між гратами і назвою директиви повинен стояти знак пробілу.
Якщо вам обов`язково потрібно виконання закоментовані параметрів, їх можна прописати у файлі php.ini. При цьому використовувати php_admin_flag, php_flag і php_value не потрібно - просто позначте їх за принципом: "назва необхідного параметра = On".
Фатальна помилка PHP
Така проблема може виникнути, якщо PHP працює за принципом CGI. У цьому випадку потрібно ретельно перевірити програмний код, діагностувати і виправити помилки. Зверніть увагу на те, що закінчення рядків CGI-скриптів не повинні бути в форматі Віндоус ( r n), а повинні бути позначені у форматі UNIX ( n).
Якщо жодне із запропонованих рішень не усуває помилку, зверніться до хостера. Детально роз`ясніть йому, коли і після якихось дій з`явилася помилка 500. Попросіть вказати причини проблеми і надати допомогу в її усуненні. У випадку, якщо хостер не в змозі з`ясувати, чому з`явилася помилка http 500 Internal Server Error, зверніться в службу підтримки CMS, яку ви використовуєте. У листі обов`язково вкажіть всі подробиці, в т.ч. - Коментарі хостинг-провайдера щодо вашої ситуації.