Php
如何使用 SetEnv 和 mod_fcgid 將特定於虛擬主機的選項傳遞給我的 PHP 應用程序?(阿帕奇2)
我在弄清楚如何在 FastCGI 下處理一些在 mod_php 下很容易工作的東西時遇到了一些麻煩。在我使用
SetEnv
將選項從我的 VirtualHost 指令傳遞到我的 PHP 應用程序之前。例如:SetEnv MYAPP_LOGGING_ROOT "/usr/local/myapp/logs"
我能夠從中訪問這個值
$_SERVER['MYAPP_LOGGING_ROOT']
,這是一種非常方便的管理方式。但是,在 FastCGI 環境中,此值不會傳遞給我的 PHP 應用程序。我嘗試了以下方法,但它似乎也沒有一直傳遞到我的 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"