Php

如何使用 SetEnv 和 mod_fcgid 將特定於虛擬主機的選項傳遞給我的 PHP 應用程序?(阿帕奇2)

  • September 8, 2014

我在弄清楚如何在 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"

引用自:https://serverfault.com/questions/241539