パスとNginx 1.2.4
組み合わせて使用してPHP-FPM 5.4.8
おり、fastcgi
カスタムパラメータをに渡そうとしていますPHP
。これまでに見つけたオプションは次のとおりです。
env
ディレクティブを使用して環境変数を設定し、nginx
で、getenv()
または$_ENV
からフェッチしPHP
ます。問題はenv
、main
コンテキストでのみパラメーターを設定する必要があるのに対し、コンテキストでのみ動作するserver
ことです。fastcgi_param
そのために設計されたディレクティブを使用します。
を使用して一部のパラメーターの値を変更しようとしましfastcgi_param
たが、失敗しました:
nginx:
fastcgi_param PATH_INFO "/var/tmp";
PHP:
私は見つけることができるすべての事前定義された配列をチェックしました:
echo '<pre>';
echo "\n".'$GLOBALS'."\n"; var_dump($GLOBALS);
echo "\n".'$_SERVER'."\n"; var_dump($_SERVER);
echo "\n".'$_GET'."\n"; var_dump($_GET);
echo "\n".'$_POST'."\n"; var_dump($_POST);
echo "\n".'$_FILES'."\n"; var_dump($_FILES);
echo "\n".'$_REQUEST'."\n"; var_dump($_REQUEST);
echo "\n".'$_SESSION'."\n"; var_dump($_SESSION);
echo "\n".'$_ENV'."\n"; var_dump($_ENV);
echo "\n".'$_COOKIE'."\n"; var_dump($_COOKIE);
echo "\n".'$php_errormsg'."\n"; var_dump($php_errormsg);
echo "\n".'$HTTP_RAW_POST_DATA'."\n"; var_dump($HTTP_RAW_POST_DATA);
echo "\n".'$http_response_header'."\n"; var_dump($http_response_header);
echo "\n".'$argc'."\n"; var_dump($argc);
echo "\n".'$argv'."\n"; var_dump($argv);
echo '</pre>';
表示するのPATH_INFO
は1つだけでした$_SERVER
。
var_dump($_SERVER); // ["PATH_INFO"]=> string(0) ""
しかし、私が設定した値nginx
は考慮されていません。
Q1:ディレクティブを有効にするにnginx/php
は、レベルで何かを設定する必要がありますfastcgi_param
か?
Q2:fastcgi_param
ディレクティブは事前定義されたパラメーターのリストに制限されていますか(例:PATH_INFO
のような独自のカスタム変数は設定できませんがFOO
)?
Q3:はいの場合、Q2:NginxからPHPにカスタムパラメータを渡す方法はありますか?
fastcgi.conf
てfastcgi_params
いませんfastcgi-php.conf
:どこから入手しましたか?ペーストビンで共有してもらえますか?