আমি এনজিআইএনএক্স ব্যবহারকারীকে কীভাবে পরিবর্তন করব?


37

আমার একটি পিএইচপি স্ক্রিপ্ট রয়েছে যা একটি ডিরেক্টরি তৈরি করে এবং একটি চিত্রকে ডিরেক্টরিতে আউটপুট করে। এটি আপাচে অধীনে ঠিকঠাক কাজ করছিল তবে আমরা সম্প্রতি সীমাবদ্ধ র‌্যামটির আরও ব্যবহার করতে এনজিআইএনএক্সে স্যুইচ করার সিদ্ধান্ত নিয়েছি। ডিরেক্টরিটি তৈরি করতে আমি পিএইচপি এমকেডির () কমান্ডটি ব্যবহার করছি:

mkdir(dirname($path['image']['server']), 0755, true);

এনজিআইএনএক্স-এ স্যুইচ করার পরে, আমি নিম্নলিখিত সতর্কতা পাচ্ছি:

Warning: mkdir(): Permission denied in ...

আমি ইতিমধ্যে পিতামাতার ডিরেক্টরিগুলির সমস্ত অনুমতি যাচাই করেছি, তাই আমি স্থির করেছি যে আমার সম্ভবত এনজিআইএনএক্স বা পিএইচপি-এফপিএম 'ব্যবহারকারী' পরিবর্তন করতে হবে তবে আমি কীভাবে এটি করব তা নিশ্চিত নই (আমাকে কখনই ব্যবহারকারী নির্দিষ্ট করতে হয়নি) এপচে জন্য অনুমতি)। আমি এ সম্পর্কে অনেক তথ্য খুঁজে পেতে পারে না। যেকোনো সাহায্যই অসাধারণ!

(দ্রষ্টব্য: এই সামান্য হ্যাং-আপ ছাড়াও, এনজিআইএনএক্স-এ স্যুইচ করা বেশ বিরামহীন হয়েছে; আমি এটি প্রথমবার ব্যবহার করছি এবং এটি আক্ষরিক অর্থে 10 মিনিট সময় নিয়েছিল এনজিআইএনএক্সের সাথে উঠতে। এখন আমি কেবল আয়রন করছি I'm কিঙ্কস আউট।)


1
যদি nginx কোনও প্যাকেজ ম্যানেজার দ্বারা ইনস্টল করা থাকে তবে সম্ভবত ব্যবহারকারী 'এনগিনেক্স' কী হিসাবে চলছে তা দেখার জন্য 'পিএস' ব্যবহার করা এবং ডিরেক্টরিটির মালিককে সেই ব্যবহারকারীর কাছে পরিবর্তন করা ভাল। সাধারণত সুরক্ষা প্যাকেজগুলির দ্বারা ডিফল্টরূপে বেশ ভাল সেট আপ করা হয়, ব্যবহারকারী পরিবর্তিত হতে পারে অন্য কোনও বিষয়কে বিরক্ত করতে পারে।
জোয়াকিম ইসাকসন

nginx.confএবং www.confডিফল্টরূপে আইআইআরসি।
PeeHaa

আপনি যদি ফাস্টসিজি ব্যবহার করে থাকেন তবে আপনি পিএইচপি স্ক্রিপ্টগুলিকে সুেক্সেক করতে পারবেন কিনা তা পরীক্ষা করে দেখুন। এটি আপনাকে তাদের নির্দিষ্ট ব্যবহারকারীর অধীনে বিভিন্ন সাইট চালানোর অনুমতি দেবে। আমি নিশ্চিত কিছু সেটআপ নির্দেশাবলী অনলাইনে উপলব্ধ।
hakre

উত্তর:


58

Www: www হিসাবে এনগিনেক্স এবং পিএইচপি-এফএমপি চালান

1. Nginx

Nginx.conf এবং সেট সম্পাদনা ব্যবহারকারী থেকেwww www;

যদি মাস্টার প্রক্রিয়াটি রুট হিসাবে চালিত হয় তবে এনজিনেক্স ব্যবহারকারী / গ্রুপকে সেটআপড () / সেটজিড () দেবে। যদি GROUP নির্দিষ্ট না করা থাকে, তবে এনজিনেক্স ব্যবহারকারী হিসাবে একই নাম ব্যবহার করে। ডিফল্টরূপে এটি কোনও ব্যবহারকারী এবং কেউ বা নোগ্রুপ গোষ্ঠী বা। / কনফিগার স্ক্রিপ্ট থেকে --user = USER এবং --group = GROUP নয়।

2. পিএইচপি-এফপিএম

পিএইচপি- fpm.conf সম্পাদনা করুন এবং এতে ব্যবহারকারী এবং গোষ্ঠীটি সেট করুন www

ব্যবহারকারী - প্রক্রিয়াগুলির ইউনিক্স ব্যবহারকারী। ডিফল্ট "www-ডেটা"

গ্রুপ - ইউনিক্স প্রসেসের গ্রুপ। ডিফল্ট "www-ডেটা"


1
ঠিক আছে আমি সবেমাত্র nginx.conf পরিবর্তন করেছি (এটি সেট করা হয়েছিল user www-data)। তবে, আমি কোনও ব্যবহারকারীর সংজ্ঞায়িত দেখতে পাচ্ছি না php-fpm.conf। একই সিনট্যাক্স ( user www www) ব্যবহার করে আমাকে কি কেবল শীর্ষে যুক্ত করা উচিত ?
ডেভিড

পিএইচপি-কনফার্ট সিনট্যাক্স একই ওএস nginx.conf নয়। [www]অংশটি খুঁজুন এবং user=wwwপরের লাইনে এবং group=wwwপরবর্তীটিতে যুক্ত করুন।
গ্লভিć

পুনরায় চালু করার nginx যখন nginx পুনরায় চালু করার আমি নিম্নলিখিত ত্রুটির করেছেন: [emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed
ডেভিড

তারপরে আপনি হয় Nginx এবং php-fpm ব্যবহারকারী হিসাবে চালাতে পারেন যে উপযুক্ত ডিরেক্টরিগুলির জন্য উপযুক্ত অনুমতি রয়েছে বা "sudo useradd -g www www" চালিয়ে www নামে একটি নতুন ব্যবহারকারী তৈরি করতে পারেন। আপনার আরও বিশদ বিবরণ প্রয়োজন হলে দয়া করে আমাদের জানান।
রোমান Prykhodchenko

1
@ এক্সরিঞ্জোর: না, আপনার যা আছে তা ব্যবহার করুন: ডি
গ্লাভিć

24

ইন উবুন্টু 14.04 পরিবর্তনের ফাইল ব্যবহারকারী এবং গ্রুপ মধ্যে পিএইচপি-FPM হল: /etc/php5/fpm/pool.d/www.conf। এই ফাইলটিতে এই পরামিতিগুলি পরিবর্তন করুন:

user = www
group = www
listen.owner = www
listen.group = www

3
এটি উবুন্টু 16.10 এর ক্ষেত্রেও।
ক্রেমাসজিয়েন

1
এটি উবুন্টুর ক্ষেত্রেও রয়েছে 18.04
সিলিকনরোক স্টার

এটি গ্রহণযোগ্য উত্তরের একটি খুব ভাল সংযোজন হবে।
আশকান খ। নাজরী

পিএইচপি 7.2 এর জন্য এটি রয়েছে/etc/php/7.2/fpm/pool.d/www.conf
ক্রোম্যাক্স

6

আপনার আসল প্রশ্নের উত্তর দেওয়ার জন্য কেবল userলাইনের nginx.confমতো পরিবর্তন করা :

user    [username];

উদাহরণ:

user    www-data;

Nginx- এর জন্য পছন্দসই ব্যবহারকারী চলমান হিসাবে অপারেটিং সিস্টেমের মধ্যে পৃথক। কখনও কখনও Nginx হিসাবে চালানোর কথা www-data। অন্যান্য সময় এটি আসলে চালানোর কথা nobody

কিছু অপারেটিং সিস্টেমে (যেমন উইন্ডোজ) এগুলি কিছু যায় আসে না, এবং userলাইনটি nginx.confমন্তব্য করা যায় বা পুরোপুরি বাদ যায়।


যদি আমি ব্যবহারকারীর নির্দেশিকা যুক্ত করে Nginx পরিষেবাদি পুনরায় চালু করি, তবে এটি একটি ত্রুটি ছুঁড়ে বলেছিল যে 'ব্যবহারকারী' একটি অযৌক্তিক নির্দেশিকা - তাই কেবল এটি ছেড়ে দেওয়া কি ঠিক?
জোতিদি

হ্যাঁ, ওএস এবং / অথবা এনগিনেক্সের উপর নির্ভর করে কিছু সংস্করণে সুস্পষ্ট ব্যবহারকারীর নির্দেশের প্রয়োজন হয় না।
রুবিনোরেল

এটি সনাক্ত করার জন্য আমাকে আমার এনগিনেক্স কনফিগারেশন ফাইলের একেবারে শীর্ষে ইউজার ডিরেক্টরটি রাখতে হয়েছিল।
জোটিডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.