Как я могу использовать 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"