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
, он отображается правильно.
Спасибо...
Ответы
Ответ 1
500 Внутренняя ошибка сервера отображается, если ваш php-код имеет фатальные ошибки, но отображение ошибок отключено. Вы можете попробовать это, чтобы увидеть ошибку, а не 500 страниц ошибок:
В вашем php файле:
ini_set('display_errors', 1);
В файле .htaccess:
php_flag display_errors 1
Ответ 2
PHP файл должен иметь разрешения 644. Любая папка, содержащая файлы PHP и доступ к PHP (например, для загрузки файлов), должна иметь разрешения, равные 755. PHP будет запускать ошибку 500 при работе с любым файлом или папкой, которая имеет разрешения, установленные на 777!
Ответ 3
Я знаю, что этот вопрос старый, однако я столкнулся с этой проблемой в Windows 8.1, пытаясь использовать файлы .htaccess для перезаписи. Мое решение было простым, я забыл изменить следующую строку в httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
к
LoadModule rewrite_module modules/mod_rewrite.so
Перезагрузили монитор Apache, теперь все работает хорошо. Просто опубликуйте это как ответ, потому что кто-то в будущем может столкнуться с одной проблемой с простым исправлением.
Удачи!
Ответ 4
У меня была эта проблема, потому что я пытался подключиться к MySQL, но у меня не было требуемого пакета. Я понял это из-за комментария @Amadan, чтобы проверить журнал ошибок. В моем случае у меня была ошибка: Call to undefined function mysql_connect()
Если ваш файл PHP имеет какой-либо код для подключения к базе данных My-SQL, вам может потребоваться сначала установить php5-mysql
. Я получал эту ошибку, потому что я ее не установил. Все мои права на файлы были хорошими. В Ubuntu вы можете установить его с помощью следующей команды:
sudo apt-get install php5-mysql
Ответ 5
Google ведет меня здесь, но это не помогло мне, это очень общий вопрос, и есть разные причины, поэтому я размещаю свою проблему и решение здесь для справки, если кто-то может это прочитать позже.
Другой возможной причиной ошибки 500 является синтаксическая ошибка в функции header(...)
, например:
header($_SERVER['SERVER_PROTOCOL'] . '200 OK');
Помните, что между протоколом сервера и кодом состояния должно быть место, поэтому оно должно быть:
header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');
Поэтому я предлагаю проверить ваш HTTP-заголовок, если он есть в вашем коде.
Ответ 6
Он менял окончание строки (от Windows CRLF до Unix LF) в файле .htaccess
, который исправил его для меня.