Saya menggunakan Nginx 1.2.4dalam kombinasi dengan PHP-FPM 5.4.8dengan fastcgilulus dan mencoba untuk melewati parameter kustom untuk PHP. Berikut adalah opsi yang saya temukan sejauh ini:
menggunakan
envarahan untuk mengatur variabel lingkungannginxdan mengambilnya dengangetenv()atau$_ENVdariPHP. Masalahnya adalah bahwaenvhanya beroperasi dalammainkonteks sedangkan saya perlu mengatur parameter dalamserverkonteks.menggunakan
fastcgi_paramarahan karena dirancang untuk itu.
Saya telah mencoba mengubah nilai beberapa parameter menggunakan fastcgi_paramtetapi tidak berhasil:
nginx:
fastcgi_param PATH_INFO "/var/tmp";
PHP:
Saya memeriksa semua array standar yang dapat saya temukan:
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>';
Satu-satunya yang ditampilkan PATH_INFOadalah $_SERVER:
var_dump($_SERVER); // ["PATH_INFO"]=> string(0) ""
Tetapi nilai yang saya tetapkan nginxtidak diperhitungkan.
T1: Apakah saya perlu mengonfigurasi apa pun di nginx/phplevel agar fastcgi_paramarahan mulai berlaku?
T2: Apakah fastcgi_paramarahan terbatas pada daftar parameter yang telah ditentukan (misalnya saya dapat mengatur PATH_INFOtetapi tidak variabel kustom saya sendiri seperti FOO)?
T3: Jika ya ke Q2: apakah ada cara untuk mengirimkan parameter khusus ke PHP dari Nginx?
fastcgi.confdanfastcgi_paramstidakfastcgi-php.conf: dari mana Anda mendapatkannya? Apakah Anda keberatan membagikannya melalui pastebin?