Подтвердить что ты не робот

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?

4b9b3361

Ответ 1

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

соображения DSO:

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

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

Ответ 2

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