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

Когда я использую .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?

Как и вышеприведенные комментарии: вам нужно запустить php-модуль как динамический общий объект, чтобы он работал, как описано в документации Apache PHP Request Hanlding

Вопросы DSO:

libphp предоставляет директивы Apache, такие как значение php_ $ и значение php_admin_ $. DSO – единственный вариант, когда эти директивы будут действительны в файлах .htaccess или httpd.conf. Когда эти директивы скомпилированы с параллельным патчем DSO, их вместо этого следует называть значением php4_ $ и значением php5_ $.

cgi, fcgi, suphp, это не сработает.

Как вы обнаружили, изменение .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, которые запускаются в этом каталоге.