パスと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:どこから入手しましたか?ペーストビンで共有してもらえますか?