मैं एक पास के साथ 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";
पीएचपी:
मैंने सभी पूर्वनिर्धारित सरणियों की जाँच की जो मुझे मिल सकती हैं:
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
था $_SERVER
:
var_dump($_SERVER); // ["PATH_INFO"]=> string(0) ""
लेकिन मेरे द्वारा निर्धारित मूल्य nginx
को ध्यान में नहीं रखा गया है।
Q1: क्या मुझे निर्देश लेने के nginx/php
लिए स्तर पर कुछ भी कॉन्फ़िगर करने की आवश्यकता है fastcgi_param
?
क्यू 2: fastcgi_param
निर्देश मापदंडों की पूर्वनिर्धारित सूची तक सीमित है (जैसे मैं सेट कर सकता हूं PATH_INFO
लेकिन अपने स्वयं के कस्टम चर जैसे नहीं FOO
)?
Q3: यदि हाँ Q2 के लिए: क्या Nginx से PHP में कस्टम पैरामीटर पास करने का एक तरीका है?
fastcgi.conf
औरfastcgi_params
नहीं हैfastcgi-php.conf
: आपको यह कहाँ से मिला? क्या आप इसे पास्टबिन के माध्यम से साझा करने का मन रखते हैं?