Ich verwende Nginx 1.2.4in Kombination mit PHP-FPM 5.4.8einem fastcgiPass und versuche, benutzerdefinierte Parameter an zu übergeben PHP. Hier sind die Optionen, die ich bisher gefunden habe:
Verwenden der
envDirektive, um eine Umgebungsvariable festzulegennginxund mitgetenv()oder$_ENVvon abzurufenPHP. Das Problem ist, dassenvnur immainKontext gearbeitet wird, während ich den Parameter imserverKontext setzen muss.Verwenden der
fastcgi_paramRichtlinie, wie sie dafür ausgelegt ist.
Ich habe versucht, die Werte einiger Parameter mit zu ändern fastcgi_param, war jedoch nicht erfolgreich:
Nginx:
fastcgi_param PATH_INFO "/var/tmp";
PHP:
Ich habe alle vordefinierten Arrays überprüft, die ich finden konnte:
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>';
Der einzige zu zeigen PATH_INFOwar $_SERVER:
var_dump($_SERVER); // ["PATH_INFO"]=> string(0) ""
Der von mir eingestellte Wert nginxwird jedoch nicht berücksichtigt.
Frage 1: Muss ich irgendetwas auf nginx/phpEbene konfigurieren, damit die fastcgi_paramRichtlinie wirksam wird?
F2: Ist die fastcgi_paramDirektive auf eine vordefinierte Liste von Parametern beschränkt (z. B. kann PATH_INFOich eigene , aber keine benutzerdefinierten Variablen festlegen , z. B. FOO)?
F3: Wenn ja zu Q2: Gibt es eine Möglichkeit, benutzerdefinierte Parameter von Nginx an PHP zu übergeben?
fastcgi.confundfastcgi_paramsaber nichtfastcgi-php.conf: Woher hast du es? Haben Sie etwas dagegen, es über Pastebin zu teilen?