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