500 Внутренняя ошибка сервера для файла php не для html

На моем сайте всего 4-5 статических страниц. index.html и index.php присутствуют. index.html работает нормально. Если я перейду на index.php, он выдаст 500 Internal Server Error. Не знаю, в чем моя ошибка?

Примечание. Если я использую файл .htaccess с php_flag display_errors 1,

Показывает Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Если я использую файл .htaccess с empty,

Показывает Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

И если я дам ../contact-us.php, он отображается правильно.

Спасибо...


person KarSho    schedule 17.07.2013    source источник
comment
Вы вводите /index.php в адресную строку или действительно изменили каталог-index на index.php? Также опубликуйте код, содержащийся в файле index.php!   -  person Lars Ebert    schedule 17.07.2013
comment
Проверьте свои журналы (скорее всего, /var/log/apache/error.log или /var/log/httpd/error.log); но я предполагаю, что в вашем файле PHP есть ошибка.   -  person Amadan    schedule 17.07.2013
comment
может в вашем php-коде есть ошибки   -  person Anoop    schedule 17.07.2013
comment
500 Internal Server Error является общей, настоящая причина скрыта в журналах вашего сервера.   -  person DevZer0    schedule 17.07.2013
comment
Я думаю, что это связано с разрешением файла, можете ли вы проверить другое разрешение файла PHP и сравнить с тем, которое вы переименовали ...   -  person    schedule 17.07.2013
comment
если я даю ../contact-us.php, он отображается правильно   -  person KarSho    schedule 17.07.2013


Ответы (6)


500 Internal Server Error отображается, если в вашем php-коде есть фатальные ошибки, но отображение ошибок отключено. Вы можете попробовать это, чтобы увидеть саму ошибку, а не страницу с 500 ошибками:

В вашем php-файле:

ini_set('display_errors', 1);

В файле .htaccess:

php_flag display_errors 1
person Hast    schedule 17.07.2013
comment
@KarSho проверьте это: stackoverflow.com/questions/11179706/ - person Hast; 17.07.2013
comment
ты спасешь мой день - person 郭介騵; 29.10.2019
comment
просто хочу отметить, что файл .htaccess присутствует в корне вашего проекта. если это не так, просто создайте новый файл и переименуйте его расширение. - person ansh sachdeva; 18.02.2020

Для файла PHP должны быть установлены права доступа 644. Любая папка, содержащая файлы PHP и доступ к PHP (например, для загрузки файлов), должна иметь права доступа, равные 755. PHP выдает ошибку 500 при работе с любым файлом или папкой, для которых установлены разрешения. на 777!

person David Valenza    schedule 16.12.2015
comment
Как изменить эти разрешения? - person JCMcRae; 10.07.2016
comment
Изменение разрешений для всех файлов на 755, а также для основной папки на 755. Решите проблему для меня. - person Oussaki; 17.08.2016
comment
Да, это была ошибка 500. Теперь его нет. Этот ответ требует больше голосов! - person Fusseldieb; 16.08.2017
comment
Что помогло мне: установить и группу, и владельца index.php в качестве пользователя Apache, моя группа не была никем! - person Heitor; 16.07.2019
comment
@JCMcRae изменить права доступа просто: chmod 644 ‹путь / файл› .php - person imrok; 29.07.2019
comment
У меня тоже сработало! - person echo; 30.06.2020

У меня возникла эта проблема, потому что я пытался подключиться к MySQL, но у меня не было необходимого пакета. Я понял это из-за комментария @Amadan, чтобы проверить журнал ошибок. В моем случае у меня была ошибка: Call to undefined function mysql_connect()

Если в вашем файле PHP есть код для подключения к базе данных My-SQL, вам может потребоваться сначала установить php5-mysql. Я получал эту ошибку, потому что не установил ее. Все мои права доступа к файлам были хорошими. В Ubuntu вы можете установить его с помощью следующей команды:

sudo apt-get install php5-mysql

person TheRookierLearner    schedule 17.11.2014

Он менял окончания строк (с Windows CRLF на Unix LF) в файле .htaccess, который исправил это для меня.

person Saran    schedule 11.11.2015

Я знаю, что это старый вопрос, однако я столкнулся с этой проблемой в Windows 8.1 при попытке использовать файлы .htaccess для перезаписи. Мое решение было простым, я забыл изменить следующую строку в httpd.conf

#LoadModule rewrite_module modules/mod_rewrite.so

to

LoadModule rewrite_module modules/mod_rewrite.so

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

Удачи!

person Winter    schedule 08.03.2014

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

Другой возможной причиной ошибки 500 является синтаксическая ошибка в функции header(...), например:

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

Имейте в виду, что между протоколом сервера и кодом состояния должен быть пробел, поэтому он должен быть таким:

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

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

person Lin    schedule 31.07.2015