আমি একটি পাসের সাথে 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
নেওয়া হয় নি।
প্রশ্ন 1: নির্দেশটি কার্যকর করার nginx/php
জন্য আমার কি স্তরের কোনও কিছু কনফিগার fastcgi_param
করতে হবে?
প্রশ্ন 2: fastcgi_param
নির্দেশটি কি প্যারামিটারগুলির পূর্বনির্ধারিত তালিকার মধ্যে সীমাবদ্ধ (যেমন আমি সেট করতে পারি PATH_INFO
তবে আমার নিজস্ব কাস্টম ভেরিয়েবলগুলি নয় FOO
)?
Q3: যদি হ্যাঁ Q2: Nginx থেকে পিএইচপি থেকে কাস্টম প্যারামিটারগুলি পাশ করার কোনও উপায় আছে?
fastcgi.conf
এবংfastcgi_params
কিন্তুfastcgi-php.conf
: যেখানে আপনি এটি থেকে পেতে পারি? পেস্টবিনের মাধ্যমে ভাগ করে নিতে কি আপত্তি আছে?