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