Назад | Перейти на главную страницу

PHP + mod_fastcgi + suexec не может читать переменные, установленные через SetEnv в .htaccess

У нас есть PHP, работающий через mod_fastcgi + suexec, и кажется, что процессы PHP, запущенные таким образом, не видят переменные среды, установленные через SetEnv в .htaccess файл. Я проверил через скрипт perl и скрипт оболочки (оба запускаются через mod_cgid), что SetEnv действительно устанавливает переменную (т.е. делать это разрешено AllowOverride и mod_env загружается). И я проверил через $_SERVER, $_ENV, getenv(), $HTTP_ENV_VARS и phpinfo() что PHP не видит переменную. Я не пытался найти подходящее решение, но опубликую ответ, который является достойным решением.

Для тех, кто сталкивается с той же проблемой, неудобное, но быстрое решение - скопировать соответствующий SetEnv-строки из .htaccess файлы в VirtualHost блоки конфигурации соответствующего домена и перезапустите Apache. Установленные таким образом переменные кажутся видимыми для PHP.