Вопрос по .htaccess, php – 500 Внутренняя ошибка сервера при использовании .htaccess для настроек PHP

22

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

код в.htaccess файл:

php_flag display_errors off
php_flag log_errors on

Разрешение файла для.htaccess файл 644

Я знаю, что приведенный выше код является правильным. Но когда это показало мне500 Internal Server ErrorЯ тоже пробовал другой код (скорее всего, неправильный), но ничего не получалось. Различный код пробовал:

php_value display_errors off
php_value log_errors on

а также

php_value display_errors 0
php_value log_errors 1

Что может быть причиной500 Internal Server Error?

Изучив комментарии к этому вопросу, я обнаружил, что настройки PHP на.htaccess не работает с FastCGI. Итак, чтобы изменить настройки PHP, мне нужно изменитьphp.ini или мне нужно сделать это в коде php. Есть ли альтернативный способ, когда у меня нет доступа к изменениюphp.ini файл, и я не хочу индивидуально изменять все файлы PHP?

удалите строки и выполните скрипт phpinfo (). Возможно, у вас есть реализация CGI, suPHP или FastCGI. Они не обрабатывают "php_value" директивы, но вместо этого используйте для каждого пользователя / запроса файлы php.ini. Довольно много вопросов и ответов по этой теме. TerryE
Вы на самом деле используетеmod_php в вашей конфигурации Apache? Если вы используете PHP через CGI или FastCGI, вы не можете настроить его через.htaccess. lanzz
У вас есть доступ к файлу Apache error.log? Pekka 웃
Загружается ли страница при удалении файла .htaccess? Joey
@Pekka Я ищу Apacheerror.log файл. В настоящее время у меня нет доступа к нему. Я поговорю об этом с моей хостинговой компанией. @JoeyT Да, он загружается, когда я удаляю.htaccess файлы или когда я удаляю код из.htaccess файл. @lanzz Да, я думаю, что это может быть проблемой. Я не уверен в этом на данный момент. Я подтверждаю это с моей хостинговой компанией. Спасибо всем за помощь. Debiprasad

Ваш Ответ

3   ответа
4

вам нужно запустить свой модуль PHP какДинамический общий объект чтобы это работало, как описано вApache PHP запрос документации

DSO considerations:

libphp provides Apache directives such as php_$value and php_admin_$value. DSO is the only option where these directives will be valid inside .htaccess files or httpd.conf. When these directives are compiled with the concurrent DSO patch, they should be named php4_$value and php5_$value instead.

cgi, fcgi, suphp это не будет работать.

1

.htaccess работает только с модулем apache, где он добавит директивы, понятные apache. Это не будет работать с CGI и другими.

Способ php состоит в том, чтобы изменить php.ini для всего сайта или изменить его для каждого каталога или для каждого пользователя.

Для php5.5 (не уверен насчет других версий) измените.user.ini файл, в котором вы хотите применить эти настройки. Очевидно, что установка этого параметра в корневом каталоге сайта сделает его применимым ко всему сайту.

Перейдите сюда для получения информации о .user.ini:http://php.net/manual/en/configuration.file.per-user.php

Перейдите сюда, чтобы проверить список директив и где их можно изменить: http://php.net/manual/en/ini.list.php

Наконец, чтобы проверить ваш файл (вероятно, упомянутый в комментариях), добавьте файл phpinfo.php (имя не имеет значения), содержащий

<?php phpinfo() ?>

в каталог, чтобы вы могли видеть, какие настройки для PHP-скриптов, которые работают в этом каталоге.

0

что прошло много времени с тех пор, как был задан этот вопрос, но если ваш .htaccess не содержит ошибок, это могут быть комментарии, которые вызывают вашу головную боль.

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

Вот что прояснило проблему для меня.

Ранее у меня были директивы в файле .htaccess, которые выглядели так:

Order Deny,Allow
Deny from 52.87.112.125   # whattheme.com
Deny from 192.163.217.239 # scanwp.net

Я начал получать 500 Внутренняя ошибка сервера после обновления WHM (вероятно, Apache был включен в обновление).

Внезапно apache не понравилась середина комментариев в директивах. Я изменил файл .htaccess для кода выше, чтобы он выглядел так:

Order Deny,Allow
#  whattheme.com
Deny from 52.87.112.125

#   scanwp.net
Deny from 192.163.217.239

Задача решена.

Возможно, это не ваша проблема, но после охоты это решение сработало для меня. Удачи.

Похожие вопросы