Логин:
Пароль:

Параметры php_value, php_flag и ошибка 500

При запуске некоторых CMS и скриптов на части хостингов или своем VDS (сервере) на месте сайта может появиться ошибка 500 Internal Server Error. В этой статье мы разберем самую частую причину этой ошибки - параметры php_value и php_flag, указанные в файле .htaccess.

Причина ошибки 500 от php_value, php_flag

Основной причиной появления ошибки 500 на месте сайта при использовании параметров php_value и php_flag в файле .htaccess является отсутствие модуля PHP в загруженных модулях Apache.

Также к ошибке может привести неверный синтаксис данного параметра, например, если Вы указали синтаксис от php.ini - "memory_limit=64M" (php_value memory_limit=64M).

Ошибку могут вызвать и параметры php_admin_value и php_admin_flag, которые нельзя использовать в файле .htaccess.

Исправление ошибки 500 от php_value, php_flag

В том случае, если ошибку Internal Server Error вызвало отсутствие модуля mod_php, есть два варианта решения проблемы: установка данного модуля или удаление параметров php_value, php_flag из .htaccess.

Подробней об установке модуля mod_php

Если Вы используете контейнер, VDS или Dedicated сервер, то для решения проблемы Вы можете просто установить модуль PHP на веб-сервер Apache, что несколько сложнее, чем удалить параметры из .htaccess.

При использовании виртуального хостинга модуль PHP не получится установить, поэтому здесь сразу нужно переходить ко второму варианту решения проблемы…

Об удалении параметров php_value, php_flag

Удалить параметры из файла .htaccess можно тремя способами:

Добавить параметр Ifmodule в файл .htaccess. Данный способ позволит веб-серверу Apache игнорировать настройки php_value и php_flag. Синтаксис в .htaccess в этом случае будет выглядеть следующим образом:

<Ifmodule mod_php5.c>
php_value параметр_1 ХXX
php_value параметр_2 ХXX
</Ifmodule>

Также стоит добавить еще одну секцию для PHP 7:

<Ifmodule mod_php7.c>
php_value параметр_1 ХXX
php_value параметр_2 ХXX
</Ifmodule>

Это позволит автоматически активировать эти параметры при смене конфигурации VDS, выделенного сервера или переезде на другой хостинг в том случае, если там будет установлен как PHP 5, так и PHP 7 в качестве модуля Apache.

Закомментировать php_value, php_flag в .htaccess. Для комментирования данных параметров в файле .htaccess используется символ "#", который указывается в начале каждой строки.

Если было указано:

php_value параметр_1 ХXX
php_value параметр_2 ХXX

То указываем:

#php_value параметр_1 ХXX
#php_value параметр_2 ХXX

Просто убрать php_value, php_flag из .htaccess. Вы можете просто стереть все строки php_value и php_flag из .htaccess.

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

О синтаксисе параметров php_value, php_flag

Также для исправления ошибки 500 Internal Server Error мы рекомендуем проверить синтаксис параметров, который должен иметь вид:

php_value параметр_1 ХXX
php_flag параметр_2 ХXX

При указании синтаксиса для php.ini:

php_value параметр_1=ХXX
php_value параметр_1=ХXX

веб-сервер Apache выдаст ошибку.

php_admin_value и php_admin_flag в .htaccess

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