অ-রুট ব্যবহারকারী হিসাবে এনগিনেক্স চালান


17

আমি আমার উবুন্টু 10.04 লুসিড সার্ভারে এনগিনেক্স ইনস্টল করার জন্য এই প্রক্রিয়াটি অনুসরণ করেছি

এনজিএনএক্স শুরু করার জন্য আরআইপি স্ক্রিপ্ট তৈরি করার পয়েন্টটি পরে আমি হারিয়ে গিয়েছিলাম এবং তারপরে /etc/init.d/nginx শুরু করার জন্য কল করেছিলাম। যখন আমি এটি করেছি, আমি নিম্নলিখিত ত্রুটি পেয়েছি:

Starting nginx_main: Starting /opt/nginx/sbin/nginx...
nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied)
2012/03/16 18:17:27 [emerg] 859#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied)

আমি এটি চালানোর একমাত্র উপায় হ'ল আমি যদি এটি ব্যবহার করি sudoএবং এটি প্রক্রিয়াটি চালায় তবে rootযা আমি চাই না।

আমি chownসম্পূর্ণ ডিরেক্টরি ( chown -R nginx:nginx /opt/nginx) করেছি এবং আমি chmod -R 755ডিরেক্টরিটিও করেছি ।

যোগ করার পদ্ধতি userযেমন দ্বারা ফটোশপ CS3 প্রস্তাব নির্দেশ আমার এই ত্রুটি দেয়, কিন্তু একটি অতিরিক্ত লাইন দিয়ে।

Starting nginx_main: Starting /opt/nginx/sbin/nginx...
nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied)
2012/03/16 18:48:34 [warn] 1606#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /opt/nginx/conf/nginx.conf:2
2012/03/16 18:48:34 [emerg] 1606#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied)

কোন ধারনা?


and I've also chmod -R 755 the directory as wellএটি চালিয়ে যান এবং শেষ পর্যন্ত আপনি এর জন্য একটি মূল্য দিতে হবে। ইন্টারনেটে সেখানে কতজন লোক রয়েছেন তা প্রত্যক্ষ করে দেখতে ভীতিজনক এটি যে কোনও সমস্যার "সংশোধন" করার জন্য কলটির প্রথম বন্দর হিসাবে পরামর্শ দিচ্ছে। আপনি মরোনিক কিছু করলে ইউনিক্স বন্ধুত্বপূর্ণ প্রতিক্রিয়া জানায় না।

উত্তর:


11

প্রথমত, init স্ক্রিপ্টগুলি চালানোর কথা

sudo /etc/init.d/name

আপনি যখন রুট হিসাবে লগ ইন না হন (লগ-ইন করা ব্যবহারকারী সুডো সক্ষম থাকে)

দ্বিতীয়ত, যখন আপনি sudo /etc/init.d/nginx শুরু ==> চালান এটি আপনার মাস্টার এনজিন্স প্রক্রিয়াটিকে রুট হিসাবে এবং কর্মী প্রক্রিয়া হিসাবে ব্যবহার করে যা আপনি আপনার এনগিনেক্স.কম ব্যবহারকারী নির্দেশিকায় নির্দিষ্ট করেছেন (যেমন। Www-ডেটা)

Sudo /etc/init.d/nginx শুরুর সময় nginx এর অধীনে আপনার সমস্ত প্রক্রিয়া রুট দ্বারা চালিত হয় তা আপনি নিশ্চিত করতে পারেন?

সঙ্গে

ps aux | grep [n]ginx

যেমন।

এখানে চিত্র বর্ণনা লিখুন

পরামর্শ: উবুন্টু 10.04 এলটিএস-এর এনগিনেক্স টিমের দুর্দান্ত উবুন্টু প্যাকেজ সমর্থন রয়েছে। সুতরাং, যদি আপনার এনজিএনএক্সের অভ্যন্তরে কাস্টম মডিউলটির প্রয়োজনীয়তা না থাকে তবে উত্স থেকে ইনস্টল করা কেন বিরক্ত করবেন?

এখানে পরামর্শ করুন

বাইনারি প্যাকেজ ইতিমধ্যে বেশ প্রয়োজনীয় মডিউল নিয়ে আসে

nginx version: nginx/1.0.12
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.0.12/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.0.12/debian/modules/nginx-upstream-fair

কর্মী প্রক্রিয়াটির একটি আইডি আছে, নাম নেই। কোন সুযোগ যে nginx ব্যবহারকারী আইডি? আমি উবুন্টুতে বেশ নতুন। আমি জানতাম না যে অ্যাপটি প্যাকেজটিতে এই সমস্ত পতাকা চালু আছে। তুমি কীভাবে তা জানতে পার?
জন

আপনি আপনার nginx.conf এ নির্দিষ্ট করা ব্যবহারকারীর উপস্থিতি আছে কিনা তা পরীক্ষা করে দেখেছেন? অফিসিয়াল রেপোতে এই এনগিনেক্স নেই! দয়া করে নির্দিষ্ট ইউআরএল থেকে পিপিএ ব্যবহার করুন
কাজী

আমি একটি আলাদা ব্যবহারকারীর নাম ব্যবহার করেছি যা 8 অক্ষরের সীমা থেকে দীর্ঘ। এজন্যই ইউজার আইডি দেখানো হচ্ছে, তাই না?
জন

হ্যাঁ এটি একটি দৃশ্য
কাজী

1
nginx -V আপনার উত্তর
কাজী

1

Nginx.conf এর ভিতরে ব্যবহারকারীর নির্দেশিকা যুক্ত করুন

তথ্যসূত্র: http://wiki.nginx.org/CoreModule#user


দুঃখিত, আপনি আরও নির্দিষ্ট হতে পারে? আমি ইতিমধ্যে এটি কাজ করে নি।
জন

1 থেকে 1024 বন্দরগুলির মধ্যে যে কোনও কিছু চালাতে রুট সুবিধার দরকার। ব্যবহারকারীর নির্দেশনাটি নিশ্চিত করে যে এনগিনেক্স সিকিউরিটির কারণে নন রুট ব্যবহারকারী হিসাবে চলে।
শ্যাম সুন্দর সিএস

এছাড়াও, লগগুলি খোলার ও লিখিত হওয়ার জন্য, এনজিএনএক্স ডিরেক্টরিটি ব্যবহারকারীর কাছে ছাঁটা উচিত যা থেকে আপনি চালনার চেষ্টা করছেন।
শ্যাম সুন্দর সিএস

1

আমার 5 টি সম্পর্কে এই সম্পর্কে

nginx -V 2>&1 | sed 's/ --/\n--/g' | grep path

.. আপনি অন্যান্য সমস্ত প্যাথ পাবেন, যে আপনি কাস্টম সরবরাহিত কনফিগারেশন বা "-g" বিকল্পের সাহায্যে ওভাররাইড করা উচিত।


নিম্নলিখিত কমান্ডটি আউটপুট থেকে সমস্ত লাইন দেখায় এবং 'পথ' শব্দটি অন্তর্ভুক্ত করে তাদেরকে হাইলাইট করে:nginx -V 2>&1 | sed 's/ --/\n--/g' | egrep --color '.*path.*|$'
মার্ড

0

আমার ক্ষেত্রে আমার nginx.conf এ একটি ফাইলের রেফারেন্স অনুপস্থিত ছিল:

ত্রুটি_লগ /var/log/nginx/error.log সতর্কতা;

হয়ে উঠেছে: ত্রুটি_লগ সতর্কতা;

সুতরাং আমি দুর্ঘটনাক্রমে /var/log/nginx/error.log রেফারেন্স মুছে ফেলেছি যার ফলে অনুমতি ত্রুটি বার্তাকে অস্বীকার করেছিল।

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