У меня возникли проблемы с выяснением того, как я должен обрабатывать что-то в 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"
Мне не хватает чего-то простого или мне нужно делать что-то более сложное?
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"