Как я могу использовать SetEnv с mod_fcgid для передачи определенных параметров виртуального хоста в мое PHP-приложение? (Apache2)

У меня возникают проблемы с выяснением того, как мне следует обрабатывать что-то в FastCGI, которое довольно легко работает в mod_php. Прежде чем я использовал SetEnv передать параметры из моей директивы VirtualHost в мое приложение PHP. Например:

SetEnv MYAPP_LOGGING_ROOT "/usr/local/myapp/logs"

Я смог получить доступ к этому значению из $_SERVER['MYAPP_LOGGING_ROOT'] и это был довольно удобный способ справиться с этим. Однако это значение не передается моему PHP-приложению в среде FastCGI.

Я попробовал следующее, но, похоже, оно не проходит весь путь до моего приложения PHP:

FcgidInitialEnv MYAPP_LOGGING_ROOT "/usr/local/myapp/logs"

Я упускаю что-то простое или мне нужно делать что-то более сложное?

1 ответ

Решение

SetEnv работает с mod-fcgid. Мой конфиг:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
            FCGIWrapper /usr/lib/cgi-bin/php5
            AddHandler fcgid-script .php
            Options ExecCGI Indexes
            SetEnv MYAPP_LOGGING_ROOT "/usr/local/myapp/logs"
    </Directory>

foo.php:

<?php
    var_dump($_SERVER["MYAPP_LOGGING_ROOT"]);
?>

Тестовое задание:

curl localhost/foo.php 
string(21) "/usr/local/myapp/logs"
Другие вопросы по тегам