Mod_phpで非常に簡単に機能するFastCGIで何かを処理する方法を理解するのに問題が発生しています。 SetEnv
を使用して、VirtualHostディレクティブからPHPアプリケーションにオプションを渡す前。例:
SetEnv MYAPP_LOGGING_ROOT "/usr/local/myapp/logs"
$_SERVER['MYAPP_LOGGING_ROOT']
からこの値にアクセスでき、これを管理するのに非常に便利な方法でした。ただし、この値はFastCGI環境のmy 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"