Я пытаюсь установить переменную окружения в зависимости от того, работает ли PHP как модуль apache из файла .htaccess
. Извлекая массив $_SERVER
в php-скрипт, я вижу, что переменная MOD_PHP
успешно установлена, но условие reqenv()
всегда, кажется, возвращает false, поскольку ini_get('memory_limit');
по-прежнему сообщает значение по умолчанию.
<IfModule mod_php5.c>
SetEnv MOD_PHP php5
</IfModule>
<IfModule mod_php7.c>
SetEnv MOD_PHP php7
</IfModule>
<IfVersion >= 2.4>
<If "reqenv('MOD_PHP') != '' || reqenv('REDIRECT_MOD_PHP') != ''">
php_value memory_limit 1024M
</If>
</IfVersion>
Не уверен, почему выше не работает. Если я переместу php_value
прямо под секцией <IfVersion>
, значение будет изменено, как и ожидалось:
<IfModule mod_php5.c>
SetEnv MOD_PHP php5
</IfModule>
<IfModule mod_php7.c>
SetEnv MOD_PHP php7
</IfModule>
<IfVersion >= 2.4>
# the following works
php_value memory_limit 1024M
</IfVersion>
Так что, похоже, что-то связано с <If "reqenv()">
частью.
Я использую php 7.2.13 в Ubuntu 14.04 с установленным apache 2.4.7.
Могу также добавить, что я использую PHP как модуль apache.